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/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/l10n/sw.js8
-rw-r--r--apps/cloud_federation_api/l10n/sw.json6
-rw-r--r--apps/cloud_federation_api/lib/Capabilities.php27
-rw-r--r--apps/cloud_federation_api/lib/Config.php1
-rw-r--r--apps/cloud_federation_api/lib/Controller/RequestHandlerController.php135
-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/sw.js36
-rw-r--r--apps/comments/l10n/sw.json34
-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/lib/Activity/Filter.php1
-rw-r--r--apps/comments/lib/Activity/Provider.php1
-rw-r--r--apps/comments/lib/Activity/Setting.php1
-rw-r--r--apps/comments/lib/AppInfo/Application.php1
-rw-r--r--apps/comments/lib/Collaboration/CommentersSorter.php1
-rw-r--r--apps/comments/lib/Controller/NotificationsController.php1
-rw-r--r--apps/comments/lib/Search/Result.php1
-rw-r--r--apps/comments/src/comments-activity-tab.ts6
-rw-r--r--apps/comments/src/components/Comment.vue14
-rw-r--r--apps/comments/src/views/Comments.vue18
-rw-r--r--apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php79
-rw-r--r--apps/comments/tests/Unit/Controller/NotificationsTest.php2
-rw-r--r--apps/comments/tests/Unit/EventHandlerTest.php4
-rw-r--r--apps/comments/tests/Unit/Notification/ListenerTest.php6
-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/l10n/sw.js9
-rw-r--r--apps/contactsinteraction/l10n/sw.json7
-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/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/sw.js28
-rw-r--r--apps/dashboard/l10n/sw.json26
-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/dav/appinfo/info.xml2
-rw-r--r--apps/dav/appinfo/routes.php3
-rw-r--r--apps/dav/appinfo/v1/carddav.php6
-rw-r--r--apps/dav/appinfo/v1/publicwebdav.php4
-rw-r--r--apps/dav/appinfo/v2/publicremote.php8
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php8
-rw-r--r--apps/dav/composer/composer/autoload_static.php8
-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.js41
-rw-r--r--apps/dav/l10n/cs.json41
-rw-r--r--apps/dav/l10n/da.js30
-rw-r--r--apps/dav/l10n/da.json30
-rw-r--r--apps/dav/l10n/de.js50
-rw-r--r--apps/dav/l10n/de.json50
-rw-r--r--apps/dav/l10n/de_DE.js48
-rw-r--r--apps/dav/l10n/de_DE.json48
-rw-r--r--apps/dav/l10n/el.js120
-rw-r--r--apps/dav/l10n/el.json118
-rw-r--r--apps/dav/l10n/en_GB.js42
-rw-r--r--apps/dav/l10n/en_GB.json42
-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.js154
-rw-r--r--apps/dav/l10n/et_EE.json154
-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.js82
-rw-r--r--apps/dav/l10n/fr.json82
-rw-r--r--apps/dav/l10n/ga.js42
-rw-r--r--apps/dav/l10n/ga.json42
-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.js42
-rw-r--r--apps/dav/l10n/ja.json42
-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.js55
-rw-r--r--apps/dav/l10n/pl.json55
-rw-r--r--apps/dav/l10n/pt_BR.js90
-rw-r--r--apps/dav/l10n/pt_BR.json90
-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.js41
-rw-r--r--apps/dav/l10n/sv.json41
-rw-r--r--apps/dav/l10n/tr.js48
-rw-r--r--apps/dav/l10n/tr.json48
-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.js50
-rw-r--r--apps/dav/l10n/zh_CN.json50
-rw-r--r--apps/dav/l10n/zh_HK.js42
-rw-r--r--apps/dav/l10n/zh_HK.json42
-rw-r--r--apps/dav/l10n/zh_TW.js42
-rw-r--r--apps/dav/l10n/zh_TW.json42
-rw-r--r--apps/dav/lib/AppInfo/Application.php8
-rw-r--r--apps/dav/lib/Avatars/RootCollection.php1
-rw-r--r--apps/dav/lib/BackgroundJob/UserStatusAutomation.php5
-rw-r--r--apps/dav/lib/BulkUpload/BulkUploadPlugin.php1
-rw-r--r--apps/dav/lib/BulkUpload/MultipartRequestParser.php7
-rw-r--r--apps/dav/lib/CalDAV/Activity/Backend.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Filter/Calendar.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Filter/Todo.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Provider/Base.php5
-rw-r--r--apps/dav/lib/CalDAV/Activity/Provider/Calendar.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Provider/Event.php10
-rw-r--r--apps/dav/lib/CalDAV/Activity/Provider/Todo.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Setting/Calendar.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Setting/Event.php1
-rw-r--r--apps/dav/lib/CalDAV/Activity/Setting/Todo.php1
-rw-r--r--apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php1
-rw-r--r--apps/dav/lib/CalDAV/BirthdayService.php4
-rw-r--r--apps/dav/lib/CalDAV/CachedSubscriptionImpl.php10
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php42
-rw-r--r--apps/dav/lib/CalDAV/Calendar.php4
-rw-r--r--apps/dav/lib/CalDAV/CalendarImpl.php10
-rw-r--r--apps/dav/lib/CalDAV/CalendarManager.php1
-rw-r--r--apps/dav/lib/CalDAV/CalendarObject.php1
-rw-r--r--apps/dav/lib/CalDAV/CalendarRoot.php4
-rw-r--r--apps/dav/lib/CalDAV/EventReader.php10
-rw-r--r--apps/dav/lib/CalDAV/Export/ExportService.php4
-rw-r--r--apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php1
-rw-r--r--apps/dav/lib/CalDAV/Integration/ExternalCalendar.php1
-rw-r--r--apps/dav/lib/CalDAV/Integration/ICalendarProvider.php1
-rw-r--r--apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php1
-rw-r--r--apps/dav/lib/CalDAV/Outbox.php1
-rw-r--r--apps/dav/lib/CalDAV/Principal/Collection.php1
-rw-r--r--apps/dav/lib/CalDAV/Principal/User.php1
-rw-r--r--apps/dav/lib/CalDAV/PublicCalendar.php1
-rw-r--r--apps/dav/lib/CalDAV/PublicCalendarObject.php1
-rw-r--r--apps/dav/lib/CalDAV/Publishing/PublishPlugin.php1
-rw-r--r--apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php1
-rw-r--r--apps/dav/lib/CalDAV/Reminder/ReminderService.php8
-rw-r--r--apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php11
-rw-r--r--apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php1
-rw-r--r--apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php1
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipPlugin.php11
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipService.php67
-rw-r--r--apps/dav/lib/CalDAV/Schedule/Plugin.php4
-rw-r--r--apps/dav/lib/CalDAV/Search/SearchPlugin.php5
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php1
-rw-r--r--apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php1
-rw-r--r--apps/dav/lib/CalDAV/TipBroker.php14
-rw-r--r--apps/dav/lib/CalDAV/UpcomingEventsService.php44
-rw-r--r--apps/dav/lib/Capabilities.php1
-rw-r--r--apps/dav/lib/CardDAV/Activity/Filter.php1
-rw-r--r--apps/dav/lib/CardDAV/Activity/Provider/Base.php4
-rw-r--r--apps/dav/lib/CardDAV/AddressBook.php4
-rw-r--r--apps/dav/lib/CardDAV/AddressBookImpl.php6
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php5
-rw-r--r--apps/dav/lib/CardDAV/PhotoCache.php25
-rw-r--r--apps/dav/lib/Command/ClearContactsPhotoCache.php75
-rw-r--r--apps/dav/lib/Command/ExportCalendar.php2
-rw-r--r--apps/dav/lib/Command/ListCalendars.php1
-rw-r--r--apps/dav/lib/Command/MoveCalendar.php1
-rw-r--r--apps/dav/lib/Command/SendEventReminders.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/AppleQuirksPlugin.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/Auth.php24
-rw-r--r--apps/dav/lib/Connector/Sabre/BearerAuth.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/CachingTree.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/DavAclPlugin.php2
-rw-r--r--apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php4
-rw-r--r--apps/dav/lib/Connector/Sabre/Exception/BadGateway.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php4
-rw-r--r--apps/dav/lib/Connector/Sabre/File.php7
-rw-r--r--apps/dav/lib/Connector/Sabre/FilesPlugin.php17
-rw-r--r--apps/dav/lib/Connector/Sabre/MtimeSanitizer.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/Principal.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/PublicAuth.php35
-rw-r--r--apps/dav/lib/Connector/Sabre/SharesPlugin.php4
-rw-r--r--apps/dav/lib/Connector/Sabre/TagsPlugin.php44
-rw-r--r--apps/dav/lib/Controller/BirthdayCalendarController.php1
-rw-r--r--apps/dav/lib/Controller/ExampleContentController.php86
-rw-r--r--apps/dav/lib/DAV/CustomPropertiesBackend.php10
-rw-r--r--apps/dav/lib/DAV/GroupPrincipalBackend.php13
-rw-r--r--apps/dav/lib/DAV/Sharing/Backend.php6
-rw-r--r--apps/dav/lib/DAV/ViewOnlyPlugin.php13
-rw-r--r--apps/dav/lib/Exception/ExampleEventException.php13
-rw-r--r--apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php1
-rw-r--r--apps/dav/lib/Files/FileSearchBackend.php4
-rw-r--r--apps/dav/lib/Files/LazySearchBackend.php1
-rw-r--r--apps/dav/lib/Files/Sharing/FilesDropPlugin.php116
-rw-r--r--apps/dav/lib/Listener/DavAdminSettingsListener.php4
-rw-r--r--apps/dav/lib/Listener/UserEventsListener.php35
-rw-r--r--apps/dav/lib/Migration/BuildCalendarSearchIndex.php1
-rw-r--r--apps/dav/lib/Migration/BuildSocialSearchIndex.php1
-rw-r--r--apps/dav/lib/Migration/CalDAVRemoveEmptyValue.php1
-rw-r--r--apps/dav/lib/Migration/RegenerateBirthdayCalendars.php1
-rw-r--r--apps/dav/lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php30
-rw-r--r--apps/dav/lib/Migration/RemoveObjectProperties.php1
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170825134824.php1
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170919104507.php1
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170924124212.php1
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170926103422.php1
-rw-r--r--apps/dav/lib/Migration/Version1005Date20180530124431.php1
-rw-r--r--apps/dav/lib/Migration/Version1006Date20180619154313.php1
-rw-r--r--apps/dav/lib/Model/ExampleEvent.php31
-rw-r--r--apps/dav/lib/Paginate/PaginatePlugin.php10
-rw-r--r--apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php3
-rw-r--r--apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php1
-rw-r--r--apps/dav/lib/Server.php10
-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/CalDAVSettings.php1
-rw-r--r--apps/dav/lib/Settings/ExampleContentSettings.php45
-rw-r--r--apps/dav/lib/SystemTag/SystemTagList.php1
-rw-r--r--apps/dav/lib/SystemTag/SystemTagNode.php10
-rw-r--r--apps/dav/lib/SystemTag/SystemTagObjectType.php1
-rw-r--r--apps/dav/lib/SystemTag/SystemTagsObjectList.php2
-rw-r--r--apps/dav/lib/Traits/PrincipalProxyTrait.php1
-rw-r--r--apps/dav/lib/Upload/UploadAutoMkcolPlugin.php68
-rw-r--r--apps/dav/openapi.json3
-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/tests/integration/UserMigration/CalendarMigratorTest.php6
-rw-r--r--apps/dav/tests/integration/UserMigration/ContactsMigratorTest.php4
-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.php32
-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.php31
-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.php26
-rw-r--r--apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php25
-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.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php20
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/BackendTest.php69
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php17
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php53
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php17
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php58
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php72
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php60
-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.php49
-rw-r--r--apps/dav/tests/unit/CalDAV/CalDavBackendTest.php32
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarHomeTest.php28
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarImplTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarManagerTest.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarTest.php73
-rw-r--r--apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php3
-rw-r--r--apps/dav/tests/unit/CalDAV/EventReaderTest.php32
-rw-r--r--apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php9
-rw-r--r--apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php17
-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.php16
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php39
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarTest.php30
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php8
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php33
-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.php40
-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)123
-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.php70
-rw-r--r--apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php18
-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.php13
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php50
-rw-r--r--apps/dav/tests/unit/CapabilitiesTest.php2
-rw-r--r--apps/dav/tests/unit/CardDAV/Activity/BackendTest.php74
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookImplTest.php83
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookTest.php36
-rw-r--r--apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php142
-rw-r--r--apps/dav/tests/unit/CardDAV/CardDavBackendTest.php171
-rw-r--r--apps/dav/tests/unit/CardDAV/ContactsManagerTest.php12
-rw-r--r--apps/dav/tests/unit/CardDAV/ConverterTest.php51
-rw-r--r--apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php77
-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.php54
-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.php13
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarSharesTest.php2
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarsTest.php23
-rw-r--r--apps/dav/tests/unit/Command/MoveCalendarTest.php216
-rw-r--r--apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php14
-rw-r--r--apps/dav/tests/unit/Comments/CommentsNodeTest.php99
-rw-r--r--apps/dav/tests/unit/Comments/CommentsPluginTest.php52
-rw-r--r--apps/dav/tests/unit/Comments/EntityCollectionTest.php48
-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.php223
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php18
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php12
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php92
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php17
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php52
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php73
-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.php20
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php73
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FileTest.php114
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php145
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php225
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php15
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/NodeTest.php86
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php63
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php110
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php121
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php67
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php6
-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.php18
-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.php59
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php151
-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.php50
-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.php22
-rw-r--r--apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php58
-rw-r--r--apps/dav/tests/unit/DAV/GroupPrincipalTest.php48
-rw-r--r--apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php74
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/BackendTest.php16
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/PluginTest.php22
-rw-r--r--apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php54
-rw-r--r--apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php56
-rw-r--r--apps/dav/tests/unit/Direct/DirectFileTest.php27
-rw-r--r--apps/dav/tests/unit/Direct/DirectHomeTest.php31
-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.php171
-rw-r--r--apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php20
-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.php58
-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.php68
-rw-r--r--apps/dav/tests/unit/Search/EventsSearchProviderTest.php390
-rw-r--r--apps/dav/tests/unit/Search/TasksSearchProviderTest.php169
-rw-r--r--apps/dav/tests/unit/ServerTest.php9
-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.php37
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php105
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php205
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php81
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php54
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php46
-rw-r--r--apps/dav/tests/unit/Upload/AssemblyStreamTest.php85
-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.php133
-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/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/sw.js65
-rw-r--r--apps/encryption/l10n/sw.json63
-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/DisableMasterKey.php1
-rw-r--r--apps/encryption/lib/Command/RecoverUser.php1
-rw-r--r--apps/encryption/lib/Crypto/EncryptAll.php28
-rw-r--r--apps/encryption/lib/Crypto/Encryption.php4
-rw-r--r--apps/encryption/lib/KeyManager.php8
-rw-r--r--apps/encryption/lib/Migration/SetMasterKeyStatus.php1
-rw-r--r--apps/encryption/lib/Services/PassphraseService.php5
-rw-r--r--apps/encryption/lib/Settings/Admin.php1
-rw-r--r--apps/encryption/lib/Settings/Personal.php1
-rw-r--r--apps/encryption/lib/Util.php4
-rw-r--r--apps/encryption/tests/Command/FixEncryptedVersionTest.php14
-rw-r--r--apps/encryption/tests/Command/TestEnableMasterKey.php6
-rw-r--r--apps/encryption/tests/Controller/RecoveryControllerTest.php35
-rw-r--r--apps/encryption/tests/Controller/SettingsControllerTest.php61
-rw-r--r--apps/encryption/tests/Controller/StatusControllerTest.php25
-rw-r--r--apps/encryption/tests/Crypto/CryptTest.php111
-rw-r--r--apps/encryption/tests/Crypto/DecryptAllTest.php30
-rw-r--r--apps/encryption/tests/Crypto/EncryptAllTest.php163
-rw-r--r--apps/encryption/tests/Crypto/EncryptionTest.php59
-rw-r--r--apps/encryption/tests/KeyManagerTest.php130
-rw-r--r--apps/encryption/tests/RecoveryTest.php2
-rw-r--r--apps/encryption/tests/SessionTest.php20
-rw-r--r--apps/encryption/tests/Settings/AdminTest.php31
-rw-r--r--apps/encryption/tests/Users/SetupTest.php24
-rw-r--r--apps/encryption/tests/UtilTest.php34
-rw-r--r--apps/federatedfilesharing/appinfo/routes.php1
-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.js20
-rw-r--r--apps/federatedfilesharing/l10n/pl.json20
-rw-r--r--apps/federatedfilesharing/l10n/pt_BR.js8
-rw-r--r--apps/federatedfilesharing/l10n/pt_BR.json8
-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/sw.js71
-rw-r--r--apps/federatedfilesharing/l10n/sw.json69
-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/AddressHandler.php4
-rw-r--r--apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php16
-rw-r--r--apps/federatedfilesharing/lib/Controller/RequestHandlerController.php10
-rw-r--r--apps/federatedfilesharing/lib/FederatedShareProvider.php4
-rw-r--r--apps/federatedfilesharing/lib/Notifications.php8
-rw-r--r--apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php5
-rw-r--r--apps/federatedfilesharing/lib/Settings/Admin.php1
-rw-r--r--apps/federatedfilesharing/lib/Settings/Personal.php4
-rw-r--r--apps/federatedfilesharing/lib/Settings/PersonalSection.php1
-rw-r--r--apps/federatedfilesharing/openapi.json20
-rw-r--r--apps/federatedfilesharing/tests/AddressHandlerTest.php92
-rw-r--r--apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php110
-rw-r--r--apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php93
-rw-r--r--apps/federatedfilesharing/tests/FederatedShareProviderTest.php185
-rw-r--r--apps/federatedfilesharing/tests/NotificationsTest.php93
-rw-r--r--apps/federatedfilesharing/tests/Settings/AdminTest.php52
-rw-r--r--apps/federatedfilesharing/tests/TestCase.php11
-rw-r--r--apps/federatedfilesharing/tests/TokenHandlerTest.php14
-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/l10n/sw.js21
-rw-r--r--apps/federation/l10n/sw.json19
-rw-r--r--apps/federation/lib/BackgroundJob/GetSharedSecret.php18
-rw-r--r--apps/federation/lib/BackgroundJob/RequestSharedSecret.php8
-rw-r--r--apps/federation/lib/Controller/OCSAuthAPIController.php10
-rw-r--r--apps/federation/lib/Settings/Admin.php1
-rw-r--r--apps/federation/lib/SyncJob.php1
-rw-r--r--apps/federation/lib/TrustedServers.php1
-rw-r--r--apps/federation/templates/settings-admin.php4
-rw-r--r--apps/federation/tests/BackgroundJob/GetSharedSecretTest.php64
-rw-r--r--apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php122
-rw-r--r--apps/federation/tests/Controller/OCSAuthAPIControllerTest.php57
-rw-r--r--apps/federation/tests/Controller/SettingsControllerTest.php38
-rw-r--r--apps/federation/tests/DAV/FedAuthTest.php20
-rw-r--r--apps/federation/tests/DbHandlerTest.php100
-rw-r--r--apps/federation/tests/Settings/AdminTest.php11
-rw-r--r--apps/federation/tests/SyncFederationAddressbooksTest.php84
-rw-r--r--apps/federation/tests/TrustedServersTest.php130
-rw-r--r--apps/files/appinfo/routes.php5
-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.js60
-rw-r--r--apps/files/l10n/ar.json60
-rw-r--r--apps/files/l10n/ast.js31
-rw-r--r--apps/files/l10n/ast.json31
-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.js45
-rw-r--r--apps/files/l10n/bg.json45
-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.js54
-rw-r--r--apps/files/l10n/ca.json54
-rw-r--r--apps/files/l10n/cs.js75
-rw-r--r--apps/files/l10n/cs.json75
-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.js54
-rw-r--r--apps/files/l10n/da.json54
-rw-r--r--apps/files/l10n/de.js75
-rw-r--r--apps/files/l10n/de.json75
-rw-r--r--apps/files/l10n/de_DE.js77
-rw-r--r--apps/files/l10n/de_DE.json77
-rw-r--r--apps/files/l10n/el.js34
-rw-r--r--apps/files/l10n/el.json34
-rw-r--r--apps/files/l10n/en_GB.js71
-rw-r--r--apps/files/l10n/en_GB.json71
-rw-r--r--apps/files/l10n/eo.js178
-rw-r--r--apps/files/l10n/eo.json176
-rw-r--r--apps/files/l10n/es.js91
-rw-r--r--apps/files/l10n/es.json91
-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.js27
-rw-r--r--apps/files/l10n/es_EC.json27
-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.js46
-rw-r--r--apps/files/l10n/es_MX.json46
-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.js73
-rw-r--r--apps/files/l10n/et_EE.json73
-rw-r--r--apps/files/l10n/eu.js49
-rw-r--r--apps/files/l10n/eu.json49
-rw-r--r--apps/files/l10n/fa.js235
-rw-r--r--apps/files/l10n/fa.json235
-rw-r--r--apps/files/l10n/fi.js53
-rw-r--r--apps/files/l10n/fi.json53
-rw-r--r--apps/files/l10n/fr.js75
-rw-r--r--apps/files/l10n/fr.json75
-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.js71
-rw-r--r--apps/files/l10n/ga.json71
-rw-r--r--apps/files/l10n/gl.js57
-rw-r--r--apps/files/l10n/gl.json57
-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.js117
-rw-r--r--apps/files/l10n/hu.json117
-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.js239
-rw-r--r--apps/files/l10n/id.json237
-rw-r--r--apps/files/l10n/io.js9
-rw-r--r--apps/files/l10n/io.json7
-rw-r--r--apps/files/l10n/is.js49
-rw-r--r--apps/files/l10n/is.json49
-rw-r--r--apps/files/l10n/it.js71
-rw-r--r--apps/files/l10n/it.json71
-rw-r--r--apps/files/l10n/ja.js74
-rw-r--r--apps/files/l10n/ja.json74
-rw-r--r--apps/files/l10n/ka.js32
-rw-r--r--apps/files/l10n/ka.json32
-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.js49
-rw-r--r--apps/files/l10n/ko.json49
-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.js29
-rw-r--r--apps/files/l10n/lt_LT.json29
-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.js39
-rw-r--r--apps/files/l10n/mk.json39
-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.js48
-rw-r--r--apps/files/l10n/nb.json48
-rw-r--r--apps/files/l10n/nl.js65
-rw-r--r--apps/files/l10n/nl.json65
-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.js71
-rw-r--r--apps/files/l10n/pl.json71
-rw-r--r--apps/files/l10n/ps.js135
-rw-r--r--apps/files/l10n/ps.json133
-rw-r--r--apps/files/l10n/pt_BR.js131
-rw-r--r--apps/files/l10n/pt_BR.json131
-rw-r--r--apps/files/l10n/pt_PT.js30
-rw-r--r--apps/files/l10n/pt_PT.json30
-rw-r--r--apps/files/l10n/ro.js29
-rw-r--r--apps/files/l10n/ro.json29
-rw-r--r--apps/files/l10n/ru.js65
-rw-r--r--apps/files/l10n/ru.json65
-rw-r--r--apps/files/l10n/sc.js34
-rw-r--r--apps/files/l10n/sc.json34
-rw-r--r--apps/files/l10n/sk.js55
-rw-r--r--apps/files/l10n/sk.json55
-rw-r--r--apps/files/l10n/sl.js48
-rw-r--r--apps/files/l10n/sl.json48
-rw-r--r--apps/files/l10n/sq.js131
-rw-r--r--apps/files/l10n/sq.json129
-rw-r--r--apps/files/l10n/sr.js64
-rw-r--r--apps/files/l10n/sr.json64
-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.js70
-rw-r--r--apps/files/l10n/sv.json70
-rw-r--r--apps/files/l10n/sw.js475
-rw-r--r--apps/files/l10n/sw.json473
-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.js22
-rw-r--r--apps/files/l10n/th.json22
-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.js81
-rw-r--r--apps/files/l10n/tr.json81
-rw-r--r--apps/files/l10n/tzm.js9
-rw-r--r--apps/files/l10n/tzm.json7
-rw-r--r--apps/files/l10n/ug.js46
-rw-r--r--apps/files/l10n/ug.json46
-rw-r--r--apps/files/l10n/uk.js65
-rw-r--r--apps/files/l10n/uk.json65
-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.js44
-rw-r--r--apps/files/l10n/vi.json44
-rw-r--r--apps/files/l10n/zh_CN.js78
-rw-r--r--apps/files/l10n/zh_CN.json78
-rw-r--r--apps/files/l10n/zh_HK.js71
-rw-r--r--apps/files/l10n/zh_HK.json71
-rw-r--r--apps/files/l10n/zh_TW.js70
-rw-r--r--apps/files/l10n/zh_TW.json70
-rw-r--r--apps/files/lib/Activity/FavoriteProvider.php1
-rw-r--r--apps/files/lib/Activity/Filter/Favorites.php1
-rw-r--r--apps/files/lib/Activity/Filter/FileChanges.php1
-rw-r--r--apps/files/lib/Activity/Provider.php1
-rw-r--r--apps/files/lib/Activity/Settings/FavoriteAction.php1
-rw-r--r--apps/files/lib/Activity/Settings/FileChanged.php1
-rw-r--r--apps/files/lib/Activity/Settings/FileFavoriteChanged.php1
-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/DeleteOrphanedFiles.php4
-rw-r--r--apps/files/lib/Command/SanitizeFilenames.php5
-rw-r--r--apps/files/lib/Command/Scan.php52
-rw-r--r--apps/files/lib/Command/ScanAppData.php1
-rw-r--r--apps/files/lib/Command/TransferOwnership.php24
-rw-r--r--apps/files/lib/Controller/ApiController.php7
-rw-r--r--apps/files/lib/Controller/DirectEditingController.php1
-rw-r--r--apps/files/lib/Controller/DirectEditingViewController.php1
-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/DirectEditingService.php1
-rw-r--r--apps/files/lib/Service/OwnershipTransferService.php93
-rw-r--r--apps/files/lib/Service/UserConfig.php41
-rw-r--r--apps/files/lib/Service/ViewConfig.php7
-rw-r--r--apps/files/openapi.json78
-rw-r--r--apps/files/src/actions/openInFilesAction.spec.ts2
-rw-r--r--apps/files/src/actions/openInFilesAction.ts18
-rw-r--r--apps/files/src/actions/openLocallyAction.ts139
-rw-r--r--apps/files/src/components/FileEntry.vue20
-rw-r--r--apps/files/src/components/FileListFilter/FileListFilterToSearch.vue47
-rw-r--r--apps/files/src/components/FilesListTableHeaderActions.vue5
-rw-r--r--apps/files/src/components/FilesListVirtual.vue7
-rw-r--r--apps/files/src/components/FilesNavigationItem.vue8
-rw-r--r--apps/files/src/components/FilesNavigationSearch.vue122
-rw-r--r--apps/files/src/components/NavigationQuota.vue2
-rw-r--r--apps/files/src/composables/useBeforeNavigation.ts20
-rw-r--r--apps/files/src/composables/useFilenameFilter.ts47
-rw-r--r--apps/files/src/eventbus.d.ts12
-rw-r--r--apps/files/src/filters/FilenameFilter.ts28
-rw-r--r--apps/files/src/filters/SearchFilter.ts49
-rw-r--r--apps/files/src/init.ts13
-rw-r--r--apps/files/src/router/router.ts78
-rw-r--r--apps/files/src/services/HotKeysService.spec.ts61
-rw-r--r--apps/files/src/services/Search.spec.ts61
-rw-r--r--apps/files/src/services/Search.ts44
-rw-r--r--apps/files/src/services/Templates.js5
-rw-r--r--apps/files/src/services/WebDavSearch.ts83
-rw-r--r--apps/files/src/store/files.ts23
-rw-r--r--apps/files/src/store/search.ts169
-rw-r--r--apps/files/src/store/userconfig.ts7
-rw-r--r--apps/files/src/types.ts15
-rw-r--r--apps/files/src/utils/filesViews.spec.ts75
-rw-r--r--apps/files/src/utils/filesViews.ts30
-rw-r--r--apps/files/src/views/FilesList.vue37
-rw-r--r--apps/files/src/views/Navigation.cy.ts28
-rw-r--r--apps/files/src/views/Navigation.vue16
-rw-r--r--apps/files/src/views/SearchEmptyView.vue57
-rw-r--r--apps/files/src/views/Settings.vue27
-rw-r--r--apps/files/src/views/TemplatePicker.vue17
-rw-r--r--apps/files/src/views/files.ts20
-rw-r--r--apps/files/src/views/personal-files.ts23
-rw-r--r--apps/files/src/views/search.ts51
-rw-r--r--apps/files/templates/index.php1
-rw-r--r--apps/files/tests/Activity/Filter/GenericTest.php53
-rw-r--r--apps/files/tests/Activity/ProviderTest.php52
-rw-r--r--apps/files/tests/Activity/Setting/GenericTest.php60
-rw-r--r--apps/files/tests/AdvancedCapabilitiesTest.php5
-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.php85
-rw-r--r--apps/files/tests/Controller/ConversionApiControllerTest.php7
-rw-r--r--apps/files/tests/Controller/ViewControllerTest.php19
-rw-r--r--apps/files/tests/HelperTest.php52
-rw-r--r--apps/files/tests/Service/TagServiceTest.php49
-rw-r--r--apps/files_external/ajax/oauth2.php1
-rw-r--r--apps/files_external/appinfo/routes.php1
-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/et_EE.js35
-rw-r--r--apps/files_external/l10n/et_EE.json35
-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.php1
-rw-r--r--apps/files_external/lib/Command/Applicable.php1
-rw-r--r--apps/files_external/lib/Command/Backends.php1
-rw-r--r--apps/files_external/lib/Command/Config.php1
-rw-r--r--apps/files_external/lib/Command/Create.php1
-rw-r--r--apps/files_external/lib/Command/Delete.php1
-rw-r--r--apps/files_external/lib/Command/Dependencies.php1
-rw-r--r--apps/files_external/lib/Command/Export.php1
-rw-r--r--apps/files_external/lib/Command/Import.php9
-rw-r--r--apps/files_external/lib/Command/ListCommand.php1
-rw-r--r--apps/files_external/lib/Command/Option.php1
-rw-r--r--apps/files_external/lib/Command/Scan.php15
-rw-r--r--apps/files_external/lib/Command/Verify.php1
-rw-r--r--apps/files_external/lib/Config/ConfigAdapter.php1
-rw-r--r--apps/files_external/lib/Config/ExternalMountPoint.php1
-rw-r--r--apps/files_external/lib/Config/IConfigHandler.php1
-rw-r--r--apps/files_external/lib/Config/SimpleSubstitutionTrait.php1
-rw-r--r--apps/files_external/lib/Config/UserContext.php1
-rw-r--r--apps/files_external/lib/Config/UserPlaceholderHandler.php1
-rw-r--r--apps/files_external/lib/Controller/AjaxController.php1
-rw-r--r--apps/files_external/lib/Controller/GlobalStoragesController.php1
-rw-r--r--apps/files_external/lib/Controller/StoragesController.php1
-rw-r--r--apps/files_external/lib/Controller/UserGlobalStoragesController.php1
-rw-r--r--apps/files_external/lib/Controller/UserStoragesController.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/AmazonS3/AccessKey.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/AuthMechanism.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Builtin.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/IUserProvided.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/InvalidAuth.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/NullMechanism.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/OpenStack/Rackspace.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/Password.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/UserProvided.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/PublicKey/RSA.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php1
-rw-r--r--apps/files_external/lib/Lib/Auth/SMB/KerberosAuth.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/AmazonS3.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/Backend.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/DAV.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/FTP.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/InvalidBackend.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/LegacyBackend.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/Local.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/OwnCloud.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/SFTP.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/SFTP_Key.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/SMB.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/SMB_OC.php1
-rw-r--r--apps/files_external/lib/Lib/Backend/Swift.php1
-rw-r--r--apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php1
-rw-r--r--apps/files_external/lib/Lib/Config/IBackendProvider.php1
-rw-r--r--apps/files_external/lib/Lib/DefinitionParameter.php1
-rw-r--r--apps/files_external/lib/Lib/DependencyTrait.php1
-rw-r--r--apps/files_external/lib/Lib/FrontendDefinitionTrait.php1
-rw-r--r--apps/files_external/lib/Lib/IFrontendDefinition.php1
-rw-r--r--apps/files_external/lib/Lib/IIdentifier.php1
-rw-r--r--apps/files_external/lib/Lib/IdentifierTrait.php1
-rw-r--r--apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php1
-rw-r--r--apps/files_external/lib/Lib/LegacyDependencyCheckPolyfill.php1
-rw-r--r--apps/files_external/lib/Lib/MissingDependency.php1
-rw-r--r--apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php1
-rw-r--r--apps/files_external/lib/Lib/PersonalMount.php1
-rw-r--r--apps/files_external/lib/Lib/PriorityTrait.php1
-rw-r--r--apps/files_external/lib/Lib/SessionStorageWrapper.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/AmazonS3.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/FTP.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/OwnCloud.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/SFTP.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php11
-rw-r--r--apps/files_external/lib/Lib/Storage/StreamWrapper.php1
-rw-r--r--apps/files_external/lib/Lib/StorageConfig.php1
-rw-r--r--apps/files_external/lib/Lib/StorageModifierTrait.php1
-rw-r--r--apps/files_external/lib/Lib/VisibilityTrait.php1
-rw-r--r--apps/files_external/lib/Migration/DummyUserSession.php1
-rw-r--r--apps/files_external/lib/MountConfig.php1
-rw-r--r--apps/files_external/lib/NotFoundException.php1
-rw-r--r--apps/files_external/lib/Service/BackendService.php5
-rw-r--r--apps/files_external/lib/Service/DBConfigService.php1
-rw-r--r--apps/files_external/lib/Service/GlobalStoragesService.php1
-rw-r--r--apps/files_external/lib/Service/ImportLegacyStoragesService.php1
-rw-r--r--apps/files_external/lib/Service/LegacyStoragesService.php1
-rw-r--r--apps/files_external/lib/Service/StoragesService.php1
-rw-r--r--apps/files_external/lib/Service/UserGlobalStoragesService.php1
-rw-r--r--apps/files_external/lib/Service/UserStoragesService.php1
-rw-r--r--apps/files_external/lib/Service/UserTrait.php1
-rw-r--r--apps/files_external/lib/Settings/Admin.php1
-rw-r--r--apps/files_external/lib/Settings/Personal.php1
-rw-r--r--apps/files_external/lib/Settings/PersonalSection.php1
-rw-r--r--apps/files_external/lib/Settings/Section.php1
-rw-r--r--apps/files_external/tests/Auth/AuthMechanismTest.php22
-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.php14
-rw-r--r--apps/files_external/tests/Backend/LegacyBackendTest.php18
-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)18
-rw-r--r--apps/files_external/tests/Command/ListCommandTest.php22
-rw-r--r--apps/files_external/tests/Config/UserPlaceholderHandlerTest.php44
-rw-r--r--apps/files_external/tests/Controller/AjaxControllerTest.php32
-rw-r--r--apps/files_external/tests/Controller/GlobalStoragesControllerTest.php10
-rw-r--r--apps/files_external/tests/Controller/StoragesControllerTestCase.php (renamed from apps/files_external/tests/Controller/StoragesControllerTest.php)86
-rw-r--r--apps/files_external/tests/Controller/UserStoragesControllerTest.php18
-rw-r--r--apps/files_external/tests/DefinitionParameterTest.php8
-rw-r--r--apps/files_external/tests/FrontendDefinitionTraitTest.php16
-rw-r--r--apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php9
-rw-r--r--apps/files_external/tests/Listener/StorePasswordListenerTest.php7
-rw-r--r--apps/files_external/tests/OwnCloudFunctionsTest.php10
-rw-r--r--apps/files_external/tests/PersonalMountTest.php11
-rw-r--r--apps/files_external/tests/Service/BackendServiceTest.php42
-rw-r--r--apps/files_external/tests/Service/DBConfigServiceTest.php20
-rw-r--r--apps/files_external/tests/Service/GlobalStoragesServiceTest.php52
-rw-r--r--apps/files_external/tests/Service/StoragesServiceTestCase.php (renamed from apps/files_external/tests/Service/StoragesServiceTest.php)87
-rw-r--r--apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php37
-rw-r--r--apps/files_external/tests/Service/UserStoragesServiceTest.php21
-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.php2
-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.php8
-rw-r--r--apps/files_external/tests/Storage/SmbTest.php2
-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/config.php1
-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/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/sw.js37
-rw-r--r--apps/files_reminders/l10n/sw.json35
-rw-r--r--apps/files_reminders/l10n/tr.js4
-rw-r--r--apps/files_reminders/l10n/tr.json4
-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/appinfo/routes.php1
-rw-r--r--apps/files_sharing/css/404.css2
-rw-r--r--apps/files_sharing/l10n/ar.js26
-rw-r--r--apps/files_sharing/l10n/ar.json26
-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.js26
-rw-r--r--apps/files_sharing/l10n/ca.json26
-rw-r--r--apps/files_sharing/l10n/cs.js42
-rw-r--r--apps/files_sharing/l10n/cs.json42
-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.js26
-rw-r--r--apps/files_sharing/l10n/da.json26
-rw-r--r--apps/files_sharing/l10n/de.js50
-rw-r--r--apps/files_sharing/l10n/de.json50
-rw-r--r--apps/files_sharing/l10n/de_DE.js56
-rw-r--r--apps/files_sharing/l10n/de_DE.json56
-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.js40
-rw-r--r--apps/files_sharing/l10n/en_GB.json40
-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.js27
-rw-r--r--apps/files_sharing/l10n/es.json27
-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.js55
-rw-r--r--apps/files_sharing/l10n/et_EE.json55
-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.js10
-rw-r--r--apps/files_sharing/l10n/fa.json10
-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.js51
-rw-r--r--apps/files_sharing/l10n/fr.json51
-rw-r--r--apps/files_sharing/l10n/ga.js40
-rw-r--r--apps/files_sharing/l10n/ga.json40
-rw-r--r--apps/files_sharing/l10n/gl.js26
-rw-r--r--apps/files_sharing/l10n/gl.json26
-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.js24
-rw-r--r--apps/files_sharing/l10n/is.json24
-rw-r--r--apps/files_sharing/l10n/it.js39
-rw-r--r--apps/files_sharing/l10n/it.json39
-rw-r--r--apps/files_sharing/l10n/ja.js43
-rw-r--r--apps/files_sharing/l10n/ja.json43
-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.js28
-rw-r--r--apps/files_sharing/l10n/ko.json28
-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.js34
-rw-r--r--apps/files_sharing/l10n/mk.json34
-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.js88
-rw-r--r--apps/files_sharing/l10n/pt_BR.json88
-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.js7
-rw-r--r--apps/files_sharing/l10n/sc.json7
-rw-r--r--apps/files_sharing/l10n/sk.js27
-rw-r--r--apps/files_sharing/l10n/sk.json27
-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.js41
-rw-r--r--apps/files_sharing/l10n/sr.json41
-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.js40
-rw-r--r--apps/files_sharing/l10n/sv.json40
-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.js41
-rw-r--r--apps/files_sharing/l10n/uk.json41
-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.js52
-rw-r--r--apps/files_sharing/l10n/zh_CN.json52
-rw-r--r--apps/files_sharing/l10n/zh_HK.js40
-rw-r--r--apps/files_sharing/l10n/zh_HK.json40
-rw-r--r--apps/files_sharing/l10n/zh_TW.js40
-rw-r--r--apps/files_sharing/l10n/zh_TW.json40
-rw-r--r--apps/files_sharing/lib/Activity/Filter.php1
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Base.php1
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Downloads.php17
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Groups.php1
-rw-r--r--apps/files_sharing/lib/Activity/Providers/PublicLinks.php1
-rw-r--r--apps/files_sharing/lib/Activity/Providers/RemoteShares.php1
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Users.php1
-rw-r--r--apps/files_sharing/lib/Activity/Settings/PublicLinks.php1
-rw-r--r--apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php3
-rw-r--r--apps/files_sharing/lib/Activity/Settings/RemoteShare.php1
-rw-r--r--apps/files_sharing/lib/Activity/Settings/Shared.php1
-rw-r--r--apps/files_sharing/lib/Cache.php1
-rw-r--r--apps/files_sharing/lib/Capabilities.php1
-rw-r--r--apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php1
-rw-r--r--apps/files_sharing/lib/Command/CleanupRemoteStorages.php1
-rw-r--r--apps/files_sharing/lib/Controller/DeletedShareAPIController.php5
-rw-r--r--apps/files_sharing/lib/Controller/ExternalSharesController.php1
-rw-r--r--apps/files_sharing/lib/Controller/PublicPreviewController.php10
-rw-r--r--apps/files_sharing/lib/Controller/RemoteController.php1
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php103
-rw-r--r--apps/files_sharing/lib/Controller/ShareController.php7
-rw-r--r--apps/files_sharing/lib/Controller/ShareInfoController.php1
-rw-r--r--apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php13
-rw-r--r--apps/files_sharing/lib/Exceptions/BrokenPath.php1
-rw-r--r--apps/files_sharing/lib/Exceptions/S2SException.php1
-rw-r--r--apps/files_sharing/lib/Exceptions/SharingRightsException.php1
-rw-r--r--apps/files_sharing/lib/ExpireSharesJob.php1
-rw-r--r--apps/files_sharing/lib/External/Cache.php1
-rw-r--r--apps/files_sharing/lib/External/Manager.php7
-rw-r--r--apps/files_sharing/lib/External/Mount.php1
-rw-r--r--apps/files_sharing/lib/External/MountProvider.php1
-rw-r--r--apps/files_sharing/lib/External/Scanner.php1
-rw-r--r--apps/files_sharing/lib/External/Watcher.php1
-rw-r--r--apps/files_sharing/lib/Helper.php1
-rw-r--r--apps/files_sharing/lib/Hooks.php1
-rw-r--r--apps/files_sharing/lib/ISharedStorage.php1
-rw-r--r--apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php10
-rw-r--r--apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php1
-rw-r--r--apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php1
-rw-r--r--apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php12
-rw-r--r--apps/files_sharing/lib/Migration/OwncloudGuestShareType.php5
-rw-r--r--apps/files_sharing/lib/Migration/SetPasswordColumn.php1
-rw-r--r--apps/files_sharing/lib/MountProvider.php11
-rw-r--r--apps/files_sharing/lib/Notification/Listener.php8
-rw-r--r--apps/files_sharing/lib/Notification/Notifier.php6
-rw-r--r--apps/files_sharing/lib/Scanner.php1
-rw-r--r--apps/files_sharing/lib/ShareBackend/Folder.php1
-rw-r--r--apps/files_sharing/lib/SharedMount.php1
-rw-r--r--apps/files_sharing/lib/SharedStorage.php1
-rw-r--r--apps/files_sharing/lib/Updater.php11
-rw-r--r--apps/files_sharing/lib/ViewOnly.php1
-rw-r--r--apps/files_sharing/openapi.json33
-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/files_actions/openInFilesAction.spec.ts2
-rw-r--r--apps/files_sharing/src/files_actions/openInFilesAction.ts4
-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/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.vue26
-rw-r--r--apps/files_sharing/src/views/SharingTab.vue25
-rw-r--r--apps/files_sharing/tests/ApiTest.php28
-rw-r--r--apps/files_sharing/tests/ApplicationTest.php9
-rw-r--r--apps/files_sharing/tests/CacheTest.php1
-rw-r--r--apps/files_sharing/tests/CapabilitiesTest.php1
-rw-r--r--apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php119
-rw-r--r--apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php43
-rw-r--r--apps/files_sharing/tests/Command/FixShareOwnersTest.php1
-rw-r--r--apps/files_sharing/tests/Controller/ExternalShareControllerTest.php1
-rw-r--r--apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php33
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php494
-rw-r--r--apps/files_sharing/tests/Controller/ShareControllerTest.php33
-rw-r--r--apps/files_sharing/tests/Controller/ShareInfoControllerTest.php22
-rw-r--r--apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php21
-rw-r--r--apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php1
-rw-r--r--apps/files_sharing/tests/EncryptedSizePropagationTest.php10
-rw-r--r--apps/files_sharing/tests/EtagPropagationTest.php1
-rw-r--r--apps/files_sharing/tests/ExpireSharesJobTest.php5
-rw-r--r--apps/files_sharing/tests/External/CacheTest.php1
-rw-r--r--apps/files_sharing/tests/External/ManagerTest.php71
-rw-r--r--apps/files_sharing/tests/External/ScannerTest.php1
-rw-r--r--apps/files_sharing/tests/ExternalStorageTest.php7
-rw-r--r--apps/files_sharing/tests/GroupEtagPropagationTest.php1
-rw-r--r--apps/files_sharing/tests/HelperTest.php1
-rw-r--r--apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php120
-rw-r--r--apps/files_sharing/tests/LockingTest.php1
-rw-r--r--apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php5
-rw-r--r--apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php1
-rw-r--r--apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php11
-rw-r--r--apps/files_sharing/tests/Migration/SetPasswordColumnTest.php1
-rw-r--r--apps/files_sharing/tests/MountProviderTest.php93
-rw-r--r--apps/files_sharing/tests/PropagationTestCase.php1
-rw-r--r--apps/files_sharing/tests/ShareTest.php5
-rw-r--r--apps/files_sharing/tests/SharedMountTest.php5
-rw-r--r--apps/files_sharing/tests/SharedStorageTest.php3
-rw-r--r--apps/files_sharing/tests/SharesReminderJobTest.php4
-rw-r--r--apps/files_sharing/tests/SizePropagationTest.php1
-rw-r--r--apps/files_sharing/tests/TestCase.php1
-rw-r--r--apps/files_sharing/tests/UnshareChildrenTest.php1
-rw-r--r--apps/files_sharing/tests/UpdaterTest.php5
-rw-r--r--apps/files_sharing/tests/WatcherTest.php1
-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.js6
-rw-r--r--apps/files_trashbin/l10n/de.json6
-rw-r--r--apps/files_trashbin/l10n/de_DE.js6
-rw-r--r--apps/files_trashbin/l10n/de_DE.json6
-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.js6
-rw-r--r--apps/files_trashbin/l10n/en_GB.json6
-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.js6
-rw-r--r--apps/files_trashbin/l10n/ga.json6
-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.js6
-rw-r--r--apps/files_trashbin/l10n/ja.json6
-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.js6
-rw-r--r--apps/files_trashbin/l10n/pl.json6
-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.js8
-rw-r--r--apps/files_trashbin/l10n/zh_CN.json8
-rw-r--r--apps/files_trashbin/l10n/zh_HK.js6
-rw-r--r--apps/files_trashbin/l10n/zh_HK.json6
-rw-r--r--apps/files_trashbin/l10n/zh_TW.js6
-rw-r--r--apps/files_trashbin/l10n/zh_TW.json6
-rw-r--r--apps/files_trashbin/lib/AppInfo/Application.php1
-rw-r--r--apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php1
-rw-r--r--apps/files_trashbin/lib/Capabilities.php1
-rw-r--r--apps/files_trashbin/lib/Command/Expire.php1
-rw-r--r--apps/files_trashbin/lib/Command/ExpireTrash.php1
-rw-r--r--apps/files_trashbin/lib/Command/RestoreAllFiles.php1
-rw-r--r--apps/files_trashbin/lib/Events/MoveToTrashEvent.php1
-rw-r--r--apps/files_trashbin/lib/Exceptions/CopyRecursiveException.php1
-rw-r--r--apps/files_trashbin/lib/Expiration.php1
-rw-r--r--apps/files_trashbin/lib/Helper.php1
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashbinPlugin.php48
-rw-r--r--apps/files_trashbin/lib/Storage.php5
-rw-r--r--apps/files_trashbin/lib/Trash/BackendNotFoundException.php1
-rw-r--r--apps/files_trashbin/lib/Trash/ITrashBackend.php1
-rw-r--r--apps/files_trashbin/lib/Trash/ITrashItem.php1
-rw-r--r--apps/files_trashbin/lib/Trash/ITrashManager.php1
-rw-r--r--apps/files_trashbin/lib/Trash/LegacyTrashBackend.php1
-rw-r--r--apps/files_trashbin/lib/Trash/TrashItem.php1
-rw-r--r--apps/files_trashbin/lib/Trash/TrashManager.php5
-rw-r--r--apps/files_trashbin/lib/Trashbin.php7
-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.php84
-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.php33
-rw-r--r--apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php70
-rw-r--r--apps/files_trashbin/tests/StorageTest.php122
-rw-r--r--apps/files_trashbin/tests/TrashbinTest.php47
-rw-r--r--apps/files_versions/appinfo/routes.php1
-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/AppInfo/Application.php1
-rw-r--r--apps/files_versions/lib/BackgroundJob/ExpireVersions.php1
-rw-r--r--apps/files_versions/lib/Capabilities.php1
-rw-r--r--apps/files_versions/lib/Command/CleanUp.php1
-rw-r--r--apps/files_versions/lib/Command/Expire.php1
-rw-r--r--apps/files_versions/lib/Command/ExpireVersions.php1
-rw-r--r--apps/files_versions/lib/Controller/PreviewController.php1
-rw-r--r--apps/files_versions/lib/Events/CreateVersionEvent.php1
-rw-r--r--apps/files_versions/lib/Expiration.php1
-rw-r--r--apps/files_versions/lib/Listener/FileEventsListener.php63
-rw-r--r--apps/files_versions/lib/Sabre/RootCollection.php1
-rw-r--r--apps/files_versions/lib/Sabre/VersionHome.php1
-rw-r--r--apps/files_versions/lib/Storage.php33
-rw-r--r--apps/files_versions/lib/Versions/BackendNotFoundException.php1
-rw-r--r--apps/files_versions/lib/Versions/VersionManager.php4
-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.php55
-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.php28
-rw-r--r--apps/files_versions/tests/StorageTest.php8
-rw-r--r--apps/files_versions/tests/VersioningTest.php31
-rw-r--r--apps/files_versions/tests/Versions/VersionManagerTest.php7
-rw-r--r--apps/oauth2/appinfo/routes.php1
-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/oauth2/lib/Db/AccessToken.php1
-rw-r--r--apps/oauth2/lib/Db/Client.php1
-rw-r--r--apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php1
-rw-r--r--apps/oauth2/tests/Controller/OauthApiControllerTest.php17
-rw-r--r--apps/oauth2/tests/Controller/SettingsControllerTest.php9
-rw-r--r--apps/oauth2/tests/Db/AccessTokenMapperTest.php1
-rw-r--r--apps/oauth2/tests/Db/ClientMapperTest.php1
-rw-r--r--apps/oauth2/tests/Settings/AdminTest.php1
-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.js16
-rw-r--r--apps/profile/l10n/sw.json14
-rw-r--r--apps/profile/src/views/Profile.vue2
-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.js31
-rw-r--r--apps/provisioning_api/l10n/pl.json31
-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/AppInfo/Application.php1
-rw-r--r--apps/provisioning_api/lib/Capabilities.php1
-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.php31
-rw-r--r--apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php1
-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.php23
-rw-r--r--apps/provisioning_api/tests/Controller/AppConfigControllerTest.php91
-rw-r--r--apps/provisioning_api/tests/Controller/AppsControllerTest.php26
-rw-r--r--apps/provisioning_api/tests/Controller/GroupsControllerTest.php62
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php180
-rw-r--r--apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php49
-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.js57
-rw-r--r--apps/settings/l10n/ar.json57
-rw-r--r--apps/settings/l10n/ast.js32
-rw-r--r--apps/settings/l10n/ast.json32
-rw-r--r--apps/settings/l10n/az.js188
-rw-r--r--apps/settings/l10n/az.json186
-rw-r--r--apps/settings/l10n/bg.js99
-rw-r--r--apps/settings/l10n/bg.json99
-rw-r--r--apps/settings/l10n/br.js19
-rw-r--r--apps/settings/l10n/br.json19
-rw-r--r--apps/settings/l10n/bs.js104
-rw-r--r--apps/settings/l10n/bs.json102
-rw-r--r--apps/settings/l10n/ca.js61
-rw-r--r--apps/settings/l10n/ca.json61
-rw-r--r--apps/settings/l10n/cs.js69
-rw-r--r--apps/settings/l10n/cs.json69
-rw-r--r--apps/settings/l10n/da.js74
-rw-r--r--apps/settings/l10n/da.json74
-rw-r--r--apps/settings/l10n/de.js101
-rw-r--r--apps/settings/l10n/de.json101
-rw-r--r--apps/settings/l10n/de_DE.js143
-rw-r--r--apps/settings/l10n/de_DE.json143
-rw-r--r--apps/settings/l10n/el.js51
-rw-r--r--apps/settings/l10n/el.json51
-rw-r--r--apps/settings/l10n/en_GB.js55
-rw-r--r--apps/settings/l10n/en_GB.json55
-rw-r--r--apps/settings/l10n/eo.js20
-rw-r--r--apps/settings/l10n/eo.json20
-rw-r--r--apps/settings/l10n/es.js65
-rw-r--r--apps/settings/l10n/es.json65
-rw-r--r--apps/settings/l10n/es_419.js15
-rw-r--r--apps/settings/l10n/es_419.json15
-rw-r--r--apps/settings/l10n/es_AR.js38
-rw-r--r--apps/settings/l10n/es_AR.json38
-rw-r--r--apps/settings/l10n/es_CL.js15
-rw-r--r--apps/settings/l10n/es_CL.json15
-rw-r--r--apps/settings/l10n/es_CO.js14
-rw-r--r--apps/settings/l10n/es_CO.json14
-rw-r--r--apps/settings/l10n/es_CR.js14
-rw-r--r--apps/settings/l10n/es_CR.json14
-rw-r--r--apps/settings/l10n/es_DO.js12
-rw-r--r--apps/settings/l10n/es_DO.json12
-rw-r--r--apps/settings/l10n/es_EC.js36
-rw-r--r--apps/settings/l10n/es_EC.json36
-rw-r--r--apps/settings/l10n/es_GT.js13
-rw-r--r--apps/settings/l10n/es_GT.json13
-rw-r--r--apps/settings/l10n/es_HN.js14
-rw-r--r--apps/settings/l10n/es_HN.json14
-rw-r--r--apps/settings/l10n/es_MX.js47
-rw-r--r--apps/settings/l10n/es_MX.json47
-rw-r--r--apps/settings/l10n/es_NI.js14
-rw-r--r--apps/settings/l10n/es_NI.json14
-rw-r--r--apps/settings/l10n/es_PA.js13
-rw-r--r--apps/settings/l10n/es_PA.json13
-rw-r--r--apps/settings/l10n/es_PE.js13
-rw-r--r--apps/settings/l10n/es_PE.json13
-rw-r--r--apps/settings/l10n/es_PR.js13
-rw-r--r--apps/settings/l10n/es_PR.json13
-rw-r--r--apps/settings/l10n/es_PY.js14
-rw-r--r--apps/settings/l10n/es_PY.json14
-rw-r--r--apps/settings/l10n/es_SV.js13
-rw-r--r--apps/settings/l10n/es_SV.json13
-rw-r--r--apps/settings/l10n/es_UY.js13
-rw-r--r--apps/settings/l10n/es_UY.json13
-rw-r--r--apps/settings/l10n/et_EE.js273
-rw-r--r--apps/settings/l10n/et_EE.json273
-rw-r--r--apps/settings/l10n/eu.js67
-rw-r--r--apps/settings/l10n/eu.json67
-rw-r--r--apps/settings/l10n/fa.js56
-rw-r--r--apps/settings/l10n/fa.json56
-rw-r--r--apps/settings/l10n/fi.js49
-rw-r--r--apps/settings/l10n/fi.json49
-rw-r--r--apps/settings/l10n/fo.js105
-rw-r--r--apps/settings/l10n/fo.json103
-rw-r--r--apps/settings/l10n/fr.js78
-rw-r--r--apps/settings/l10n/fr.json78
-rw-r--r--apps/settings/l10n/ga.js57
-rw-r--r--apps/settings/l10n/ga.json57
-rw-r--r--apps/settings/l10n/gl.js51
-rw-r--r--apps/settings/l10n/gl.json51
-rw-r--r--apps/settings/l10n/he.js30
-rw-r--r--apps/settings/l10n/he.json30
-rw-r--r--apps/settings/l10n/hr.js19
-rw-r--r--apps/settings/l10n/hr.json19
-rw-r--r--apps/settings/l10n/hu.js57
-rw-r--r--apps/settings/l10n/hu.json57
-rw-r--r--apps/settings/l10n/ia.js134
-rw-r--r--apps/settings/l10n/ia.json132
-rw-r--r--apps/settings/l10n/id.js16
-rw-r--r--apps/settings/l10n/id.json16
-rw-r--r--apps/settings/l10n/is.js33
-rw-r--r--apps/settings/l10n/is.json33
-rw-r--r--apps/settings/l10n/it.js59
-rw-r--r--apps/settings/l10n/it.json59
-rw-r--r--apps/settings/l10n/ja.js69
-rw-r--r--apps/settings/l10n/ja.json69
-rw-r--r--apps/settings/l10n/ka.js43
-rw-r--r--apps/settings/l10n/ka.json43
-rw-r--r--apps/settings/l10n/ka_GE.js15
-rw-r--r--apps/settings/l10n/ka_GE.json15
-rw-r--r--apps/settings/l10n/ko.js44
-rw-r--r--apps/settings/l10n/ko.json44
-rw-r--r--apps/settings/l10n/lt_LT.js31
-rw-r--r--apps/settings/l10n/lt_LT.json31
-rw-r--r--apps/settings/l10n/lv.js37
-rw-r--r--apps/settings/l10n/lv.json37
-rw-r--r--apps/settings/l10n/mk.js38
-rw-r--r--apps/settings/l10n/mk.json38
-rw-r--r--apps/settings/l10n/mn.js111
-rw-r--r--apps/settings/l10n/mn.json109
-rw-r--r--apps/settings/l10n/nb.js52
-rw-r--r--apps/settings/l10n/nb.json52
-rw-r--r--apps/settings/l10n/nl.js57
-rw-r--r--apps/settings/l10n/nl.json57
-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.js20
-rw-r--r--apps/settings/l10n/oc.json20
-rw-r--r--apps/settings/l10n/pl.js190
-rw-r--r--apps/settings/l10n/pl.json190
-rw-r--r--apps/settings/l10n/pt_BR.js133
-rw-r--r--apps/settings/l10n/pt_BR.json133
-rw-r--r--apps/settings/l10n/pt_PT.js21
-rw-r--r--apps/settings/l10n/pt_PT.json21
-rw-r--r--apps/settings/l10n/ro.js16
-rw-r--r--apps/settings/l10n/ro.json16
-rw-r--r--apps/settings/l10n/ru.js64
-rw-r--r--apps/settings/l10n/ru.json64
-rw-r--r--apps/settings/l10n/sc.js22
-rw-r--r--apps/settings/l10n/sc.json22
-rw-r--r--apps/settings/l10n/sk.js55
-rw-r--r--apps/settings/l10n/sk.json55
-rw-r--r--apps/settings/l10n/sl.js47
-rw-r--r--apps/settings/l10n/sl.json47
-rw-r--r--apps/settings/l10n/sq.js30
-rw-r--r--apps/settings/l10n/sq.json30
-rw-r--r--apps/settings/l10n/sr.js57
-rw-r--r--apps/settings/l10n/sr.json57
-rw-r--r--apps/settings/l10n/sv.js46
-rw-r--r--apps/settings/l10n/sv.json46
-rw-r--r--apps/settings/l10n/th.js17
-rw-r--r--apps/settings/l10n/th.json17
-rw-r--r--apps/settings/l10n/tr.js182
-rw-r--r--apps/settings/l10n/tr.json182
-rw-r--r--apps/settings/l10n/ug.js51
-rw-r--r--apps/settings/l10n/ug.json51
-rw-r--r--apps/settings/l10n/uk.js51
-rw-r--r--apps/settings/l10n/uk.json51
-rw-r--r--apps/settings/l10n/vi.js45
-rw-r--r--apps/settings/l10n/vi.json45
-rw-r--r--apps/settings/l10n/zh_CN.js69
-rw-r--r--apps/settings/l10n/zh_CN.json69
-rw-r--r--apps/settings/l10n/zh_HK.js69
-rw-r--r--apps/settings/l10n/zh_HK.json69
-rw-r--r--apps/settings/l10n/zh_TW.js65
-rw-r--r--apps/settings/l10n/zh_TW.json65
-rw-r--r--apps/settings/lib/Activity/GroupProvider.php1
-rw-r--r--apps/settings/lib/Activity/GroupSetting.php1
-rw-r--r--apps/settings/lib/Activity/SecurityFilter.php1
-rw-r--r--apps/settings/lib/Activity/SecuritySetting.php1
-rw-r--r--apps/settings/lib/Activity/Setting.php1
-rw-r--r--apps/settings/lib/AppInfo/Application.php2
-rw-r--r--apps/settings/lib/Controller/AISettingsController.php2
-rw-r--r--apps/settings/lib/Controller/AdminSettingsController.php1
-rw-r--r--apps/settings/lib/Controller/AppSettingsController.php1
-rw-r--r--apps/settings/lib/Controller/AuthorizedGroupController.php2
-rw-r--r--apps/settings/lib/Controller/ChangePasswordController.php7
-rw-r--r--apps/settings/lib/Controller/CommonSettingsTrait.php9
-rw-r--r--apps/settings/lib/Controller/DeclarativeSettingsController.php40
-rw-r--r--apps/settings/lib/Controller/MailSettingsController.php1
-rw-r--r--apps/settings/lib/Controller/PersonalSettingsController.php1
-rw-r--r--apps/settings/lib/Controller/UsersController.php4
-rw-r--r--apps/settings/lib/Hooks.php5
-rw-r--r--apps/settings/lib/Listener/MailProviderListener.php4
-rw-r--r--apps/settings/lib/Mailer/NewUserMailHelper.php1
-rw-r--r--apps/settings/lib/ResponseDefinitions.php1
-rw-r--r--apps/settings/lib/Search/AppSearch.php4
-rw-r--r--apps/settings/lib/Search/SectionSearch.php4
-rw-r--r--apps/settings/lib/Sections/Admin/Delegation.php1
-rw-r--r--apps/settings/lib/Service/AuthorizedGroupService.php4
-rw-r--r--apps/settings/lib/Settings/Admin/ArtificialIntelligence.php4
-rw-r--r--apps/settings/lib/Settings/Admin/Mail.php1
-rw-r--r--apps/settings/lib/Settings/Admin/Overview.php1
-rw-r--r--apps/settings/lib/Settings/Admin/Security.php1
-rw-r--r--apps/settings/lib/Settings/Admin/Sharing.php2
-rw-r--r--apps/settings/lib/Settings/Personal/Additional.php1
-rw-r--r--apps/settings/lib/Settings/Personal/ServerDevNotice.php1
-rw-r--r--apps/settings/lib/SetupChecks/DataDirectoryProtected.php2
-rw-r--r--apps/settings/lib/SetupChecks/JavaScriptModules.php2
-rw-r--r--apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php5
-rw-r--r--apps/settings/lib/SetupChecks/PhpOpcacheSetup.php34
-rw-r--r--apps/settings/lib/SetupChecks/SecurityHeaders.php5
-rw-r--r--apps/settings/lib/SetupChecks/TaskProcessingPickupSpeed.php63
-rw-r--r--apps/settings/openapi-full.json137
-rw-r--r--apps/settings/openapi.json137
-rw-r--r--apps/settings/src/components/AdminAI.vue5
-rw-r--r--apps/settings/src/components/AdminSettingsSharingForm.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/templates/settings/empty.php1
-rw-r--r--apps/settings/tests/Activity/SecurityFilterTest.php13
-rw-r--r--apps/settings/tests/Activity/SecurityProviderTest.php33
-rw-r--r--apps/settings/tests/Activity/SecuritySettingTest.php5
-rw-r--r--apps/settings/tests/AppInfo/ApplicationTest.php19
-rw-r--r--apps/settings/tests/Controller/AdminSettingsControllerTest.php1
-rw-r--r--apps/settings/tests/Controller/AppSettingsControllerTest.php49
-rw-r--r--apps/settings/tests/Controller/AuthSettingsControllerTest.php52
-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.php146
-rw-r--r--apps/settings/tests/Mailer/NewUserMailHelperTest.php42
-rw-r--r--apps/settings/tests/Middleware/SubadminMiddlewareTest.php23
-rw-r--r--apps/settings/tests/Settings/Admin/MailTest.php7
-rw-r--r--apps/settings/tests/Settings/Admin/SecurityTest.php34
-rw-r--r--apps/settings/tests/Settings/Admin/ServerTest.php27
-rw-r--r--apps/settings/tests/Settings/Admin/SharingTest.php41
-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.php10
-rw-r--r--apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php11
-rw-r--r--apps/settings/tests/SetupChecks/LoggingLevelTest.php6
-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.php39
-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.php23
-rw-r--r--apps/settings/tests/UserMigration/AccountMigratorTest.php53
-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.js13
-rw-r--r--apps/sharebymail/l10n/pl.json13
-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/Activity.php1
-rw-r--r--apps/sharebymail/lib/Capabilities.php35
-rw-r--r--apps/sharebymail/lib/Settings/Admin.php1
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php5
-rw-r--r--apps/sharebymail/tests/CapabilitiesTest.php52
-rw-r--r--apps/sharebymail/tests/ShareByMailProviderTest.php263
-rw-r--r--apps/systemtags/appinfo/routes.php1
-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.js4
-rw-r--r--apps/systemtags/l10n/de.json4
-rw-r--r--apps/systemtags/l10n/de_DE.js4
-rw-r--r--apps/systemtags/l10n/de_DE.json4
-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.js4
-rw-r--r--apps/systemtags/l10n/et_EE.json4
-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.js5
-rw-r--r--apps/systemtags/l10n/lv.json5
-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.js32
-rw-r--r--apps/systemtags/l10n/pl.json32
-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/lib/Activity/Provider.php1
-rw-r--r--apps/systemtags/lib/Activity/Setting.php1
-rw-r--r--apps/systemtags/lib/Controller/LastUsedController.php1
-rw-r--r--apps/systemtags/lib/Settings/Admin.php1
-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/systemtags/tests/Activity/SettingTest.php1
-rw-r--r--apps/systemtags/tests/Settings/AdminTest.php1
-rw-r--r--apps/testing/clean_opcode_cache.php1
-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/AlternativeHomeUserBackend.php1
-rw-r--r--apps/testing/lib/AppInfo/Application.php6
-rw-r--r--apps/testing/lib/Controller/ConfigController.php1
-rw-r--r--apps/testing/lib/Controller/LockingController.php1
-rw-r--r--apps/testing/lib/Controller/RateLimitTestController.php1
-rw-r--r--apps/testing/lib/HiddenGroupBackend.php44
-rw-r--r--apps/testing/lib/Locking/FakeDBLockingProvider.php1
-rw-r--r--apps/testing/lib/Provider/FakeText2ImageProvider.php1
-rw-r--r--apps/testing/lib/Provider/FakeTextProcessingProvider.php1
-rw-r--r--apps/testing/lib/Provider/FakeTextProcessingProviderSync.php1
-rw-r--r--apps/testing/lib/Provider/FakeTranslationProvider.php1
-rw-r--r--apps/testing/lib/Settings/DeclarativeSettingsForm.php30
-rw-r--r--apps/testing/lib/TaskProcessing/FakeContextWriteProvider.php1
-rw-r--r--apps/testing/lib/TaskProcessing/FakeTextToImageProvider.php1
-rw-r--r--apps/testing/lib/TaskProcessing/FakeTextToTextProvider.php1
-rw-r--r--apps/testing/lib/TaskProcessing/FakeTranscribeProvider.php1
-rw-r--r--apps/testing/lib/TaskProcessing/FakeTranslateProvider.php1
-rw-r--r--apps/theming/appinfo/routes.php1
-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.js13
-rw-r--r--apps/theming/l10n/de.json13
-rw-r--r--apps/theming/l10n/de_DE.js13
-rw-r--r--apps/theming/l10n/de_DE.json13
-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.js21
-rw-r--r--apps/theming/l10n/pl.json21
-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/AppInfo/Application.php1
-rw-r--r--apps/theming/lib/Capabilities.php3
-rw-r--r--apps/theming/lib/Command/UpdateConfig.php5
-rw-r--r--apps/theming/lib/Controller/IconController.php1
-rw-r--r--apps/theming/lib/Controller/ThemingController.php17
-rw-r--r--apps/theming/lib/IconBuilder.php24
-rw-r--r--apps/theming/lib/ImageManager.php1
-rw-r--r--apps/theming/lib/Service/ThemeInjectionService.php1
-rw-r--r--apps/theming/lib/Service/ThemesService.php1
-rw-r--r--apps/theming/lib/Settings/Admin.php1
-rw-r--r--apps/theming/lib/Settings/AdminSection.php1
-rw-r--r--apps/theming/lib/Settings/Personal.php1
-rw-r--r--apps/theming/lib/Settings/PersonalSection.php1
-rw-r--r--apps/theming/lib/ThemingDefaults.php9
-rw-r--r--apps/theming/lib/Util.php5
-rw-r--r--apps/theming/openapi.json5
-rw-r--r--apps/theming/tests/CapabilitiesTest.php46
-rw-r--r--apps/theming/tests/Controller/IconControllerTest.php42
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php114
-rw-r--r--apps/theming/tests/Controller/UserThemeControllerTest.php46
-rw-r--r--apps/theming/tests/IconBuilderTest.php64
-rw-r--r--apps/theming/tests/ImageManagerTest.php42
-rw-r--r--apps/theming/tests/Service/ThemesServiceTest.php42
-rw-r--r--apps/theming/tests/ServicesTest.php20
-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.php13
-rw-r--r--apps/theming/tests/Themes/AccessibleThemeTestCase.php14
-rw-r--r--apps/theming/tests/Themes/DarkHighContrastThemeTest.php24
-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.php33
-rw-r--r--apps/theming/tests/Themes/HighContrastThemeTest.php25
-rw-r--r--apps/theming/tests/ThemingDefaultsTest.php84
-rw-r--r--apps/theming/tests/UtilTest.php42
-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/Service/BackupCodeStorageTest.php8
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php4
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php22
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php8
-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/pl.js13
-rw-r--r--apps/updatenotification/l10n/pl.json13
-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.php4
-rw-r--r--apps/updatenotification/openapi.json3
-rw-r--r--apps/updatenotification/templates/empty.php1
-rw-r--r--apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php18
-rw-r--r--apps/updatenotification/tests/Controller/APIControllerTest.php4
-rw-r--r--apps/updatenotification/tests/Notification/NotifierTest.php4
-rw-r--r--apps/updatenotification/tests/Settings/AdminTest.php4
-rw-r--r--apps/updatenotification/tests/UpdateCheckerTest.php2
-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/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/pl.js25
-rw-r--r--apps/user_ldap/l10n/pl.json25
-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/Access.php8
-rw-r--r--apps/user_ldap/lib/AccessFactory.php1
-rw-r--r--apps/user_ldap/lib/AppInfo/Application.php1
-rw-r--r--apps/user_ldap/lib/Command/ResetGroup.php1
-rw-r--r--apps/user_ldap/lib/Command/ResetUser.php1
-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/Command/TestUserSettings.php6
-rw-r--r--apps/user_ldap/lib/Connection.php8
-rw-r--r--apps/user_ldap/lib/ConnectionFactory.php1
-rw-r--r--apps/user_ldap/lib/Controller/ConfigAPIController.php1
-rw-r--r--apps/user_ldap/lib/Controller/RenewPasswordController.php1
-rw-r--r--apps/user_ldap/lib/Exceptions/AttributeNotSet.php1
-rw-r--r--apps/user_ldap/lib/Exceptions/ConstraintViolationException.php1
-rw-r--r--apps/user_ldap/lib/Exceptions/NotOnLDAP.php1
-rw-r--r--apps/user_ldap/lib/GroupPluginManager.php1
-rw-r--r--apps/user_ldap/lib/Group_LDAP.php14
-rw-r--r--apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php1
-rw-r--r--apps/user_ldap/lib/Helper.php96
-rw-r--r--apps/user_ldap/lib/IGroupLDAP.php1
-rw-r--r--apps/user_ldap/lib/ILDAPGroupPlugin.php1
-rw-r--r--apps/user_ldap/lib/ILDAPUserPlugin.php1
-rw-r--r--apps/user_ldap/lib/IUserLDAP.php5
-rw-r--r--apps/user_ldap/lib/Jobs/CleanUp.php6
-rw-r--r--apps/user_ldap/lib/LDAP.php46
-rw-r--r--apps/user_ldap/lib/Migration/UUIDFix.php1
-rw-r--r--apps/user_ldap/lib/Migration/UUIDFixGroup.php1
-rw-r--r--apps/user_ldap/lib/Migration/UUIDFixInsert.php1
-rw-r--r--apps/user_ldap/lib/Migration/UUIDFixUser.php1
-rw-r--r--apps/user_ldap/lib/Notification/Notifier.php1
-rw-r--r--apps/user_ldap/lib/Settings/Admin.php5
-rw-r--r--apps/user_ldap/lib/Settings/Section.php1
-rw-r--r--apps/user_ldap/lib/User/DeletedUsersIndex.php1
-rw-r--r--apps/user_ldap/lib/User/User.php6
-rw-r--r--apps/user_ldap/lib/UserPluginManager.php1
-rw-r--r--apps/user_ldap/lib/User_LDAP.php12
-rw-r--r--apps/user_ldap/lib/User_Proxy.php10
-rw-r--r--apps/user_ldap/lib/Wizard.php8
-rw-r--r--apps/user_ldap/lib/WizardResult.php2
-rw-r--r--apps/user_ldap/tests/AccessTest.php136
-rw-r--r--apps/user_ldap/tests/ConfigurationTest.php26
-rw-r--r--apps/user_ldap/tests/ConnectionTest.php16
-rw-r--r--apps/user_ldap/tests/GroupLDAPPluginTest.php40
-rw-r--r--apps/user_ldap/tests/Group_LDAPTest.php112
-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/Bootstrap.php1
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php3
-rw-r--r--apps/user_ldap/tests/Jobs/CleanUpTest.php11
-rw-r--r--apps/user_ldap/tests/Jobs/SyncTest.php117
-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.php16
-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.php56
-rw-r--r--apps/user_ldap/tests/Migration/UUIDFixUserTest.php4
-rw-r--r--apps/user_ldap/tests/Service/BirthdateParserServiceTest.php9
-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.php68
-rw-r--r--apps/user_ldap/tests/User/OfflineUserTest.php23
-rw-r--r--apps/user_ldap/tests/User/UserTest.php78
-rw-r--r--apps/user_ldap/tests/UserLDAPPluginTest.php64
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php81
-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/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/BackgroundJob/ClearOldStatusesBackgroundJob.php3
-rw-r--r--apps/user_status/lib/Listener/UserLiveStatusListener.php4
-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/CapabilitiesTest.php4
-rw-r--r--apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php12
-rw-r--r--apps/user_status/tests/Unit/Db/UserStatusMapperTest.php8
-rw-r--r--apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php4
-rw-r--r--apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php12
-rw-r--r--apps/user_status/tests/Unit/Service/StatusServiceTest.php16
-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/pl.js14
-rw-r--r--apps/weather_status/l10n/pl.json14
-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/Controller/WebhooksController.php6
-rw-r--r--apps/webhook_listeners/lib/Service/PHPMongoQuery.php28
-rw-r--r--apps/webhook_listeners/openapi.json19
-rw-r--r--apps/webhook_listeners/tests/Service/PHPMongoQueryTest.php4
-rw-r--r--apps/workflowengine/appinfo/routes.php1
-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/lib/AppInfo/Application.php1
-rw-r--r--apps/workflowengine/lib/BackgroundJobs/Rotate.php1
-rw-r--r--apps/workflowengine/lib/Check/AbstractStringCheck.php5
-rw-r--r--apps/workflowengine/lib/Check/FileMimeType.php23
-rw-r--r--apps/workflowengine/lib/Check/FileSize.php1
-rw-r--r--apps/workflowengine/lib/Check/FileSystemTags.php1
-rw-r--r--apps/workflowengine/lib/Check/RequestRemoteAddress.php1
-rw-r--r--apps/workflowengine/lib/Check/RequestTime.php1
-rw-r--r--apps/workflowengine/lib/Check/RequestURL.php9
-rw-r--r--apps/workflowengine/lib/Check/RequestUserAgent.php1
-rw-r--r--apps/workflowengine/lib/Check/UserGroupMembership.php1
-rw-r--r--apps/workflowengine/lib/Controller/RequestTimeController.php1
-rw-r--r--apps/workflowengine/lib/Manager.php1
-rw-r--r--apps/workflowengine/lib/Settings/Section.php1
-rw-r--r--apps/workflowengine/tests/Check/AbstractStringCheckTest.php16
-rw-r--r--apps/workflowengine/tests/Check/RequestRemoteAddressTest.php16
-rw-r--r--apps/workflowengine/tests/Check/RequestTimeTest.php16
-rw-r--r--apps/workflowengine/tests/Check/RequestUserAgentTest.php4
-rw-r--r--apps/workflowengine/tests/ManagerTest.php1
3361 files changed, 28864 insertions, 70826 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/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/l10n/sw.js b/apps/cloud_federation_api/l10n/sw.js
new file mode 100644
index 00000000000..c58c7d2b6f8
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/sw.js
@@ -0,0 +1,8 @@
+OC.L10N.register(
+ "cloud_federation_api",
+ {
+ "Cloud Federation API" : "API ya Shirikisho la Cloud",
+ "Enable clouds to communicate with each other and exchange data" : "Washa clouds kuwasiliana na kubadilishana data",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "API ya Shirikisho la Cloud huwezesha matukio mbalimbali ya Nextcloud kuwasiliana na kubadilishana data."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/cloud_federation_api/l10n/sw.json b/apps/cloud_federation_api/l10n/sw.json
new file mode 100644
index 00000000000..622453561cb
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/sw.json
@@ -0,0 +1,6 @@
+{ "translations": {
+ "Cloud Federation API" : "API ya Shirikisho la Cloud",
+ "Enable clouds to communicate with each other and exchange data" : "Washa clouds kuwasiliana na kubadilishana data",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "API ya Shirikisho la Cloud huwezesha matukio mbalimbali ya Nextcloud kuwasiliana na kubadilishana data."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ 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/Config.php b/apps/cloud_federation_api/lib/Config.php
index f7c14a75c37..23788c26dc9 100644
--- a/apps/cloud_federation_api/lib/Config.php
+++ b/apps/cloud_federation_api/lib/Config.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php b/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php
index cbd66f52382..a76b1884a0b 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,16 +117,17 @@ class RequestHandlerController extends Controller {
}
// check if all required parameters are set
- if ($shareWith === null ||
- $name === null ||
- $providerId === null ||
- $resourceType === null ||
- $shareType === null ||
- !is_array($protocol) ||
- !isset($protocol['name']) ||
- !isset($protocol['options']) ||
- !is_array($protocol['options']) ||
- !isset($protocol['options']['sharedSecret'])
+ if (
+ $shareWith === null
+ || $name === null
+ || $providerId === null
+ || $resourceType === null
+ || $shareType === null
+ || !is_array($protocol)
+ || !isset($protocol['name'])
+ || !isset($protocol['options'])
+ || !is_array($protocol['options'])
+ || !isset($protocol['options']['sharedSecret'])
) {
return new JSONResponse(
[
@@ -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,10 +339,11 @@ 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 ||
- $resourceType === null ||
- $providerId === null ||
- !is_array($notification)
+ if (
+ $notificationType === null
+ || $resourceType === null
+ || $providerId === null
+ || !is_array($notification)
) {
return new JSONResponse(
[
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/sw.js b/apps/comments/l10n/sw.js
new file mode 100644
index 00000000000..dbe931a3406
--- /dev/null
+++ b/apps/comments/l10n/sw.js
@@ -0,0 +1,36 @@
+OC.L10N.register(
+ "comments",
+ {
+ "Comments" : "Maoni",
+ "You commented" : "Ulitoa maoni",
+ "{author} commented" : "{author} alitoa maoni",
+ "You commented on %1$s" : "Ulitoa maoni katika %1$s",
+ "You commented on {file}" : "Ulitoa maoni katika {file}",
+ "%1$s commented on %2$s" : "%1$salitoa maoni katika %2$s",
+ "{author} commented on {file}" : "{author}alitoa maoni katika {file}",
+ "<strong>Comments</strong> for files" : "<strong>maoni</strong>kwa faili",
+ "Files" : "Mafaili",
+ "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Ulitajwa kwenye \"{file}\", kwenye maoni ya akaunti ambayo imefutwa",
+ "{user} mentioned you in a comment on \"{file}\"" : "{user}amekutaja katika maoni kwenye\"{file}\"",
+ "Files app plugin to add comments to files" : "Programu-jalizi ya Faili ili kuongeza maoni kwenye faili ",
+ "Edit comment" : "Hariri maoni",
+ "Delete comment" : "Futa maoni",
+ "Cancel edit" : "Sistisha uhariri",
+ "New comment" : "Maoni mapya",
+ "Write a comment …" : "Andika maoni...",
+ "Post comment" : "Tuma maoni",
+ "@ for mentions, : for emoji, / for smart picker" : "@ kwa mitajo, : kwa emoji, / kwa kichagua smart",
+ "Could not reload comments" : "Haikuweza kupakia maoni",
+ "Failed to mark comments as read" : "imeshindwa kuweka alama kwenye maoni kama yamesomwa",
+ "Unable to load the comments list" : "Haiwezi kupakia orodha ya maoni",
+ "No comments yet, start the conversation!" : "Bado hakuna maoni, anza mazungumzo",
+ "No more messages" : "Hakuna jumbe zaidi",
+ "Retry" : "Jaribu tene",
+ "_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread}maoni mapya "],
+ "Comment" : "Maoni",
+ "An error occurred while trying to edit the comment" : "Hitilafu ilitokea wakati wa kujaribu kuhariri maoni",
+ "Comment deleted" : "Maoni yamefutwa",
+ "An error occurred while trying to delete the comment" : "Hitilafu ilitokea wakati wa kujaribu kufuta maoni",
+ "An error occurred while trying to create the comment" : "Hitilafu ilitokea wakati wa kujaribu kuunda maoni"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/sw.json b/apps/comments/l10n/sw.json
new file mode 100644
index 00000000000..86dff80baf2
--- /dev/null
+++ b/apps/comments/l10n/sw.json
@@ -0,0 +1,34 @@
+{ "translations": {
+ "Comments" : "Maoni",
+ "You commented" : "Ulitoa maoni",
+ "{author} commented" : "{author} alitoa maoni",
+ "You commented on %1$s" : "Ulitoa maoni katika %1$s",
+ "You commented on {file}" : "Ulitoa maoni katika {file}",
+ "%1$s commented on %2$s" : "%1$salitoa maoni katika %2$s",
+ "{author} commented on {file}" : "{author}alitoa maoni katika {file}",
+ "<strong>Comments</strong> for files" : "<strong>maoni</strong>kwa faili",
+ "Files" : "Mafaili",
+ "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Ulitajwa kwenye \"{file}\", kwenye maoni ya akaunti ambayo imefutwa",
+ "{user} mentioned you in a comment on \"{file}\"" : "{user}amekutaja katika maoni kwenye\"{file}\"",
+ "Files app plugin to add comments to files" : "Programu-jalizi ya Faili ili kuongeza maoni kwenye faili ",
+ "Edit comment" : "Hariri maoni",
+ "Delete comment" : "Futa maoni",
+ "Cancel edit" : "Sistisha uhariri",
+ "New comment" : "Maoni mapya",
+ "Write a comment …" : "Andika maoni...",
+ "Post comment" : "Tuma maoni",
+ "@ for mentions, : for emoji, / for smart picker" : "@ kwa mitajo, : kwa emoji, / kwa kichagua smart",
+ "Could not reload comments" : "Haikuweza kupakia maoni",
+ "Failed to mark comments as read" : "imeshindwa kuweka alama kwenye maoni kama yamesomwa",
+ "Unable to load the comments list" : "Haiwezi kupakia orodha ya maoni",
+ "No comments yet, start the conversation!" : "Bado hakuna maoni, anza mazungumzo",
+ "No more messages" : "Hakuna jumbe zaidi",
+ "Retry" : "Jaribu tene",
+ "_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread}maoni mapya "],
+ "Comment" : "Maoni",
+ "An error occurred while trying to edit the comment" : "Hitilafu ilitokea wakati wa kujaribu kuhariri maoni",
+ "Comment deleted" : "Maoni yamefutwa",
+ "An error occurred while trying to delete the comment" : "Hitilafu ilitokea wakati wa kujaribu kufuta maoni",
+ "An error occurred while trying to create the comment" : "Hitilafu ilitokea wakati wa kujaribu kuunda maoni"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ 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/lib/Activity/Filter.php b/apps/comments/lib/Activity/Filter.php
index 6f010d855cb..8dcafd872d7 100644
--- a/apps/comments/lib/Activity/Filter.php
+++ b/apps/comments/lib/Activity/Filter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php
index 3dad875f80d..ee53357efdb 100644
--- a/apps/comments/lib/Activity/Provider.php
+++ b/apps/comments/lib/Activity/Provider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/Activity/Setting.php b/apps/comments/lib/Activity/Setting.php
index 9315aedc104..7fbf4001b20 100644
--- a/apps/comments/lib/Activity/Setting.php
+++ b/apps/comments/lib/Activity/Setting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/AppInfo/Application.php b/apps/comments/lib/AppInfo/Application.php
index f0a7b063c9a..db4a2ce614c 100644
--- a/apps/comments/lib/AppInfo/Application.php
+++ b/apps/comments/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/Collaboration/CommentersSorter.php b/apps/comments/lib/Collaboration/CommentersSorter.php
index 46fec87c777..baa27155573 100644
--- a/apps/comments/lib/Collaboration/CommentersSorter.php
+++ b/apps/comments/lib/Collaboration/CommentersSorter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/Controller/NotificationsController.php b/apps/comments/lib/Controller/NotificationsController.php
index 2dc94b2e663..0937b6929b8 100644
--- a/apps/comments/lib/Controller/NotificationsController.php
+++ b/apps/comments/lib/Controller/NotificationsController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/comments/lib/Search/Result.php b/apps/comments/lib/Search/Result.php
index 2f2c675c3c1..7478c110d63 100644
--- a/apps/comments/lib/Search/Result.php
+++ b/apps/comments/lib/Search/Result.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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..80f035530fb 100644
--- a/apps/comments/src/components/Comment.vue
+++ b/apps/comments/src/components/Comment.vue
@@ -26,7 +26,7 @@
<NcActionButton close-after-click
@click="onEdit">
<template #icon>
- <IconEdit :size="20" />
+ <IconPencilOutline :size="20" />
</template>
{{ t('comments', 'Edit comment') }}
</NcActionButton>
@@ -34,7 +34,7 @@
<NcActionButton close-after-click
@click="onDeleteWithUndo">
<template #icon>
- <IconDelete :size="20" />
+ <IconTrashCanOutline :size="20" />
</template>
{{ t('comments', 'Delete comment') }}
</NcActionButton>
@@ -115,8 +115,8 @@ import NcUserBubble from '@nextcloud/vue/components/NcUserBubble'
import IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'
import IconClose from 'vue-material-design-icons/Close.vue'
-import IconDelete from 'vue-material-design-icons/Delete.vue'
-import IconEdit from 'vue-material-design-icons/Pencil.vue'
+import IconTrashCanOutline from 'vue-material-design-icons/TrashCanOutline.vue'
+import IconPencilOutline from 'vue-material-design-icons/PencilOutline.vue'
import CommentMixin from '../mixins/CommentMixin.js'
import { mapStores } from 'pinia'
@@ -132,8 +132,8 @@ export default {
components: {
IconArrowRight,
IconClose,
- IconDelete,
- IconEdit,
+ IconTrashCanOutline,
+ IconPencilOutline,
NcActionButton,
NcActions,
NcActionSeparator,
@@ -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/src/views/Comments.vue b/apps/comments/src/views/Comments.vue
index b4128536123..657af888a12 100644
--- a/apps/comments/src/views/Comments.vue
+++ b/apps/comments/src/views/Comments.vue
@@ -22,7 +22,7 @@
class="comments__empty"
:name="t('comments', 'No comments yet, start the conversation!')">
<template #icon>
- <MessageReplyTextIcon />
+ <IconMessageReplyTextOutline />
</template>
</NcEmptyContent>
<ul v-else>
@@ -51,12 +51,12 @@
<template v-else-if="error">
<NcEmptyContent class="comments__error" :name="error">
<template #icon>
- <AlertCircleOutlineIcon />
+ <IconAlertCircleOutline />
</template>
</NcEmptyContent>
<NcButton class="comments__retry" @click="getComments">
<template #icon>
- <RefreshIcon />
+ <IconRefresh />
</template>
{{ t('comments', 'Retry') }}
</NcButton>
@@ -72,9 +72,9 @@ import { vElementVisibility as elementVisibility } from '@vueuse/components'
import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'
import NcButton from '@nextcloud/vue/components/NcButton'
-import RefreshIcon from 'vue-material-design-icons/Refresh.vue'
-import MessageReplyTextIcon from 'vue-material-design-icons/MessageReplyText.vue'
-import AlertCircleOutlineIcon from 'vue-material-design-icons/AlertCircleOutline.vue'
+import IconRefresh from 'vue-material-design-icons/Refresh.vue'
+import IconMessageReplyTextOutline from 'vue-material-design-icons/MessageReplyTextOutline.vue'
+import IconAlertCircleOutline from 'vue-material-design-icons/AlertCircleOutline.vue'
import Comment from '../components/Comment.vue'
import CommentView from '../mixins/CommentView'
@@ -89,9 +89,9 @@ export default {
Comment,
NcEmptyContent,
NcButton,
- RefreshIcon,
- MessageReplyTextIcon,
- AlertCircleOutlineIcon,
+ IconRefresh,
+ IconMessageReplyTextOutline,
+ IconAlertCircleOutline,
},
directives: {
diff --git a/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php b/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
index 525bf5e67c8..4d3392a562d 100644
--- a/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
+++ b/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -24,9 +25,9 @@ class CommentersSorterTest extends TestCase {
}
/**
- * @dataProvider sortDataProvider
* @param $data
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('sortDataProvider')]
public function testSort($data): void {
$commentMocks = [];
foreach ($data['actors'] as $actorType => $actors) {
@@ -60,32 +61,30 @@ class CommentersSorterTest extends TestCase {
#1 – sort properly and otherwise keep existing order
'actors' => ['users' => ['celia' => 3, 'darius' => 7, 'faruk' => 5, 'gail' => 5], 'bots' => ['r2-d2' => 8]],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'elena']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'elena']],
+ ],
'bots' => [
['value' => ['shareWith' => 'r2-d2']],
['value' => ['shareWith' => 'c-3po']],
@@ -96,32 +95,30 @@ class CommentersSorterTest extends TestCase {
#2 – no commentors, input equals output
'actors' => [],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
diff --git a/apps/comments/tests/Unit/Controller/NotificationsTest.php b/apps/comments/tests/Unit/Controller/NotificationsTest.php
index 59d0b9ccb00..04490ca63e8 100644
--- a/apps/comments/tests/Unit/Controller/NotificationsTest.php
+++ b/apps/comments/tests/Unit/Controller/NotificationsTest.php
@@ -138,7 +138,7 @@ class NotificationsTest extends TestCase {
$this->commentsManager->expects($this->any())
->method('get')
->with('42')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->rootFolder->expects($this->never())
->method('getUserFolder');
diff --git a/apps/comments/tests/Unit/EventHandlerTest.php b/apps/comments/tests/Unit/EventHandlerTest.php
index df2876e20a3..9d26f828d70 100644
--- a/apps/comments/tests/Unit/EventHandlerTest.php
+++ b/apps/comments/tests/Unit/EventHandlerTest.php
@@ -57,9 +57,7 @@ class EventHandlerTest extends TestCase {
];
}
- /**
- * @dataProvider handledProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('handledProvider')]
public function testHandled(string $eventType): void {
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
diff --git a/apps/comments/tests/Unit/Notification/ListenerTest.php b/apps/comments/tests/Unit/Notification/ListenerTest.php
index ae5a3c40bc6..356a26f23cd 100644
--- a/apps/comments/tests/Unit/Notification/ListenerTest.php
+++ b/apps/comments/tests/Unit/Notification/ListenerTest.php
@@ -45,10 +45,10 @@ class ListenerTest extends TestCase {
}
/**
- * @dataProvider eventProvider
* @param string $eventType
* @param string $notificationMethod
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('eventProvider')]
public function testEvaluate($eventType, $notificationMethod): void {
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
@@ -110,9 +110,7 @@ class ListenerTest extends TestCase {
$this->listener->evaluate($event);
}
- /**
- * @dataProvider eventProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('eventProvider')]
public function testEvaluateNoMentions(string $eventType): void {
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::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/l10n/sw.js b/apps/contactsinteraction/l10n/sw.js
new file mode 100644
index 00000000000..254fc00e757
--- /dev/null
+++ b/apps/contactsinteraction/l10n/sw.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "contactsinteraction",
+ {
+ "Recently contacted" : "Recently contacted",
+ "Contacts Interaction" : "Contacts Interaction",
+ "Manages interaction between accounts and contacts" : "Manages interaction between accounts and contacts",
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collect data about accounts and contacts interactions and provide an address book for the data"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/contactsinteraction/l10n/sw.json b/apps/contactsinteraction/l10n/sw.json
new file mode 100644
index 00000000000..660eac4583a
--- /dev/null
+++ b/apps/contactsinteraction/l10n/sw.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "Recently contacted" : "Recently contacted",
+ "Contacts Interaction" : "Contacts Interaction",
+ "Manages interaction between accounts and contacts" : "Manages interaction between accounts and contacts",
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collect data about accounts and contacts interactions and provide an address book for the data"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
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/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/sw.js b/apps/dashboard/l10n/sw.js
new file mode 100644
index 00000000000..91a3e892bc5
--- /dev/null
+++ b/apps/dashboard/l10n/sw.js
@@ -0,0 +1,28 @@
+OC.L10N.register(
+ "dashboard",
+ {
+ "Dashboard" : " Dashibodi",
+ "Dashboard app" : "Programu ya Dashibodi",
+ "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." : "Anza siku yako ukiwa na taarifa\n\nDashibodi ya Nextcloud ndiyo kianzio chako cha siku, ikikupa muhtasari wa miadi yako ijayo, barua pepe za dharura, ujumbe wa gumzo, tiketi zinazoingia, twiti za hivi punde na mengi zaidi! Watu wanaweza kuongeza wijeti wanazopenda na kubadilisha usuli kwa kupenda kwao.",
+ "Weather" : "Hali ya hewa",
+ "Status" : "Wadhifa",
+ "Good morning" : "Habari za asubuhi",
+ "Good morning, {name}" : "Habari za asubuhi, {name}",
+ "Good afternoon" : "Habari za mchana",
+ "Good afternoon, {name}" : "Habari za mchana, {name}",
+ "Good evening" : "Habari za jioni",
+ "Good evening, {name}" : "Habari za jioni, {name}",
+ "Hello" : "Hello",
+ "Hello, {name}" : "Hello, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "Heri ya siku ya kuzaliwa 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "Heri ya siku ya kuzaliwa, {name} 🥳🤩🎂🎉",
+ "Customize" : "Geuza kukufaa",
+ "Edit widgets" : "Hariri wijeti",
+ "Get more widgets from the App Store" : "Pata wijeti zaidi kutoka kwenye hifadhi ya Programu",
+ "Weather service" : "Huduma ya hali ya hewa",
+ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Kwa faragha yako, data ya hali ya hewa inaombwa na seva yako ya Nextcloud kwa niaba yako ili huduma ya hali ya hewa isipokee taarifa za kibinafsi.",
+ "Weather data from Met.no" : "Data za hali ya hewa kutoka Met.no",
+ "geocoding with Nominatim" : "geocoding na Nominatim",
+ "elevation data from OpenTopoData" : "data ya mwinuko kutoka OpenTopoData"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/dashboard/l10n/sw.json b/apps/dashboard/l10n/sw.json
new file mode 100644
index 00000000000..8d5ff9f98cb
--- /dev/null
+++ b/apps/dashboard/l10n/sw.json
@@ -0,0 +1,26 @@
+{ "translations": {
+ "Dashboard" : " Dashibodi",
+ "Dashboard app" : "Programu ya Dashibodi",
+ "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." : "Anza siku yako ukiwa na taarifa\n\nDashibodi ya Nextcloud ndiyo kianzio chako cha siku, ikikupa muhtasari wa miadi yako ijayo, barua pepe za dharura, ujumbe wa gumzo, tiketi zinazoingia, twiti za hivi punde na mengi zaidi! Watu wanaweza kuongeza wijeti wanazopenda na kubadilisha usuli kwa kupenda kwao.",
+ "Weather" : "Hali ya hewa",
+ "Status" : "Wadhifa",
+ "Good morning" : "Habari za asubuhi",
+ "Good morning, {name}" : "Habari za asubuhi, {name}",
+ "Good afternoon" : "Habari za mchana",
+ "Good afternoon, {name}" : "Habari za mchana, {name}",
+ "Good evening" : "Habari za jioni",
+ "Good evening, {name}" : "Habari za jioni, {name}",
+ "Hello" : "Hello",
+ "Hello, {name}" : "Hello, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "Heri ya siku ya kuzaliwa 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "Heri ya siku ya kuzaliwa, {name} 🥳🤩🎂🎉",
+ "Customize" : "Geuza kukufaa",
+ "Edit widgets" : "Hariri wijeti",
+ "Get more widgets from the App Store" : "Pata wijeti zaidi kutoka kwenye hifadhi ya Programu",
+ "Weather service" : "Huduma ya hali ya hewa",
+ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Kwa faragha yako, data ya hali ya hewa inaombwa na seva yako ya Nextcloud kwa niaba yako ili huduma ya hali ya hewa isipokee taarifa za kibinafsi.",
+ "Weather data from Met.no" : "Data za hali ya hewa kutoka Met.no",
+ "geocoding with Nominatim" : "geocoding na Nominatim",
+ "elevation data from OpenTopoData" : "data ya mwinuko kutoka OpenTopoData"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
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/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index e0f4608e8c2..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>
@@ -56,6 +57,7 @@
<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>
diff --git a/apps/dav/appinfo/routes.php b/apps/dav/appinfo/routes.php
index 67bfa44e995..dba7bcbbdf0 100644
--- a/apps/dav/appinfo/routes.php
+++ b/apps/dav/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -11,8 +12,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 aa16d6c584a..af49ca5462c 100644
--- a/apps/dav/appinfo/v1/publicwebdav.php
+++ b/apps/dav/appinfo/v1/publicwebdav.php
@@ -104,11 +104,9 @@ $server = $serverFactory->createServer(false, $baseuri, $requestUri, $authPlugin
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/v2/publicremote.php b/apps/dav/appinfo/v2/publicremote.php
index 62336a9b80f..e089fa7bb62 100644
--- a/apps/dav/appinfo/v2/publicremote.php
+++ b/apps/dav/appinfo/v2/publicremote.php
@@ -29,6 +29,7 @@ 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;
@@ -56,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);
@@ -131,11 +133,9 @@ $server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin,
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/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index 913f5b46d98..28dfeaed498 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -156,6 +156,7 @@ return array(
'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',
@@ -277,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',
@@ -316,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',
@@ -347,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',
@@ -362,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',
@@ -390,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 6369511343e..83661b73a30 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -171,6 +171,7 @@ class ComposerStaticInitDAV
'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',
@@ -292,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',
@@ -331,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',
@@ -362,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',
@@ -377,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',
@@ -405,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..ec86f1ce320 100644
--- a/apps/dav/l10n/cs.js
+++ b/apps/dav/l10n/cs.js
@@ -250,6 +250,7 @@ OC.L10N.register(
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
+ "Example event - open me!" : "Událost pro ukázku – otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
"Enable System Address Book" : "Zapnout systémový adresář kontaktů",
@@ -290,6 +291,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 +326,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..37407cceb6d 100644
--- a/apps/dav/l10n/cs.json
+++ b/apps/dav/l10n/cs.json
@@ -248,6 +248,7 @@
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
+ "Example event - open me!" : "Událost pro ukázku – otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
"Enable System Address Book" : "Zapnout systémový adresář kontaktů",
@@ -288,6 +289,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 +324,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 d6569cdc4f9..6cc5380d058 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 …",
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "Erledigt am %s",
"Due on %s by %s" : "Fällig am %s von %s",
"Due on %s" : "Fällig am %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Willkommen bei Nextcloud Calendar!\n\nDies ist ein Beispielereignis – entdecke die Flexibilität der Planung mit Nextcloud Calendar und nimm beliebige Änderungen vor!\n\nMit Nextcloud Calendar kannst du:\n– Ereignisse mühelos erstellen, bearbeiten und verwalten.\n– Mehrere Kalender erstellen und mit Teamkollegen, Freunden oder der Familie teilen.\n– Verfügbarkeit prüfen und Ihre Termine anderen anzeigen.\n– Nahtlose Integration mit Apps und Geräten über CalDAV.\n– Individuelle Gestaltung: Plane wiederkehrende Ereignisse, passe Benachrichtigungen und andere Einstellungen an.",
+ "Example event - open me!" : "Beispielereignis – öffne mich!",
"System Address Book" : "Systemadressbuch",
"The system address book contains contact information for all users in your instance." : "Das Systemadressbuch enthält Kontaktinformationen für alle Benutzer in dieser Instanz.",
"Enable System Address Book" : "Systemadressbuch aktivieren",
@@ -282,7 +284,7 @@ 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" : "Slot löschen",
"No working hours set" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Slot hinzufügen",
@@ -290,6 +292,25 @@ 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 angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
@@ -299,34 +320,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 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 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 e3a6f980ba1..5f48c4898a3 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 …",
@@ -248,6 +248,8 @@
"Completed on %s" : "Erledigt am %s",
"Due on %s by %s" : "Fällig am %s von %s",
"Due on %s" : "Fällig am %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Willkommen bei Nextcloud Calendar!\n\nDies ist ein Beispielereignis – entdecke die Flexibilität der Planung mit Nextcloud Calendar und nimm beliebige Änderungen vor!\n\nMit Nextcloud Calendar kannst du:\n– Ereignisse mühelos erstellen, bearbeiten und verwalten.\n– Mehrere Kalender erstellen und mit Teamkollegen, Freunden oder der Familie teilen.\n– Verfügbarkeit prüfen und Ihre Termine anderen anzeigen.\n– Nahtlose Integration mit Apps und Geräten über CalDAV.\n– Individuelle Gestaltung: Plane wiederkehrende Ereignisse, passe Benachrichtigungen und andere Einstellungen an.",
+ "Example event - open me!" : "Beispielereignis – öffne mich!",
"System Address Book" : "Systemadressbuch",
"The system address book contains contact information for all users in your instance." : "Das Systemadressbuch enthält Kontaktinformationen für alle Benutzer in dieser Instanz.",
"Enable System Address Book" : "Systemadressbuch aktivieren",
@@ -280,7 +282,7 @@
"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,6 +290,25 @@
"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 angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
@@ -297,34 +318,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 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 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 1072d8f9ff2..40030b8de84 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 …",
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "Erledigt am %s",
"Due on %s by %s" : "Fällig am %s von %s",
"Due on %s" : "Fällig am %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Willkommen bei Nextcloud Calendar!\n\nDies ist ein Beispielereignis – entdecken Sie die Flexibilität der Planung mit Nextcloud Calendar und nehmen Sie beliebige Änderungen vor!\n\nMit Nextcloud Calendar können Sie:\n– Ereignisse mühelos erstellen, bearbeiten und verwalten.\n– Mehrere Kalender erstellen und mit Teamkollegen, Freunden oder der Familie teilen.\n– Verfügbarkeit prüfen und Ihre Termine anderen anzeigen.\n– Nahtlose Integration mit Apps und Geräten über CalDAV.\n– Individuelle Gestaltung: Planen Sie wiederkehrende Ereignisse, passen Sie Benachrichtigungen und andere Einstellungen an.",
+ "Example event - open me!" : "Beispielereignis – öffne mich!",
"System Address Book" : "Systemadressbuch",
"The system address book contains contact information for all users in your instance." : "Das Systemadressbuch enthält Kontaktinformationen für alle Benutzer in dieser Instanz.",
"Enable System Address Book" : "Systemadressbuch aktivieren",
@@ -282,7 +284,7 @@ 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" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Zeitfenster hinzufügen",
@@ -290,6 +292,25 @@ 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." : "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.",
"Absence" : "Abwesenheit",
@@ -302,31 +323,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 721cee8c91a..3857d9be185 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 …",
@@ -248,6 +248,8 @@
"Completed on %s" : "Erledigt am %s",
"Due on %s by %s" : "Fällig am %s von %s",
"Due on %s" : "Fällig am %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Willkommen bei Nextcloud Calendar!\n\nDies ist ein Beispielereignis – entdecken Sie die Flexibilität der Planung mit Nextcloud Calendar und nehmen Sie beliebige Änderungen vor!\n\nMit Nextcloud Calendar können Sie:\n– Ereignisse mühelos erstellen, bearbeiten und verwalten.\n– Mehrere Kalender erstellen und mit Teamkollegen, Freunden oder der Familie teilen.\n– Verfügbarkeit prüfen und Ihre Termine anderen anzeigen.\n– Nahtlose Integration mit Apps und Geräten über CalDAV.\n– Individuelle Gestaltung: Planen Sie wiederkehrende Ereignisse, passen Sie Benachrichtigungen und andere Einstellungen an.",
+ "Example event - open me!" : "Beispielereignis – öffne mich!",
"System Address Book" : "Systemadressbuch",
"The system address book contains contact information for all users in your instance." : "Das Systemadressbuch enthält Kontaktinformationen für alle Benutzer in dieser Instanz.",
"Enable System Address Book" : "Systemadressbuch aktivieren",
@@ -280,7 +282,7 @@
"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" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Zeitfenster hinzufügen",
@@ -288,6 +290,25 @@
"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.",
"Absence" : "Abwesenheit",
@@ -300,31 +321,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..1ca2aaafee7 100644
--- a/apps/dav/l10n/en_GB.js
+++ b/apps/dav/l10n/en_GB.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "Completed on %s",
"Due on %s by %s" : "Due on %s by %s",
"Due on %s" : "Due on %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings.",
+ "Example event - open me!" : "Example event - open me!",
"System Address Book" : "System Address Book",
"The system address book contains contact information for all users in your instance." : "The system address book contains contact information for all users in your instance.",
"Enable System Address Book" : "Enable System Address Book",
@@ -290,6 +292,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 +327,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..5d2955e7995 100644
--- a/apps/dav/l10n/en_GB.json
+++ b/apps/dav/l10n/en_GB.json
@@ -248,6 +248,8 @@
"Completed on %s" : "Completed on %s",
"Due on %s by %s" : "Due on %s by %s",
"Due on %s" : "Due on %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings.",
+ "Example event - open me!" : "Example event - open me!",
"System Address Book" : "System Address Book",
"The system address book contains contact information for all users in your instance." : "The system address book contains contact information for all users in your instance.",
"Enable System Address Book" : "Enable System Address Book",
@@ -288,6 +290,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 +325,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 69f941b3daa..9935e3357df 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,6 +72,78 @@ 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",
@@ -85,6 +161,7 @@ OC.L10N.register(
"When:" : "Millal:",
"Location:" : "Asukoht:",
"Link:" : "Link:",
+ "Occurring:" : "Toimub:",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
"More options …" : "Täiendavad valikud…",
@@ -114,20 +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",
@@ -147,14 +250,19 @@ OC.L10N.register(
"Completed on %s" : "Lõpetatud %s",
"Due on %s by %s" : "Tähtaeg: %s, täitjaks %s",
"Due on %s" : "Tähtaeg: %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Tere tulemast Nextcloudi Kalendrisse!\n\nSee näidissündmus võimaldab sul tutvuda Nextcloudi Kalendri paindlikkusega oma aja plaanimisel - proovi teha igasuguseid muudatusi!\n\nNextcloudi Kalendriga saad sa:\n- vaevata luua, muuta ja hallata sündmusi,\n- koostada mitmeid kalendreid ning neid jagada tiimikaaslaste, sõprade ja perega,\n- kontrollida teiste vabu aega ja enda omi näidata teistele,\n- kasutada sujuvat CalDAV-i põhist lõimingut teiste rakenduste ja seadmetega,\n- kohendada kõike oma vajadustele: ajastades korduvaid sündmusi ning sättida teavitusi ja muid seadistusi.",
+ "Example event - open me!" : "Näidissündmus - klõpsi mind!",
"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",
@@ -181,15 +289,9 @@ OC.L10N.register(
"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.",
- "Availability" : "Saadavus",
- "Absence" : "Äraolek",
- "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
- "Calendar server" : "Kalendriserver",
- "Send invitations to attendees" : "Saada osalejatele kutsed",
- "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt",
- "Send notifications for events" : "Saada sündmuste teavitusi",
- "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"Cancel" : "Tühista",
"Import" : "Impordi",
"Error while saving settings" : "Viga seadistuste salvestamisel",
@@ -197,18 +299,40 @@ 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?",
+ "Failed to save example event creation setting" : "Näidissündmuse loomise seadistuste salvestamine ei õnnestunud",
+ "Failed to upload the example event" : "Näidissündmuse üleslaadimine ei õnnestunud",
+ "Custom example event was saved successfully" : "Kohandatud näidissündmuse salvestamine õnnestus",
+ "Failed to delete the custom example event" : "Kohandatud näidissündmuse kustutamine ei õnnestunud",
+ "Custom example event was deleted successfully" : "Kohandatud näidissündmuse kustutamine õnnestus",
+ "Import calendar event" : "Impordi kalendrisündmus",
+ "Uploading a new event will overwrite the existing one." : "Uue sündmuse üleslaadimisel asendatakse olemasolevad.",
+ "Upload event" : "Laadi sündmus üles",
+ "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",
+ "Example content" : "Sisunäidis",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sisunäidis annab ülevaate Nexctcloudi võimalustest. Vaikimisi sisu tuleb Nexctcloudi paigaldusega kaasa ja seda saab alati oma sisuga asendada.",
"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 2eed43d0c8f..3da2c28f3d9 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,6 +70,78 @@
"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",
@@ -83,6 +159,7 @@
"When:" : "Millal:",
"Location:" : "Asukoht:",
"Link:" : "Link:",
+ "Occurring:" : "Toimub:",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
"More options …" : "Täiendavad valikud…",
@@ -112,20 +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",
@@ -145,14 +248,19 @@
"Completed on %s" : "Lõpetatud %s",
"Due on %s by %s" : "Tähtaeg: %s, täitjaks %s",
"Due on %s" : "Tähtaeg: %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Tere tulemast Nextcloudi Kalendrisse!\n\nSee näidissündmus võimaldab sul tutvuda Nextcloudi Kalendri paindlikkusega oma aja plaanimisel - proovi teha igasuguseid muudatusi!\n\nNextcloudi Kalendriga saad sa:\n- vaevata luua, muuta ja hallata sündmusi,\n- koostada mitmeid kalendreid ning neid jagada tiimikaaslaste, sõprade ja perega,\n- kontrollida teiste vabu aega ja enda omi näidata teistele,\n- kasutada sujuvat CalDAV-i põhist lõimingut teiste rakenduste ja seadmetega,\n- kohendada kõike oma vajadustele: ajastades korduvaid sündmusi ning sättida teavitusi ja muid seadistusi.",
+ "Example event - open me!" : "Näidissündmus - klõpsi mind!",
"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",
@@ -179,15 +287,9 @@
"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.",
- "Availability" : "Saadavus",
- "Absence" : "Äraolek",
- "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
- "Calendar server" : "Kalendriserver",
- "Send invitations to attendees" : "Saada osalejatele kutsed",
- "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt",
- "Send notifications for events" : "Saada sündmuste teavitusi",
- "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"Cancel" : "Tühista",
"Import" : "Impordi",
"Error while saving settings" : "Viga seadistuste salvestamisel",
@@ -195,18 +297,40 @@
"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?",
+ "Failed to save example event creation setting" : "Näidissündmuse loomise seadistuste salvestamine ei õnnestunud",
+ "Failed to upload the example event" : "Näidissündmuse üleslaadimine ei õnnestunud",
+ "Custom example event was saved successfully" : "Kohandatud näidissündmuse salvestamine õnnestus",
+ "Failed to delete the custom example event" : "Kohandatud näidissündmuse kustutamine ei õnnestunud",
+ "Custom example event was deleted successfully" : "Kohandatud näidissündmuse kustutamine õnnestus",
+ "Import calendar event" : "Impordi kalendrisündmus",
+ "Uploading a new event will overwrite the existing one." : "Uue sündmuse üleslaadimisel asendatakse olemasolevad.",
+ "Upload event" : "Laadi sündmus üles",
+ "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",
+ "Example content" : "Sisunäidis",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sisunäidis annab ülevaate Nexctcloudi võimalustest. Vaikimisi sisu tuleb Nexctcloudi paigaldusega kaasa ja seda saab alati oma sisuga asendada.",
"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..9a2980ff4de 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,10 @@ 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",
+ "Example event - open me!" : "Exemple d'événement - ouvrez-moi !",
+ "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 +291,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 +326,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..bdedf869268 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,10 @@
"Completed on %s" : "Terminé le %s",
"Due on %s by %s" : "Echéance le %s pour %s",
"Due on %s" : "Echéance le %s",
+ "Example event - open me!" : "Exemple d'événement - ouvrez-moi !",
+ "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 +289,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 +324,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..011e809501a 100644
--- a/apps/dav/l10n/ga.js
+++ b/apps/dav/l10n/ga.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "Críochnaithe ar %s",
"Due on %s by %s" : "Dlite ar %s faoi %s",
"Due on %s" : "Dlite ar %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Fáilte go Féilire Nextcloud!\n\nSeo sampla imeachta - déan iniúchadh ar sholúbthacht na pleanála le Féilire Nextcloud trí aon eagarthóireacht is mian leat a dhéanamh!\n\nLe Féilire Nextcloud, is féidir leat:\n- Imeachtaí a chruthú, a chur in eagar agus a bhainistiú gan stró.\n- Ilfhéilirí a chruthú agus iad a roinnt le comhghleacaithe foirne, cairde nó teaghlach.\n- Infhaighteacht a sheiceáil agus do chuid amanna gnóthacha a thaispeáint do dhaoine eile.\n- Comhtháthú gan uaim le haipeanna agus gléasanna trí CalDAV.\n- Do thaithí a shaincheapadh: imeachtaí athfhillteacha a sceidealú, fógraí agus socruithe eile a choigeartú.",
+ "Example event - open me!" : "Imeacht shamplach - oscail mé!",
"System Address Book" : "Leabhar Seoltaí Córais",
"The system address book contains contact information for all users in your instance." : "Tá faisnéis teagmhála i leabhar seoltaí an chórais do gach úsáideoir i do chás.",
"Enable System Address Book" : "Cumasaigh Leabhar Seoltaí an Chórais",
@@ -290,6 +292,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 +327,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..0436a274efa 100644
--- a/apps/dav/l10n/ga.json
+++ b/apps/dav/l10n/ga.json
@@ -248,6 +248,8 @@
"Completed on %s" : "Críochnaithe ar %s",
"Due on %s by %s" : "Dlite ar %s faoi %s",
"Due on %s" : "Dlite ar %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Fáilte go Féilire Nextcloud!\n\nSeo sampla imeachta - déan iniúchadh ar sholúbthacht na pleanála le Féilire Nextcloud trí aon eagarthóireacht is mian leat a dhéanamh!\n\nLe Féilire Nextcloud, is féidir leat:\n- Imeachtaí a chruthú, a chur in eagar agus a bhainistiú gan stró.\n- Ilfhéilirí a chruthú agus iad a roinnt le comhghleacaithe foirne, cairde nó teaghlach.\n- Infhaighteacht a sheiceáil agus do chuid amanna gnóthacha a thaispeáint do dhaoine eile.\n- Comhtháthú gan uaim le haipeanna agus gléasanna trí CalDAV.\n- Do thaithí a shaincheapadh: imeachtaí athfhillteacha a sceidealú, fógraí agus socruithe eile a choigeartú.",
+ "Example event - open me!" : "Imeacht shamplach - oscail mé!",
"System Address Book" : "Leabhar Seoltaí Córais",
"The system address book contains contact information for all users in your instance." : "Tá faisnéis teagmhála i leabhar seoltaí an chórais do gach úsáideoir i do chás.",
"Enable System Address Book" : "Cumasaigh Leabhar Seoltaí an Chórais",
@@ -288,6 +290,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 +325,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..2efce569bb8 100644
--- a/apps/dav/l10n/ja.js
+++ b/apps/dav/l10n/ja.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "%sに完了",
"Due on %s by %s" : "期限日%s が%sにより設定",
"Due on %s" : "期限日:%s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Nextcloudカレンダーへようこそ!\n\nNextcloudカレンダーの柔軟なプランニングをお試しください!\n\nNextcloudカレンダーなら、こんなことができます:\n- イベントを簡単に作成、編集、管理できます。\n- 複数のカレンダーを作成し、チームメイトや友人、家族と共有できます。\n- 空き時間を確認し、忙しい時間を他の人に表示する。\n- CalDAV経由でアプリやデバイスとシームレスに統合。\n- 定期的なイベントのスケジュール、通知やその他の設定など、エクスペリエンスをカスタマイズできます。",
+ "Example event - open me!" : "イベント例 - 開いてください!",
"System Address Book" : "システム連絡先リスト",
"The system address book contains contact information for all users in your instance." : "システムのアドレス帳には、インスタンスのすべてのユーザーの連絡先情報が含まれています。",
"Enable System Address Book" : "システム連絡先リストを有効にする",
@@ -290,6 +292,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 +327,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/ja.json b/apps/dav/l10n/ja.json
index 63d3df52c36..737b71f4180 100644
--- a/apps/dav/l10n/ja.json
+++ b/apps/dav/l10n/ja.json
@@ -248,6 +248,8 @@
"Completed on %s" : "%sに完了",
"Due on %s by %s" : "期限日%s が%sにより設定",
"Due on %s" : "期限日:%s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Nextcloudカレンダーへようこそ!\n\nNextcloudカレンダーの柔軟なプランニングをお試しください!\n\nNextcloudカレンダーなら、こんなことができます:\n- イベントを簡単に作成、編集、管理できます。\n- 複数のカレンダーを作成し、チームメイトや友人、家族と共有できます。\n- 空き時間を確認し、忙しい時間を他の人に表示する。\n- CalDAV経由でアプリやデバイスとシームレスに統合。\n- 定期的なイベントのスケジュール、通知やその他の設定など、エクスペリエンスをカスタマイズできます。",
+ "Example event - open me!" : "イベント例 - 開いてください!",
"System Address Book" : "システム連絡先リスト",
"The system address book contains contact information for all users in your instance." : "システムのアドレス帳には、インスタンスのすべてのユーザーの連絡先情報が含まれています。",
"Enable System Address Book" : "システム連絡先リストを有効にする",
@@ -288,6 +290,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 +325,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/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..91375ce0304 100644
--- a/apps/dav/l10n/pl.js
+++ b/apps/dav/l10n/pl.js
@@ -72,9 +72,25 @@ 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ń",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutę, dnia %1$s przez cały dzień","Za %nminuty, dnia %1$s, przez cały dzień","Za %nminut, dnia %1$s, przez cały dzień","Za %nminut, dnia %1$s, przez cały dzień"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za godzinę, dnia %1$s, przez cały dzień","Za %n godziny, dnia %1$s, przez cały dzień","Za %n godzin, dnia %1$s, przez cały dzień","Za %n godzin, dnia %1$s, przez cały dzień"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za jeden dzień, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za tydzień, dnia %1$s, przez cały dzień","Za %n tygodnie, dnia %1$s, przez cały dzień","Za %n tygodni, dnia %1$s, przez cały dzień","Za %n tygodni, dnia %1$s, przez 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ń",
+ "Every Day for the entire day until %1$s" : "Codziennie przez cały dzień do %1$s",
+ "Every Day between %1$s - %2$s" : "Codziennie między %1$s – %2$s",
"Could not generate event recurrence statement" : "Nie można wygenerować zestawienia powtórzeń zdarzenia",
+ "In the past on %1$s" : "W przeszłości dnia %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutę dnia %2$s","Za %1$n minuty dnia %2$s","Za %1$n minut dnia %2$s","Za %1$n minut dnia %2$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za godzinę dnia %2$s","Za %1$n godziny dnia %2$s","Za %1$n godzin dnia %2$s","Za %1$n godzin dnia %2$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Za dzień, dnia %2$s","Za %1$n dni dnia %2$s","Za %1$n dni dnia %2$s","Za %1$n dni dnia %2$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za tydzień dnia %2$s","Za %1$n tygodnie dnia %2$s","Za %1$n tygodni dnia %2$s","Za %1$n tygodni dnia %2$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Za miesiąc dnia %2$s","W ciągu %1$n miesięcy dnia %2$s","W ciągu %1$n miesięcy dnia %2$s","W ciągu %1$n miesięcy dnia %2$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok dnia %2$s","Za %1$n lata dnia %2$s","Za %1$n lat dnia %2$s","Za %1$n lat dnia %2$s"],
+ "In the past on %1$s then on %2$s" : "W przeszłości dnia %1$s, a następnie %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutę dnia %2$s, a następnie %3$s","Za %1$n minuty dnia %2$s, a następnie %3$s","Za %1$n minut dnia %2$s, a następnie %3$s","Za %1$n minut dnia %2$s, a następnie %3$s"],
"Could not generate next recurrence statement" : "Nie można wygenerować następnej instrukcji powtarzania",
"Cancelled: %1$s" : "Anulowane: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" zostało anulowane",
@@ -121,10 +137,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}",
@@ -162,6 +180,8 @@ OC.L10N.register(
"Could not rename part file to final file, canceled by hook" : "Nie można zmienić nazwy pliku podzielonego na plik końcowy, anulowane przez hook",
"Could not rename part file to final file" : "Nie można zmienić nazwy pliku podzielonego na plik końcowy",
"Failed to check file size: %1$s" : "Nie udało się sprawdzić rozmiaru pliku: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "Nie można otworzyć: %1$s, wygląda na to, że plik istnieje",
+ "Could not open file: %1$s, file doesn't seem to exist" : "Nie można otworzyć: %1$s, wygląda na to, że plik nie istnieje",
"Encryption not ready: %1$s" : "Szyfrowanie nie jest gotowe: %1$s",
"Failed to open file: %1$s" : "Nie udało się otworzyć pliku: %1$s",
"Failed to unlink: %1$s" : "Nie udało się odłączyć: %1$s",
@@ -178,6 +198,11 @@ 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",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Witamy w Kalendarzu Nextcloud!\n\nTo przykładowe wydarzenie – poznaj elastyczność planowania z Kalendarzem Nextcloud, edytując je dowolnie!\n\nZ Kalendarzem Nextcloud możesz:\n– Tworzyć, edytować i zarządzać wydarzeniami z łatwością.\n– Tworzyć wiele kalendarzy i udostępniać je współpracownikom, znajomym lub rodzinie.\n– Sprawdzać dostępność i pokazywać innym, kiedy jesteś zajęty.\n– Łatwo integrować się z aplikacjami i urządzeniami przez CalDAV.\n– Dostosować wszystko do siebie: ustawiać wydarzenia cykliczne, powiadomienia i inne opcje.",
+ "Example event - open me!" : "Przykładowe wydarzenie – kliknij, aby otworzyć!",
+ "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 +240,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 +275,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..229a24cbbe1 100644
--- a/apps/dav/l10n/pl.json
+++ b/apps/dav/l10n/pl.json
@@ -70,9 +70,25 @@
"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ń",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutę, dnia %1$s przez cały dzień","Za %nminuty, dnia %1$s, przez cały dzień","Za %nminut, dnia %1$s, przez cały dzień","Za %nminut, dnia %1$s, przez cały dzień"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za godzinę, dnia %1$s, przez cały dzień","Za %n godziny, dnia %1$s, przez cały dzień","Za %n godzin, dnia %1$s, przez cały dzień","Za %n godzin, dnia %1$s, przez cały dzień"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za jeden dzień, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień","Za %n dni, dnia %1$s, przez cały dzień"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za tydzień, dnia %1$s, przez cały dzień","Za %n tygodnie, dnia %1$s, przez cały dzień","Za %n tygodni, dnia %1$s, przez cały dzień","Za %n tygodni, dnia %1$s, przez 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ń",
+ "Every Day for the entire day until %1$s" : "Codziennie przez cały dzień do %1$s",
+ "Every Day between %1$s - %2$s" : "Codziennie między %1$s – %2$s",
"Could not generate event recurrence statement" : "Nie można wygenerować zestawienia powtórzeń zdarzenia",
+ "In the past on %1$s" : "W przeszłości dnia %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Za minutę dnia %2$s","Za %1$n minuty dnia %2$s","Za %1$n minut dnia %2$s","Za %1$n minut dnia %2$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Za godzinę dnia %2$s","Za %1$n godziny dnia %2$s","Za %1$n godzin dnia %2$s","Za %1$n godzin dnia %2$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Za dzień, dnia %2$s","Za %1$n dni dnia %2$s","Za %1$n dni dnia %2$s","Za %1$n dni dnia %2$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Za tydzień dnia %2$s","Za %1$n tygodnie dnia %2$s","Za %1$n tygodni dnia %2$s","Za %1$n tygodni dnia %2$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Za miesiąc dnia %2$s","W ciągu %1$n miesięcy dnia %2$s","W ciągu %1$n miesięcy dnia %2$s","W ciągu %1$n miesięcy dnia %2$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Za rok dnia %2$s","Za %1$n lata dnia %2$s","Za %1$n lat dnia %2$s","Za %1$n lat dnia %2$s"],
+ "In the past on %1$s then on %2$s" : "W przeszłości dnia %1$s, a następnie %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Za minutę dnia %2$s, a następnie %3$s","Za %1$n minuty dnia %2$s, a następnie %3$s","Za %1$n minut dnia %2$s, a następnie %3$s","Za %1$n minut dnia %2$s, a następnie %3$s"],
"Could not generate next recurrence statement" : "Nie można wygenerować następnej instrukcji powtarzania",
"Cancelled: %1$s" : "Anulowane: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" zostało anulowane",
@@ -119,10 +135,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}",
@@ -160,6 +178,8 @@
"Could not rename part file to final file, canceled by hook" : "Nie można zmienić nazwy pliku podzielonego na plik końcowy, anulowane przez hook",
"Could not rename part file to final file" : "Nie można zmienić nazwy pliku podzielonego na plik końcowy",
"Failed to check file size: %1$s" : "Nie udało się sprawdzić rozmiaru pliku: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "Nie można otworzyć: %1$s, wygląda na to, że plik istnieje",
+ "Could not open file: %1$s, file doesn't seem to exist" : "Nie można otworzyć: %1$s, wygląda na to, że plik nie istnieje",
"Encryption not ready: %1$s" : "Szyfrowanie nie jest gotowe: %1$s",
"Failed to open file: %1$s" : "Nie udało się otworzyć pliku: %1$s",
"Failed to unlink: %1$s" : "Nie udało się odłączyć: %1$s",
@@ -176,6 +196,11 @@
"Completed on %s" : "Ukończono %s",
"Due on %s by %s" : "Na dzień %s w %s",
"Due on %s" : "Na dzień %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Witamy w Kalendarzu Nextcloud!\n\nTo przykładowe wydarzenie – poznaj elastyczność planowania z Kalendarzem Nextcloud, edytując je dowolnie!\n\nZ Kalendarzem Nextcloud możesz:\n– Tworzyć, edytować i zarządzać wydarzeniami z łatwością.\n– Tworzyć wiele kalendarzy i udostępniać je współpracownikom, znajomym lub rodzinie.\n– Sprawdzać dostępność i pokazywać innym, kiedy jesteś zajęty.\n– Łatwo integrować się z aplikacjami i urządzeniami przez CalDAV.\n– Dostosować wszystko do siebie: ustawiać wydarzenia cykliczne, powiadomienia i inne opcje.",
+ "Example event - open me!" : "Przykładowe wydarzenie – kliknij, aby otworzyć!",
+ "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 +238,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 +273,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..f5137be55f4 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}",
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "Concluída em %s",
"Due on %s by %s" : "Vence em %s até %s",
"Due on %s" : "Vence em %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Bem-vindo ao Nextcloud Calendário!\n\nEste é um exemplo de evento - explore a flexibilidade do planejamento com o Nextcloud Calendário fazendo as edições que desejar!\n\nCom o Nextcloud Calendário, você pode:\n- Criar, editar e gerenciar eventos sem esforço.\n- Criar vários calendários e compartilhá-los com colegas de equipe, amigos ou familiares.\n- Verificar a disponibilidade e exibir seus horários de trabalho para outras pessoas.\n- Integrá-lo perfeitamente com aplicativos e dispositivos via CalDAV.\n- Personalizar sua experiência: agende eventos recorrentes, ajuste as notificações e outras configurações.",
+ "Example event - open me!" : "Exemplo de evento - abra-me!",
"System Address Book" : "Catálogo de Endereços do Sistema",
"The system address book contains contact information for all users in your instance." : "O catálogo de endereços do sistema contém informações de contato de todos os usuários da sua instância.",
"Enable System Address Book" : "Ativar Catálogo de Endereços do Sistema",
@@ -290,6 +292,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 +327,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..eea6f77d6ba 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}",
@@ -248,6 +248,8 @@
"Completed on %s" : "Concluída em %s",
"Due on %s by %s" : "Vence em %s até %s",
"Due on %s" : "Vence em %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Bem-vindo ao Nextcloud Calendário!\n\nEste é um exemplo de evento - explore a flexibilidade do planejamento com o Nextcloud Calendário fazendo as edições que desejar!\n\nCom o Nextcloud Calendário, você pode:\n- Criar, editar e gerenciar eventos sem esforço.\n- Criar vários calendários e compartilhá-los com colegas de equipe, amigos ou familiares.\n- Verificar a disponibilidade e exibir seus horários de trabalho para outras pessoas.\n- Integrá-lo perfeitamente com aplicativos e dispositivos via CalDAV.\n- Personalizar sua experiência: agende eventos recorrentes, ajuste as notificações e outras configurações.",
+ "Example event - open me!" : "Exemplo de evento - abra-me!",
"System Address Book" : "Catálogo de Endereços do Sistema",
"The system address book contains contact information for all users in your instance." : "O catálogo de endereços do sistema contém informações de contato de todos os usuários da sua instância.",
"Enable System Address Book" : "Ativar Catálogo de Endereços do Sistema",
@@ -288,6 +290,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 +325,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..62597fdf138 100644
--- a/apps/dav/l10n/sv.js
+++ b/apps/dav/l10n/sv.js
@@ -250,6 +250,7 @@ OC.L10N.register(
"Completed on %s" : "Slutförd %s",
"Due on %s by %s" : "Slutar den %s vid %s",
"Due on %s" : "Slutar den %s",
+ "Example event - open me!" : "Exempelhändelse – öppna mig!",
"System Address Book" : "Systemadressbok",
"The system address book contains contact information for all users in your instance." : "Systemadressboken innehåller kontaktinformation för alla användare i din instans.",
"Enable System Address Book" : "Aktivera systemadressboken",
@@ -290,6 +291,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 +326,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..5346062715e 100644
--- a/apps/dav/l10n/sv.json
+++ b/apps/dav/l10n/sv.json
@@ -248,6 +248,7 @@
"Completed on %s" : "Slutförd %s",
"Due on %s by %s" : "Slutar den %s vid %s",
"Due on %s" : "Slutar den %s",
+ "Example event - open me!" : "Exempelhändelse – öppna mig!",
"System Address Book" : "Systemadressbok",
"The system address book contains contact information for all users in your instance." : "Systemadressboken innehåller kontaktinformation för alla användare i din instans.",
"Enable System Address Book" : "Aktivera systemadressboken",
@@ -288,6 +289,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 +324,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..9d1ed13b4f9 100644
--- a/apps/dav/l10n/tr.js
+++ b/apps/dav/l10n/tr.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "%s tarihinde tamamlandı",
"Due on %s by %s" : "%s tarihine kadar %s tarafından",
"Due on %s" : "%s tarihine kadar",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Nextcloud Takvim uygulamasına hoş geldiniz!\n\nBu bir örnek etkinliktir. İstediğiniz düzenlemeleri yaparak Nextcloud Takvim ile planlamanın esnekliğini keşfedin!\n\nNextcloud Takvim ile şunları yapabilirsiniz:\n- Etkinlikleri kolayca oluşturabilir, düzenleyebilir ve yönetebilirsiniz.\n- Birden fazla takvim oluşturabilir ve bunları takım arkadaşlarınız, arkadaşlarınız veya ailenizle paylaşabilirsiniz.\n- Uygunluğunuzu kontrol edebilir ve yoğun zamanlarınızı başkalarına gösterebilirsiniz.\n- CalDAV aracılığıyla uygulamaları ve aygıtları sorunsuz bir şekilde bütünleştirebilirsiniz.\n- Deneyiminizi özelleştirebilirsiniz: Yinelenen etkinlikler planlayabilir, bildirimleri ve diğer ayarları ayarlayabilirsiniz.",
+ "Example event - open me!" : "Örnek etkinlik. Beni aç!",
"System Address Book" : "Sistem adres defteri",
"The system address book contains contact information for all users in your instance." : "Sistem adres defterinde, kopyanızdaki tüm kullanıcıların iletişim bilgileri bulunur.",
"Enable System Address Book" : "Sistem adres defteri kullanılsın",
@@ -290,6 +292,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 +320,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..31d00ec53eb 100644
--- a/apps/dav/l10n/tr.json
+++ b/apps/dav/l10n/tr.json
@@ -248,6 +248,8 @@
"Completed on %s" : "%s tarihinde tamamlandı",
"Due on %s by %s" : "%s tarihine kadar %s tarafından",
"Due on %s" : "%s tarihine kadar",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Nextcloud Takvim uygulamasına hoş geldiniz!\n\nBu bir örnek etkinliktir. İstediğiniz düzenlemeleri yaparak Nextcloud Takvim ile planlamanın esnekliğini keşfedin!\n\nNextcloud Takvim ile şunları yapabilirsiniz:\n- Etkinlikleri kolayca oluşturabilir, düzenleyebilir ve yönetebilirsiniz.\n- Birden fazla takvim oluşturabilir ve bunları takım arkadaşlarınız, arkadaşlarınız veya ailenizle paylaşabilirsiniz.\n- Uygunluğunuzu kontrol edebilir ve yoğun zamanlarınızı başkalarına gösterebilirsiniz.\n- CalDAV aracılığıyla uygulamaları ve aygıtları sorunsuz bir şekilde bütünleştirebilirsiniz.\n- Deneyiminizi özelleştirebilirsiniz: Yinelenen etkinlikler planlayabilir, bildirimleri ve diğer ayarları ayarlayabilirsiniz.",
+ "Example event - open me!" : "Örnek etkinlik. Beni aç!",
"System Address Book" : "Sistem adres defteri",
"The system address book contains contact information for all users in your instance." : "Sistem adres defterinde, kopyanızdaki tüm kullanıcıların iletişim bilgileri bulunur.",
"Enable System Address Book" : "Sistem adres defteri kullanılsın",
@@ -288,6 +290,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 +318,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..e126212636c 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:" : "地区:",
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "已完成 %s",
"Due on %s by %s" : "到期于 %s,在 %s 之前",
"Due on %s" : "到期于 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "欢迎使用 Nextcloud 日历!\n\n这是一个示例事件——探索使用 Nextcloud 日历进行规划的灵活性,进行任何您想要的编辑!\n\n使用 Nextcloud 日历,您可以:\n- 轻松创建、编辑和管理事件。\n- 创建多个日历并与队友、朋友或家人共享。\n- 查看空闲时间并向他人显示您的忙碌时间。\n- 通过 CalDAV 与应用和设备无缝集成。\n- 自定义您的体验:安排重复事件、调整通知和其他设置。",
+ "Example event - open me!" : "示例事件——打开我!",
"System Address Book" : "系统通讯录",
"The system address book contains contact information for all users in your instance." : "系统通讯录包含实例中所有用户的联系人信息。",
"Enable System Address Book" : "启用系统通讯录",
@@ -261,7 +263,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 +292,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 +318,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..03ca61d40ab 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:" : "地区:",
@@ -248,6 +248,8 @@
"Completed on %s" : "已完成 %s",
"Due on %s by %s" : "到期于 %s,在 %s 之前",
"Due on %s" : "到期于 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "欢迎使用 Nextcloud 日历!\n\n这是一个示例事件——探索使用 Nextcloud 日历进行规划的灵活性,进行任何您想要的编辑!\n\n使用 Nextcloud 日历,您可以:\n- 轻松创建、编辑和管理事件。\n- 创建多个日历并与队友、朋友或家人共享。\n- 查看空闲时间并向他人显示您的忙碌时间。\n- 通过 CalDAV 与应用和设备无缝集成。\n- 自定义您的体验:安排重复事件、调整通知和其他设置。",
+ "Example event - open me!" : "示例事件——打开我!",
"System Address Book" : "系统通讯录",
"The system address book contains contact information for all users in your instance." : "系统通讯录包含实例中所有用户的联系人信息。",
"Enable System Address Book" : "启用系统通讯录",
@@ -259,7 +261,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 +290,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 +316,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..2f93aacd742 100644
--- a/apps/dav/l10n/zh_HK.js
+++ b/apps/dav/l10n/zh_HK.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "完成於 %s",
"Due on %s by %s" : "完成日期為 %s %s",
"Due on %s" : "完成日期 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "歡迎使用 Nextcloud 日曆!\n\n這是範例事件 - 使用 Nextcloud 日曆進行任何編輯,探索規劃的彈性!\n\n使用 Nextcloud 日曆,您可以:\n- 毫不費力地建立、編輯與管理活動。\n- 建立多個日曆,並與同事、朋友或家人分享。\n- 檢查可得性,並向他人顯示您的忙碌時間。\n- 透過 CalDAV 與應用程式與裝置無縫整合。\n- 自訂您的體驗:排定定期活動、調整通知與其他設定。",
+ "Example event - open me!" : "範例活動 - 打開我!",
"System Address Book" : "系統通訊錄",
"The system address book contains contact information for all users in your instance." : "系統通訊錄包含您實例中的所有聯絡人資訊。",
"Enable System Address Book" : "啟用系統通訊錄",
@@ -290,6 +292,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 +327,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..c02aff5c85f 100644
--- a/apps/dav/l10n/zh_HK.json
+++ b/apps/dav/l10n/zh_HK.json
@@ -248,6 +248,8 @@
"Completed on %s" : "完成於 %s",
"Due on %s by %s" : "完成日期為 %s %s",
"Due on %s" : "完成日期 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "歡迎使用 Nextcloud 日曆!\n\n這是範例事件 - 使用 Nextcloud 日曆進行任何編輯,探索規劃的彈性!\n\n使用 Nextcloud 日曆,您可以:\n- 毫不費力地建立、編輯與管理活動。\n- 建立多個日曆,並與同事、朋友或家人分享。\n- 檢查可得性,並向他人顯示您的忙碌時間。\n- 透過 CalDAV 與應用程式與裝置無縫整合。\n- 自訂您的體驗:排定定期活動、調整通知與其他設定。",
+ "Example event - open me!" : "範例活動 - 打開我!",
"System Address Book" : "系統通訊錄",
"The system address book contains contact information for all users in your instance." : "系統通訊錄包含您實例中的所有聯絡人資訊。",
"Enable System Address Book" : "啟用系統通訊錄",
@@ -288,6 +290,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 +325,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..56784c958bd 100644
--- a/apps/dav/l10n/zh_TW.js
+++ b/apps/dav/l10n/zh_TW.js
@@ -250,6 +250,8 @@ OC.L10N.register(
"Completed on %s" : "完成於 %s",
"Due on %s by %s" : "到期於 %s 由 %s",
"Due on %s" : "到期於 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "歡迎使用 Nextcloud 日曆!\n\n這是範例事件 - 使用 Nextcloud 日曆進行任何編輯,探索規劃的彈性!\n\n使用 Nextcloud 日曆,您可以:\n- 毫不費力地建立、編輯與管理活動。\n- 建立多個日曆,並與同事、朋友或家人分享。\n- 檢查可得性,並向他人顯示您的忙碌時間。\n- 透過 CalDAV 與應用程式與裝置無縫整合。\n- 自訂您的體驗:排定定期活動、調整通知與其他設定。",
+ "Example event - open me!" : "範例活動 - 開啟我!",
"System Address Book" : "系統通訊錄",
"The system address book contains contact information for all users in your instance." : "系統通訊錄包含您站台中的所有聯絡人資訊。",
"Enable System Address Book" : "啟用系統通訊錄",
@@ -290,6 +292,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 +327,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..bfd58f4a453 100644
--- a/apps/dav/l10n/zh_TW.json
+++ b/apps/dav/l10n/zh_TW.json
@@ -248,6 +248,8 @@
"Completed on %s" : "完成於 %s",
"Due on %s by %s" : "到期於 %s 由 %s",
"Due on %s" : "到期於 %s",
+ "Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "歡迎使用 Nextcloud 日曆!\n\n這是範例事件 - 使用 Nextcloud 日曆進行任何編輯,探索規劃的彈性!\n\n使用 Nextcloud 日曆,您可以:\n- 毫不費力地建立、編輯與管理活動。\n- 建立多個日曆,並與同事、朋友或家人分享。\n- 檢查可得性,並向他人顯示您的忙碌時間。\n- 透過 CalDAV 與應用程式與裝置無縫整合。\n- 自訂您的體驗:排定定期活動、調整通知與其他設定。",
+ "Example event - open me!" : "範例活動 - 開啟我!",
"System Address Book" : "系統通訊錄",
"The system address book contains contact information for all users in your instance." : "系統通訊錄包含您站台中的所有聯絡人資訊。",
"Enable System Address Book" : "啟用系統通訊錄",
@@ -288,6 +290,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 +325,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/Avatars/RootCollection.php b/apps/dav/lib/Avatars/RootCollection.php
index ec88c65793f..033dcaf7a5c 100644
--- a/apps/dav/lib/Avatars/RootCollection.php
+++ b/apps/dav/lib/Avatars/RootCollection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
diff --git a/apps/dav/lib/BackgroundJob/UserStatusAutomation.php b/apps/dav/lib/BackgroundJob/UserStatusAutomation.php
index 7cc56698a9f..027b3349802 100644
--- a/apps/dav/lib/BackgroundJob/UserStatusAutomation.php
+++ b/apps/dav/lib/BackgroundJob/UserStatusAutomation.php
@@ -40,8 +40,9 @@ class UserStatusAutomation extends TimedJob {
) {
parent::__construct($timeFactory);
- // Interval 0 might look weird, but the last_checked is always moved
- // to the next time we need this and then it's 0 seconds ago.
+ // interval = 0 might look odd, but it's intentional. last_run is set to
+ // the user's next available time, so the job runs immediately when
+ // that time comes.
$this->setInterval(0);
}
diff --git a/apps/dav/lib/BulkUpload/BulkUploadPlugin.php b/apps/dav/lib/BulkUpload/BulkUploadPlugin.php
index 137bad34bf5..d4faf3764e1 100644
--- a/apps/dav/lib/BulkUpload/BulkUploadPlugin.php
+++ b/apps/dav/lib/BulkUpload/BulkUploadPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/BulkUpload/MultipartRequestParser.php b/apps/dav/lib/BulkUpload/MultipartRequestParser.php
index 96a90f82cde..50f8cff76ba 100644
--- a/apps/dav/lib/BulkUpload/MultipartRequestParser.php
+++ b/apps/dav/lib/BulkUpload/MultipartRequestParser.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
@@ -57,7 +58,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/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php
index 5ae71f4ecc6..f0c49e6e28c 100644
--- a/apps/dav/lib/CalDAV/Activity/Backend.php
+++ b/apps/dav/lib/CalDAV/Activity/Backend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php b/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php
index 7411202044d..78579ee84b7 100644
--- a/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php
+++ b/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Filter/Todo.php b/apps/dav/lib/CalDAV/Activity/Filter/Todo.php
index 6bc7bd4b308..b001f90c28d 100644
--- a/apps/dav/lib/CalDAV/Activity/Filter/Todo.php
+++ b/apps/dav/lib/CalDAV/Activity/Filter/Todo.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Base.php b/apps/dav/lib/CalDAV/Activity/Provider/Base.php
index 9a75acb878c..558abe0ca1a 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Base.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Base.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -40,8 +41,8 @@ abstract class Base implements IProvider {
* @return array
*/
protected function generateCalendarParameter($data, IL10N $l) {
- if ($data['uri'] === CalDavBackend::PERSONAL_CALENDAR_URI &&
- $data['name'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
+ if ($data['uri'] === CalDavBackend::PERSONAL_CALENDAR_URI
+ && $data['name'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
return [
'type' => 'calendar',
'id' => (string)$data['id'],
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
index 898eb2b5cb6..8c93ddae431 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
index 41b610542df..87551d7840b 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -78,14 +79,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/Activity/Provider/Todo.php b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
index 1e817663439..fc0625ec970 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php b/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php
index a201213f784..0ad86a919bc 100644
--- a/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php
+++ b/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Event.php b/apps/dav/lib/CalDAV/Activity/Setting/Event.php
index ea049738251..ea9476d6f08 100644
--- a/apps/dav/lib/CalDAV/Activity/Setting/Event.php
+++ b/apps/dav/lib/CalDAV/Activity/Setting/Event.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Todo.php b/apps/dav/lib/CalDAV/Activity/Setting/Todo.php
index 7ac3b1e0f76..ed8377b0ffa 100644
--- a/apps/dav/lib/CalDAV/Activity/Setting/Todo.php
+++ b/apps/dav/lib/CalDAV/Activity/Setting/Todo.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php
index cd0b58c53d2..681709cdb6f 100644
--- a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php
+++ b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/BirthdayService.php b/apps/dav/lib/CalDAV/BirthdayService.php
index e1e46316d74..680b228766f 100644
--- a/apps/dav/lib/CalDAV/BirthdayService.php
+++ b/apps/dav/lib/CalDAV/BirthdayService.php
@@ -295,8 +295,8 @@ class BirthdayService {
}
return (
- $newCalendarData->VEVENT->DTSTART->getValue() !== $existingBirthday->VEVENT->DTSTART->getValue() ||
- $newCalendarData->VEVENT->SUMMARY->getValue() !== $existingBirthday->VEVENT->SUMMARY->getValue()
+ $newCalendarData->VEVENT->DTSTART->getValue() !== $existingBirthday->VEVENT->DTSTART->getValue()
+ || $newCalendarData->VEVENT->SUMMARY->getValue() !== $existingBirthday->VEVENT->SUMMARY->getValue()
);
}
diff --git a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
index 74efebb6e2a..cc1bab6d4fc 100644
--- a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
+++ b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
@@ -55,16 +55,6 @@ class CachedSubscriptionImpl implements ICalendar, ICalendarIsEnabled, ICalendar
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);
}
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 5643e89d797..27750913105 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -212,15 +213,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('*'))
@@ -411,8 +410,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
// New share can not have more permissions than the old one.
continue;
}
- if (isset($calendars[$row['id']][$readOnlyPropertyName]) &&
- $calendars[$row['id']][$readOnlyPropertyName] === 0) {
+ if (isset($calendars[$row['id']][$readOnlyPropertyName])
+ && $calendars[$row['id']][$readOnlyPropertyName] === 0) {
// Old share is already read-write, no more permissions can be gained
continue;
}
@@ -1040,7 +1039,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$rs->closeCursor();
}
}
-
+
/**
* Returns all calendar objects with limited metadata for a calendar
*
@@ -1538,25 +1537,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.
*
@@ -2030,8 +2010,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
if ($pattern !== '') {
$innerQuery->andWhere($innerQuery->expr()->iLike('op.value',
- $outerQuery->createNamedParameter('%' .
- $this->db->escapeLikeParameter($pattern) . '%')));
+ $outerQuery->createNamedParameter('%'
+ . $this->db->escapeLikeParameter($pattern) . '%')));
}
$start = null;
@@ -3007,7 +2987,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);
diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php
index 1d88d04a5e3..dd3a4cf3f69 100644
--- a/apps/dav/lib/CalDAV/Calendar.php
+++ b/apps/dav/lib/CalDAV/Calendar.php
@@ -53,8 +53,8 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IRestorable, IShareable
if ($this->getName() === BirthdayService::BIRTHDAY_CALENDAR_URI && strcasecmp($this->calendarInfo['{DAV:}displayname'], 'Contact birthdays') === 0) {
$this->calendarInfo['{DAV:}displayname'] = $l10n->t('Contact birthdays');
}
- if ($this->getName() === CalDavBackend::PERSONAL_CALENDAR_URI &&
- $this->calendarInfo['{DAV:}displayname'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
+ if ($this->getName() === CalDavBackend::PERSONAL_CALENDAR_URI
+ && $this->calendarInfo['{DAV:}displayname'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
$this->calendarInfo['{DAV:}displayname'] = $l10n->t('Personal');
}
$this->l10n = $l10n;
diff --git a/apps/dav/lib/CalDAV/CalendarImpl.php b/apps/dav/lib/CalDAV/CalendarImpl.php
index d36f46df901..b79bf7ea2d0 100644
--- a/apps/dav/lib/CalDAV/CalendarImpl.php
+++ b/apps/dav/lib/CalDAV/CalendarImpl.php
@@ -93,16 +93,6 @@ class CalendarImpl implements ICreateFromString, IHandleImipMessage, ICalendarIs
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);
diff --git a/apps/dav/lib/CalDAV/CalendarManager.php b/apps/dav/lib/CalDAV/CalendarManager.php
index 1baf53ee457..a2d2f1cda8a 100644
--- a/apps/dav/lib/CalDAV/CalendarManager.php
+++ b/apps/dav/lib/CalDAV/CalendarManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/CalendarObject.php b/apps/dav/lib/CalDAV/CalendarObject.php
index 90a1e97ec4d..02178b4236f 100644
--- a/apps/dav/lib/CalDAV/CalendarObject.php
+++ b/apps/dav/lib/CalDAV/CalendarObject.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/lib/CalDAV/CalendarRoot.php b/apps/dav/lib/CalDAV/CalendarRoot.php
index bfe5f84ce31..c0a313955bb 100644
--- a/apps/dav/lib/CalDAV/CalendarRoot.php
+++ b/apps/dav/lib/CalDAV/CalendarRoot.php
@@ -33,8 +33,8 @@ class CalendarRoot extends \Sabre\CalDAV\CalendarRoot {
}
public function getName() {
- if ($this->principalPrefix === 'principals/calendar-resources' ||
- $this->principalPrefix === 'principals/calendar-rooms') {
+ if ($this->principalPrefix === 'principals/calendar-resources'
+ || $this->principalPrefix === 'principals/calendar-rooms') {
$parts = explode('/', $this->principalPrefix);
return $parts[1];
diff --git a/apps/dav/lib/CalDAV/EventReader.php b/apps/dav/lib/CalDAV/EventReader.php
index 7e337f3108a..b7dd2889956 100644
--- a/apps/dav/lib/CalDAV/EventReader.php
+++ b/apps/dav/lib/CalDAV/EventReader.php
@@ -169,9 +169,9 @@ class EventReader {
if (isset($this->baseEvent->DTEND)) {
$this->baseEventEndDate = $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone);
$this->baseEventEndDateFloating = $this->baseEvent->DTEND->isFloating();
- $this->baseEventDuration =
- $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone)->getTimeStamp() -
- $this->baseEventStartDate->getTimeStamp();
+ $this->baseEventDuration
+ = $this->baseEvent->DTEND->getDateTime($this->baseEventEndTimeZone)->getTimeStamp()
+ - $this->baseEventStartDate->getTimeStamp();
}
// evaluate if duration exists
// extract duration and calculate end date
@@ -362,8 +362,8 @@ class EventReader {
public function recurringConcludes(): bool {
// retrieve rrule conclusions
- if ($this->rruleIterator?->concludesOn() !== null ||
- $this->rruleIterator?->concludesAfter() !== null) {
+ if ($this->rruleIterator?->concludesOn() !== null
+ || $this->rruleIterator?->concludesAfter() !== null) {
return true;
}
// retrieve rdate conclusions
diff --git a/apps/dav/lib/CalDAV/Export/ExportService.php b/apps/dav/lib/CalDAV/Export/ExportService.php
index 393c53b92e4..552b9e2b675 100644
--- a/apps/dav/lib/CalDAV/Export/ExportService.php
+++ b/apps/dav/lib/CalDAV/Export/ExportService.php
@@ -18,7 +18,7 @@ use Sabre\VObject\Writer;
* Calendar Export Service
*/
class ExportService {
-
+
public const FORMATS = ['ical', 'jcal', 'xcal'];
private string $systemVersion;
@@ -92,7 +92,7 @@ class ExportService {
default => Writer::write($vobject)
};
}
-
+
/**
* Generates serialized content for a component in xml format
*/
diff --git a/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php b/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
index 3f71b1db24c..08dc10f7bf4 100644
--- a/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
+++ b/apps/dav/lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Integration/ExternalCalendar.php b/apps/dav/lib/CalDAV/Integration/ExternalCalendar.php
index 6e755716397..acf81638679 100644
--- a/apps/dav/lib/CalDAV/Integration/ExternalCalendar.php
+++ b/apps/dav/lib/CalDAV/Integration/ExternalCalendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Integration/ICalendarProvider.php b/apps/dav/lib/CalDAV/Integration/ICalendarProvider.php
index bbee4cbda7c..40a8860dcb4 100644
--- a/apps/dav/lib/CalDAV/Integration/ICalendarProvider.php
+++ b/apps/dav/lib/CalDAV/Integration/ICalendarProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php b/apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php
index 3d650a4a059..c8a7109abde 100644
--- a/apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php
+++ b/apps/dav/lib/CalDAV/InvitationResponse/InvitationResponseServer.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Outbox.php b/apps/dav/lib/CalDAV/Outbox.php
index fc9dc87a574..608114d8093 100644
--- a/apps/dav/lib/CalDAV/Outbox.php
+++ b/apps/dav/lib/CalDAV/Outbox.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Principal/Collection.php b/apps/dav/lib/CalDAV/Principal/Collection.php
index f2cea0b5136..b76fde66464 100644
--- a/apps/dav/lib/CalDAV/Principal/Collection.php
+++ b/apps/dav/lib/CalDAV/Principal/Collection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Principal/User.php b/apps/dav/lib/CalDAV/Principal/User.php
index 60b7953ea62..047d83827ed 100644
--- a/apps/dav/lib/CalDAV/Principal/User.php
+++ b/apps/dav/lib/CalDAV/Principal/User.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/PublicCalendar.php b/apps/dav/lib/CalDAV/PublicCalendar.php
index 4ee811efeae..9af6e544165 100644
--- a/apps/dav/lib/CalDAV/PublicCalendar.php
+++ b/apps/dav/lib/CalDAV/PublicCalendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/PublicCalendarObject.php b/apps/dav/lib/CalDAV/PublicCalendarObject.php
index c3dc5ab1843..2ab40b94347 100644
--- a/apps/dav/lib/CalDAV/PublicCalendarObject.php
+++ b/apps/dav/lib/CalDAV/PublicCalendarObject.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php
index db73a761b0d..76378e7a1c5 100644
--- a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php
+++ b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
index 2fd55a12643..fb9b7298f9b 100644
--- a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
+++ b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Reminder/ReminderService.php b/apps/dav/lib/CalDAV/Reminder/ReminderService.php
index e2d44535ce0..c75090e1560 100644
--- a/apps/dav/lib/CalDAV/Reminder/ReminderService.php
+++ b/apps/dav/lib/CalDAV/Reminder/ReminderService.php
@@ -441,10 +441,10 @@ class ReminderService {
*/
private function deleteOrProcessNext(array $reminder,
VObject\Component\VEvent $vevent):void {
- if ($reminder['is_repeat_based'] ||
- !$reminder['is_recurring'] ||
- !$reminder['is_relative'] ||
- $reminder['is_recurrence_exception']) {
+ if ($reminder['is_repeat_based']
+ || !$reminder['is_recurring']
+ || !$reminder['is_relative']
+ || $reminder['is_recurrence_exception']) {
$this->backend->removeReminder($reminder['id']);
return;
}
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
index 236039e4890..68bb3373346 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -85,8 +86,8 @@ abstract class AbstractPrincipalBackend implements BackendInterface {
$metaDataById[$metaDataRow[$this->dbForeignKeyName]] = [];
}
- $metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']] =
- $metaDataRow['value'];
+ $metaDataById[$metaDataRow[$this->dbForeignKeyName]][$metaDataRow['key']]
+ = $metaDataRow['value'];
}
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
@@ -470,9 +471,9 @@ abstract class AbstractPrincipalBackend implements BackendInterface {
* @return bool
*/
private function isAllowedToAccessResource(array $row, array $userGroups): bool {
- if (!isset($row['group_restrictions']) ||
- $row['group_restrictions'] === null ||
- $row['group_restrictions'] === '') {
+ if (!isset($row['group_restrictions'])
+ || $row['group_restrictions'] === null
+ || $row['group_restrictions'] === '') {
return true;
}
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
index 40396f67ce9..c70d93daf52 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php
index 91cf78c296f..5704b23ae14 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
index 7e79388c53a..1f063540df6 100644
--- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
@@ -45,7 +45,7 @@ use Sabre\VObject\Reader;
* @license http://sabre.io/license/ Modified BSD License
*/
class IMipPlugin extends SabreIMipPlugin {
-
+
private ?VCalendar $vCalendar = null;
public const MAX_DATE = '2038-01-01';
public const METHOD_REQUEST = 'request';
@@ -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..f7054eb2d34 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;
}
@@ -324,7 +352,7 @@ class IMipService {
* @return string
*/
public function generateWhenStringRecurringDaily(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
@@ -375,7 +403,7 @@ class IMipService {
* @return string
*/
public function generateWhenStringRecurringWeekly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
@@ -428,15 +456,15 @@ class IMipService {
* @return string
*/
public function generateWhenStringRecurringMonthly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
$conclusion = null;
// days of month
if ($er->recurringPattern() === 'R') {
- $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' ' .
- implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
+ $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' '
+ . implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
} else {
$days = implode(', ', $er->recurringDaysOfMonth());
}
@@ -493,7 +521,7 @@ class IMipService {
* @return string
*/
public function generateWhenStringRecurringYearly(EventReader $er): string {
-
+
// initialize
$interval = (int)$er->recurringInterval();
$startTime = null;
@@ -502,8 +530,8 @@ class IMipService {
$months = implode(', ', array_map(function ($value) { return $this->localizeMonthName($value); }, $er->recurringMonthsOfYearNamed()));
// days of month
if ($er->recurringPattern() === 'R') {
- $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' ' .
- implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
+ $days = implode(', ', array_map(function ($value) { return $this->localizeRelativePositionName($value); }, $er->recurringRelativePositionNamed())) . ' '
+ . implode(', ', array_map(function ($value) { return $this->localizeDayName($value); }, $er->recurringDaysOfWeekNamed()));
} else {
$days = $er->startDateTime()->format('jS');
}
@@ -582,7 +610,7 @@ class IMipService {
true => $this->l10n->t('On specific dates between %1$s - %2$s until %3$s', [$startTime, $endTime, $conclusion]),
};
}
-
+
/**
* generates a occurring next string for a recurring event
*
@@ -1080,8 +1108,8 @@ class IMipService {
$attendee = $iTipMessage->recipient;
$organizer = $iTipMessage->sender;
$sequence = $iTipMessage->sequence;
- $recurrenceId = isset($vevent->{'RECURRENCE-ID'}) ?
- $vevent->{'RECURRENCE-ID'}->serialize() : null;
+ $recurrenceId = isset($vevent->{'RECURRENCE-ID'})
+ ? $vevent->{'RECURRENCE-ID'}->serialize() : null;
$uid = $vevent->{'UID'};
$query = $this->db->getQueryBuilder();
@@ -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/Schedule/Plugin.php b/apps/dav/lib/CalDAV/Schedule/Plugin.php
index da0f9ea5637..a001df8b2a8 100644
--- a/apps/dav/lib/CalDAV/Schedule/Plugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/Plugin.php
@@ -372,8 +372,8 @@ EOF;
return null;
}
- $isResourceOrRoom = str_starts_with($principalUrl, 'principals/calendar-resources') ||
- str_starts_with($principalUrl, 'principals/calendar-rooms');
+ $isResourceOrRoom = str_starts_with($principalUrl, 'principals/calendar-resources')
+ || str_starts_with($principalUrl, 'principals/calendar-rooms');
if (str_starts_with($principalUrl, 'principals/users')) {
[, $userId] = split($principalUrl);
diff --git a/apps/dav/lib/CalDAV/Search/SearchPlugin.php b/apps/dav/lib/CalDAV/Search/SearchPlugin.php
index 602ce151e12..27e39a76305 100644
--- a/apps/dav/lib/CalDAV/Search/SearchPlugin.php
+++ b/apps/dav/lib/CalDAV/Search/SearchPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -61,8 +62,8 @@ class SearchPlugin extends ServerPlugin {
$server->on('report', [$this, 'report']);
- $server->xml->elementMap['{' . self::NS_Nextcloud . '}calendar-search'] =
- CalendarSearchReport::class;
+ $server->xml->elementMap['{' . self::NS_Nextcloud . '}calendar-search']
+ = CalendarSearchReport::class;
}
/**
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
index 8a130865842..21a4fff1caf 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php
index 943e657903e..a98b325397b 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php
index 439a795dde9..ef438aa0258 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php
index 3b03b63e909..0c31f32348a 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php
index 42ecf630f44..251120e35cc 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php
index b10cf3140cf..6d6bf958496 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php b/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php
index 639d0b32655..6ece88fa87b 100644
--- a/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php
+++ b/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CalDAV/TipBroker.php b/apps/dav/lib/CalDAV/TipBroker.php
index 43eff124f0b..16e68fde1f0 100644
--- a/apps/dav/lib/CalDAV/TipBroker.php
+++ b/apps/dav/lib/CalDAV/TipBroker.php
@@ -97,7 +97,7 @@ class TipBroker extends Broker {
// Also If the meeting STATUS property was changed to CANCELLED
// we need to send the attendee a CANCEL message.
if (!$attendee['newInstances'] || $eventInfo['status'] === 'CANCELLED') {
-
+
$message->method = $icalMsg->METHOD = 'CANCEL';
$message->significantChange = true;
// clone base event
@@ -108,7 +108,7 @@ class TipBroker extends Broker {
$event->DTSTAMP = gmdate('Ymd\\THis\\Z');
$event->SEQUENCE = $message->sequence;
$icalMsg->add($event);
-
+
} else {
// The attendee gets the updated event body
$message->method = $icalMsg->METHOD = 'REQUEST';
@@ -124,11 +124,11 @@ class TipBroker extends Broker {
$oldAttendeeInstances = array_keys($attendee['oldInstances']);
$newAttendeeInstances = array_keys($attendee['newInstances']);
- $message->significantChange =
- $attendee['forceSend'] === 'REQUEST' ||
- count($oldAttendeeInstances) !== count($newAttendeeInstances) ||
- count(array_diff($oldAttendeeInstances, $newAttendeeInstances)) > 0 ||
- $oldEventInfo['significantChangeHash'] !== $eventInfo['significantChangeHash'];
+ $message->significantChange
+ = $attendee['forceSend'] === 'REQUEST'
+ || count($oldAttendeeInstances) !== count($newAttendeeInstances)
+ || count(array_diff($oldAttendeeInstances, $newAttendeeInstances)) > 0
+ || $oldEventInfo['significantChangeHash'] !== $eventInfo['significantChangeHash'];
foreach ($attendee['newInstances'] as $instanceId => $instanceInfo) {
$currentEvent = clone $eventInfo['instances'][$instanceId];
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 f321222b285..f9bad25bf31 100644
--- a/apps/dav/lib/Capabilities.php
+++ b/apps/dav/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/CardDAV/Activity/Filter.php b/apps/dav/lib/CardDAV/Activity/Filter.php
index 8934c455def..8b221a29ff0 100644
--- a/apps/dav/lib/CardDAV/Activity/Filter.php
+++ b/apps/dav/lib/CardDAV/Activity/Filter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/CardDAV/Activity/Provider/Base.php b/apps/dav/lib/CardDAV/Activity/Provider/Base.php
index 0c73c8558d0..ea7680aed60 100644
--- a/apps/dav/lib/CardDAV/Activity/Provider/Base.php
+++ b/apps/dav/lib/CardDAV/Activity/Provider/Base.php
@@ -41,8 +41,8 @@ abstract class Base implements IProvider {
* @return array
*/
protected function generateAddressbookParameter(array $data, IL10N $l): array {
- if ($data['uri'] === CardDavBackend::PERSONAL_ADDRESSBOOK_URI &&
- $data['name'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME) {
+ if ($data['uri'] === CardDavBackend::PERSONAL_ADDRESSBOOK_URI
+ && $data['name'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME) {
return [
'type' => 'addressbook',
'id' => (string)$data['id'],
diff --git a/apps/dav/lib/CardDAV/AddressBook.php b/apps/dav/lib/CardDAV/AddressBook.php
index 2ec645f04d2..67c0b7167fa 100644
--- a/apps/dav/lib/CardDAV/AddressBook.php
+++ b/apps/dav/lib/CardDAV/AddressBook.php
@@ -38,8 +38,8 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable, IMov
parent::__construct($carddavBackend, $addressBookInfo);
- if ($this->addressBookInfo['{DAV:}displayname'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME &&
- $this->getName() === CardDavBackend::PERSONAL_ADDRESSBOOK_URI) {
+ if ($this->addressBookInfo['{DAV:}displayname'] === CardDavBackend::PERSONAL_ADDRESSBOOK_NAME
+ && $this->getName() === CardDavBackend::PERSONAL_ADDRESSBOOK_URI) {
$this->addressBookInfo['{DAV:}displayname'] = $l10n->t('Contacts');
}
}
diff --git a/apps/dav/lib/CardDAV/AddressBookImpl.php b/apps/dav/lib/CardDAV/AddressBookImpl.php
index 8657460d0c6..6bb8e24f628 100644
--- a/apps/dav/lib/CardDAV/AddressBookImpl.php
+++ b/apps/dav/lib/CardDAV/AddressBookImpl.php
@@ -307,8 +307,8 @@ class AddressBookImpl implements IAddressBookEnabled {
*/
public function isSystemAddressBook(): bool {
return $this->addressBookInfo['principaluri'] === 'principals/system/system' && (
- $this->addressBookInfo['uri'] === 'system' ||
- $this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
+ $this->addressBookInfo['uri'] === 'system'
+ || $this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
);
}
@@ -324,7 +324,7 @@ class AddressBookImpl implements IAddressBookEnabled {
$user = str_replace('principals/users/', '', $this->addressBookInfo['principaluri']);
$uri = $this->addressBookInfo['uri'];
}
-
+
$path = 'addressbooks/users/' . $user . '/' . $uri;
$properties = $this->propertyMapper->findPropertyByPathAndName($user, $path, '{http://owncloud.org/ns}enabled');
if (count($properties) > 0) {
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index de209754ae4..06f6bf9448e 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;
@@ -160,8 +159,8 @@ class CardDavBackend implements BackendInterface, SyncSupport {
// New share can not have more permissions then the old one.
continue;
}
- if (isset($addressBooks[$row['id']][$readOnlyPropertyName]) &&
- $addressBooks[$row['id']][$readOnlyPropertyName] === 0) {
+ if (isset($addressBooks[$row['id']][$readOnlyPropertyName])
+ && $addressBooks[$row['id']][$readOnlyPropertyName] === 0) {
// Old share is already read-write, no more permissions can be gained
continue;
}
diff --git a/apps/dav/lib/CardDAV/PhotoCache.php b/apps/dav/lib/CardDAV/PhotoCache.php
index 2f1999b6b1c..03c71f7e4a3 100644
--- a/apps/dav/lib/CardDAV/PhotoCache.php
+++ b/apps/dav/lib/CardDAV/PhotoCache.php
@@ -1,10 +1,13 @@
<?php
+
/**
* 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 +22,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 +34,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 +143,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 +265,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/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
index 5758cd4fa87..6ed8aa2cfe4 100644
--- a/apps/dav/lib/Command/ExportCalendar.php
+++ b/apps/dav/lib/Command/ExportCalendar.php
@@ -79,7 +79,7 @@ class ExportCalendar extends Command {
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);
}
diff --git a/apps/dav/lib/Command/ListCalendars.php b/apps/dav/lib/Command/ListCalendars.php
index 06a1f7397c4..408a7e5247f 100644
--- a/apps/dav/lib/Command/ListCalendars.php
+++ b/apps/dav/lib/Command/ListCalendars.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Command/MoveCalendar.php b/apps/dav/lib/Command/MoveCalendar.php
index 36f20e5b547..b8acc191cc3 100644
--- a/apps/dav/lib/Command/MoveCalendar.php
+++ b/apps/dav/lib/Command/MoveCalendar.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Command/SendEventReminders.php b/apps/dav/lib/Command/SendEventReminders.php
index f5afb30ed70..89bb5ce8c20 100644
--- a/apps/dav/lib/Command/SendEventReminders.php
+++ b/apps/dav/lib/Command/SendEventReminders.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php b/apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php
index b39dc7197b0..0e2b1c58748 100644
--- a/apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Connector/Sabre/AppleQuirksPlugin.php b/apps/dav/lib/Connector/Sabre/AppleQuirksPlugin.php
index 88fff5e6a5a..9cff113140a 100644
--- a/apps/dav/lib/Connector/Sabre/AppleQuirksPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/AppleQuirksPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php
index d977721bdfa..a174920946a 100644
--- a/apps/dav/lib/Connector/Sabre/Auth.php
+++ b/apps/dav/lib/Connector/Sabre/Auth.php
@@ -55,8 +55,8 @@ class Auth extends AbstractBasic {
* @see https://github.com/owncloud/core/issues/13245
*/
public function isDavAuthenticated(string $username): bool {
- return !is_null($this->session->get(self::DAV_AUTHENTICATED)) &&
- $this->session->get(self::DAV_AUTHENTICATED) === $username;
+ return !is_null($this->session->get(self::DAV_AUTHENTICATED))
+ && $this->session->get(self::DAV_AUTHENTICATED) === $username;
}
/**
@@ -71,8 +71,8 @@ class Auth extends AbstractBasic {
* @throws PasswordLoginForbidden
*/
protected function validateUserPass($username, $password) {
- if ($this->userSession->isLoggedIn() &&
- $this->isDavAuthenticated($this->userSession->getUser()->getUID())
+ if ($this->userSession->isLoggedIn()
+ && $this->isDavAuthenticated($this->userSession->getUser()->getUID())
) {
$this->session->close();
return true;
@@ -118,7 +118,7 @@ class Auth extends AbstractBasic {
* Checks whether a CSRF check is required on the request
*/
private function requiresCSRFCheck(): bool {
-
+
$methodsWithoutCsrf = ['GET', 'HEAD', 'OPTIONS'];
if (in_array($this->request->getMethod(), $methodsWithoutCsrf)) {
return false;
@@ -144,8 +144,8 @@ class Auth extends AbstractBasic {
}
// If logged-in AND DAV authenticated no check is required
- if ($this->userSession->isLoggedIn() &&
- $this->isDavAuthenticated($this->userSession->getUser()->getUID())) {
+ if ($this->userSession->isLoggedIn()
+ && $this->isDavAuthenticated($this->userSession->getUser()->getUID())) {
return false;
}
@@ -159,8 +159,8 @@ class Auth extends AbstractBasic {
private function auth(RequestInterface $request, ResponseInterface $response): array {
$forcedLogout = false;
- if (!$this->request->passesCSRFCheck() &&
- $this->requiresCSRFCheck()) {
+ if (!$this->request->passesCSRFCheck()
+ && $this->requiresCSRFCheck()) {
// In case of a fail with POST we need to recheck the credentials
if ($this->request->getMethod() === 'POST') {
$forcedLogout = true;
@@ -178,10 +178,10 @@ class Auth extends AbstractBasic {
}
if (
//Fix for broken webdav clients
- ($this->userSession->isLoggedIn() && is_null($this->session->get(self::DAV_AUTHENTICATED))) ||
+ ($this->userSession->isLoggedIn() && is_null($this->session->get(self::DAV_AUTHENTICATED)))
//Well behaved clients that only send the cookie are allowed
- ($this->userSession->isLoggedIn() && $this->session->get(self::DAV_AUTHENTICATED) === $this->userSession->getUser()->getUID() && empty($request->getHeader('Authorization'))) ||
- \OC_User::handleApacheAuth()
+ || ($this->userSession->isLoggedIn() && $this->session->get(self::DAV_AUTHENTICATED) === $this->userSession->getUser()->getUID() && empty($request->getHeader('Authorization')))
+ || \OC_User::handleApacheAuth()
) {
$user = $this->userSession->getUser()->getUID();
$this->currentUser = $user;
diff --git a/apps/dav/lib/Connector/Sabre/BearerAuth.php b/apps/dav/lib/Connector/Sabre/BearerAuth.php
index e189d8fa128..23453ae8efb 100644
--- a/apps/dav/lib/Connector/Sabre/BearerAuth.php
+++ b/apps/dav/lib/Connector/Sabre/BearerAuth.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Connector/Sabre/CachingTree.php b/apps/dav/lib/Connector/Sabre/CachingTree.php
index 86e102677c1..5d72b530f58 100644
--- a/apps/dav/lib/Connector/Sabre/CachingTree.php
+++ b/apps/dav/lib/Connector/Sabre/CachingTree.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Connector/Sabre/DavAclPlugin.php b/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
index 7846896182f..100d719ef01 100644
--- a/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
@@ -62,7 +62,7 @@ class DavAclPlugin extends \Sabre\DAVACL\Plugin {
)
);
}
-
+
}
return $access;
diff --git a/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php b/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php
index 4a7e30caa10..f6baceb748b 100644
--- a/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php
+++ b/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php
@@ -43,8 +43,8 @@ class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin {
* @return false
*/
public function httpGet(RequestInterface $request, ResponseInterface $response) {
- $string = 'This is the WebDAV interface. It can only be accessed by ' .
- 'WebDAV clients such as the Nextcloud desktop sync client.';
+ $string = 'This is the WebDAV interface. It can only be accessed by '
+ . 'WebDAV clients such as the Nextcloud desktop sync client.';
$stream = fopen('php://memory', 'r+');
fwrite($stream, $string);
rewind($stream);
diff --git a/apps/dav/lib/Connector/Sabre/Exception/BadGateway.php b/apps/dav/lib/Connector/Sabre/Exception/BadGateway.php
index 41ace002660..1e1e4aaed04 100644
--- a/apps/dav/lib/Connector/Sabre/Exception/BadGateway.php
+++ b/apps/dav/lib/Connector/Sabre/Exception/BadGateway.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
index 61ecfaf845c..b0c5a079ce1 100644
--- a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
@@ -117,8 +117,8 @@ class FakeLockerPlugin extends ServerPlugin {
$lockInfo->timeout = 1800;
$body = $this->server->xml->write('{DAV:}prop', [
- '{DAV:}lockdiscovery' =>
- new LockDiscovery([$lockInfo])
+ '{DAV:}lockdiscovery'
+ => new LockDiscovery([$lockInfo])
]);
$response->setStatus(Http::STATUS_OK);
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 9e2affddb6b..843383a0452 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;
@@ -256,8 +257,8 @@ class FilesPlugin extends ServerPlugin {
// adds a 'Content-Disposition: attachment' header in case no disposition
// header has been set before
- if ($this->downloadAttachment &&
- $response->getHeader('Content-Disposition') === null) {
+ if ($this->downloadAttachment
+ && $response->getHeader('Content-Disposition') === null) {
$filename = $node->getName();
if ($this->request->isUserAgent(
[
@@ -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
@@ -534,8 +541,8 @@ class FilesPlugin extends ServerPlugin {
$ocmPermissions[] = 'read';
}
- if (($ncPermissions & Constants::PERMISSION_CREATE) ||
- ($ncPermissions & Constants::PERMISSION_UPDATE)) {
+ if (($ncPermissions & Constants::PERMISSION_CREATE)
+ || ($ncPermissions & Constants::PERMISSION_UPDATE)) {
$ocmPermissions[] = 'write';
}
diff --git a/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php b/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
index efed6ce09f8..e18ef58149a 100644
--- a/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
+++ b/apps/dav/lib/Connector/Sabre/MtimeSanitizer.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php
index e49c61f6e1f..b61cabedf5f 100644
--- a/apps/dav/lib/Connector/Sabre/Principal.php
+++ b/apps/dav/lib/Connector/Sabre/Principal.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/lib/Connector/Sabre/PublicAuth.php b/apps/dav/lib/Connector/Sabre/PublicAuth.php
index b5d9ce3db72..2ca1c25e2f6 100644
--- a/apps/dav/lib/Connector/Sabre/PublicAuth.php
+++ b/apps/dav/lib/Connector/Sabre/PublicAuth.php
@@ -14,6 +14,7 @@ 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;
@@ -23,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;
@@ -45,6 +47,7 @@ class PublicAuth extends AbstractBasic {
private ISession $session,
private IThrottler $throttler,
private LoggerInterface $logger,
+ private IURLGenerator $urlGenerator,
) {
// setup realm
$defaults = new Defaults();
@@ -52,10 +55,6 @@ class PublicAuth extends AbstractBasic {
}
/**
- * @param RequestInterface $request
- * @param ResponseInterface $response
- *
- * @return array
* @throws NotAuthenticated
* @throws MaxDelayReached
* @throws ServiceUnavailable
@@ -64,6 +63,10 @@ class PublicAuth extends AbstractBasic {
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,
@@ -80,6 +83,15 @@ class PublicAuth extends AbstractBasic {
} 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);
$msg = $e->getMessage();
@@ -90,7 +102,6 @@ class PublicAuth extends AbstractBasic {
/**
* Extract token from request url
- * @return string
* @throws NotFound
*/
private function getToken(): string {
@@ -107,7 +118,7 @@ class PublicAuth extends AbstractBasic {
/**
* Check token validity
- * @return array
+ *
* @throws NotFound
* @throws NotAuthenticated
*/
@@ -155,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
@@ -206,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/SharesPlugin.php b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
index 088cf33d85f..f49e85333f3 100644
--- a/apps/dav/lib/Connector/Sabre/SharesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
@@ -176,8 +176,8 @@ class SharesPlugin extends \Sabre\DAV\ServerPlugin {
if ($sabreNode instanceof Directory
&& $propFind->getDepth() !== 0
&& (
- !is_null($propFind->getStatus(self::SHARETYPES_PROPERTYNAME)) ||
- !is_null($propFind->getStatus(self::SHAREES_PROPERTYNAME))
+ !is_null($propFind->getStatus(self::SHARETYPES_PROPERTYNAME))
+ || !is_null($propFind->getStatus(self::SHAREES_PROPERTYNAME))
)
) {
$folderNode = $sabreNode->getNode();
diff --git a/apps/dav/lib/Connector/Sabre/TagsPlugin.php b/apps/dav/lib/Connector/Sabre/TagsPlugin.php
index eb06fa5cef6..25c1633df36 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/BirthdayCalendarController.php b/apps/dav/lib/Controller/BirthdayCalendarController.php
index d3a9239dd22..f6bfb229a9c 100644
--- a/apps/dav/lib/Controller/BirthdayCalendarController.php
+++ b/apps/dav/lib/Controller/BirthdayCalendarController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/CustomPropertiesBackend.php b/apps/dav/lib/DAV/CustomPropertiesBackend.php
index c41ecd8450e..f3fff11b3da 100644
--- a/apps/dav/lib/DAV/CustomPropertiesBackend.php
+++ b/apps/dav/lib/DAV/CustomPropertiesBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -92,6 +93,11 @@ class CustomPropertiesBackend implements BackendInterface {
'{http://nextcloud.org/ns}lock-time',
'{http://nextcloud.org/ns}lock-timeout',
'{http://nextcloud.org/ns}lock-token',
+ // photos
+ '{http://nextcloud.org/ns}realpath',
+ '{http://nextcloud.org/ns}nbItems',
+ '{http://nextcloud.org/ns}face-detections',
+ '{http://nextcloud.org/ns}face-preview-image',
];
/**
@@ -277,8 +283,8 @@ class CustomPropertiesBackend implements BackendInterface {
*/
public function move($source, $destination) {
$statement = $this->connection->prepare(
- 'UPDATE `*PREFIX*properties` SET `propertypath` = ?' .
- ' WHERE `userid` = ? AND `propertypath` = ?'
+ 'UPDATE `*PREFIX*properties` SET `propertypath` = ?'
+ . ' WHERE `userid` = ? AND `propertypath` = ?'
);
$statement->execute([$this->formatPath($destination), $this->user->getUID(), $this->formatPath($source)]);
$statement->closeCursor();
diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php
index 143fc7d69f1..77ba45182c9 100644
--- a/apps/dav/lib/DAV/GroupPrincipalBackend.php
+++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -50,8 +51,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 +80,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 +189,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 de0d6891b7c..d60f5cca7c6 100644
--- a/apps/dav/lib/DAV/Sharing/Backend.php
+++ b/apps/dav/lib/DAV/Sharing/Backend.php
@@ -64,8 +64,8 @@ abstract class Backend {
}
$principalparts[2] = urldecode($principalparts[2]);
- if (($principalparts[1] === 'users' && !$this->userManager->userExists($principalparts[2])) ||
- ($principalparts[1] === 'groups' && !$this->groupManager->groupExists($principalparts[2]))) {
+ if (($principalparts[1] === 'users' && !$this->userManager->userExists($principalparts[2]))
+ || ($principalparts[1] === 'groups' && !$this->groupManager->groupExists($principalparts[2]))) {
// User or group does not exist
continue;
}
@@ -199,7 +199,7 @@ abstract class Backend {
public function unshare(IShareable $shareable, string $principalUri): bool {
$this->shareCache->clear();
-
+
$principal = $this->principalBackend->findByUri($principalUri, '');
if (empty($principal)) {
return false;
diff --git a/apps/dav/lib/DAV/ViewOnlyPlugin.php b/apps/dav/lib/DAV/ViewOnlyPlugin.php
index 4c3b49a45b0..9b9615b8063 100644
--- a/apps/dav/lib/DAV/ViewOnlyPlugin.php
+++ b/apps/dav/lib/DAV/ViewOnlyPlugin.php
@@ -84,18 +84,25 @@ class ViewOnlyPlugin extends ServerPlugin {
if (!$storage->instanceOfStorage(ISharedStorage::class)) {
return true;
}
+
// Extract extra permissions
/** @var ISharedStorage $storage */
$share = $storage->getShare();
-
$attributes = $share->getAttributes();
if ($attributes === null) {
return true;
}
- // Check if read-only and on whether permission can download is both set and disabled.
+ // We have two options here, if download is disabled, but viewing is allowed,
+ // we still allow the GET request to return the file content.
$canDownload = $attributes->getAttribute('permissions', 'download');
- if ($canDownload !== null && !$canDownload) {
+ if (!$share->canSeeContent()) {
+ throw new Forbidden('Access to this shared resource has been denied because its download permission is disabled.');
+ }
+
+ // If download is disabled, we disable the COPY and MOVE methods even if the
+ // shareapi_allow_view_without_download is set to true.
+ if ($request->getMethod() !== 'GET' && ($canDownload !== null && !$canDownload)) {
throw new Forbidden('Access to this shared resource has been denied because its download permission is disabled.');
}
} catch (NotFound $e) {
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/Exception/UnsupportedLimitOnInitialSyncException.php b/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
index 1022625c23b..c6b7f8564c5 100644
--- a/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
+++ b/apps/dav/lib/Exception/UnsupportedLimitOnInitialSyncException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php
index ace367e4490..eb548bbd55c 100644
--- a/apps/dav/lib/Files/FileSearchBackend.php
+++ b/apps/dav/lib/Files/FileSearchBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,6 +16,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 +46,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 +136,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/LazySearchBackend.php b/apps/dav/lib/Files/LazySearchBackend.php
index a0ad730ff2b..6ba539ddd87 100644
--- a/apps/dav/lib/Files/LazySearchBackend.php
+++ b/apps/dav/lib/Files/LazySearchBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
index ad7648795da..a3dbd32ce6b 100644
--- a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
+++ b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
@@ -1,12 +1,15 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
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 +20,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,7 +31,6 @@ class FilesDropPlugin extends ServerPlugin {
$this->enabled = true;
}
-
/**
* This initializes the plugin.
* It is ONLY initialized by the server on a file drop request.
@@ -45,7 +42,12 @@ class FilesDropPlugin extends ServerPlugin {
}
public function onMkcol(RequestInterface $request, ResponseInterface $response) {
- if (!$this->enabled || $this->share === null || $this->view === null) {
+ if (!$this->enabled || $this->share === null) {
+ return;
+ }
+
+ $node = $this->share->getNode();
+ if (!($node instanceof Folder)) {
return;
}
@@ -57,7 +59,12 @@ class FilesDropPlugin extends ServerPlugin {
}
public function beforeMethod(RequestInterface $request, ResponseInterface $response) {
- if (!$this->enabled || $this->share === null || $this->view === null) {
+ if (!$this->enabled || $this->share === null) {
+ return;
+ }
+
+ $node = $this->share->getNode();
+ if (!($node instanceof Folder)) {
return;
}
@@ -66,13 +73,12 @@ class FilesDropPlugin extends ServerPlugin {
? trim(urldecode($request->getHeader('X-NC-Nickname')))
: null;
- //
if ($request->getMethod() !== 'PUT') {
// If uploading subfolders we need to ensure they get created
// within the nickname folder
if ($request->getMethod() === 'MKCOL') {
if (!$nickname) {
- throw new MethodNotAllowed('A nickname header is required when uploading subfolders');
+ throw new BadRequest('A nickname header is required when uploading subfolders');
}
} else {
throw new MethodNotAllowed('Only PUT is allowed on files drop');
@@ -108,7 +114,7 @@ class FilesDropPlugin extends ServerPlugin {
// We need a valid nickname for file requests
if ($isFileRequest && !$nickname) {
- throw new MethodNotAllowed('A nickname header is required for file requests');
+ throw new BadRequest('A nickname header is required for file requests');
}
// We're only allowing the upload of
@@ -116,56 +122,78 @@ class FilesDropPlugin extends ServerPlugin {
// This prevents confusion when uploading files and help
// classify them by uploaders.
if (!$nickname && !$isRootUpload) {
- throw new MethodNotAllowed('A nickname header is required when uploading subfolders');
+ throw new BadRequest('A nickname header is required when uploading subfolders');
}
- // If we have a nickname, let's put everything inside
if ($nickname) {
- // Put all files in the subfolder
+ 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);
+ }
+
+ // If we have a nickname, let's put
+ // all files in the subfolder
$relativePath = '/' . $nickname . '/' . $relativePath;
$relativePath = str_replace('//', '/', $relativePath);
}
// Create the folders along the way
- $folders = $this->getPathSegments(dirname($relativePath));
- foreach ($folders as $folder) {
- if ($folder === '') {
+ $folder = $node;
+ $pathSegments = $this->getPathSegments(dirname($relativePath));
+ foreach ($pathSegments as $pathSegment) {
+ if ($pathSegment === '') {
continue;
- } // skip empty parts
- if (!$this->view->file_exists($folder)) {
- $this->view->mkdir($folder);
+ }
+
+ 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
- $noConflictPath = \OC_Helper::buildNotExistingFileNameForView(dirname($relativePath), basename($relativePath), $this->view);
- $path = '/files/' . $token . '/' . $noConflictPath;
- $url = $request->getBaseUrl() . str_replace('//', '/', $path);
+ $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 = rtrim(str_replace('\\', '/', $path), '/');
-
- // Handle absolute paths starting with /
- $isAbsolute = str_starts_with($path, '/');
-
- $segments = explode('/', $path);
-
- // Add back the leading slash for the first segment if needed
- $result = [];
- $current = $isAbsolute ? '/' : '';
-
- foreach ($segments as $segment) {
- if ($segment === '') {
- // skip empty parts
- continue;
- }
- $current = rtrim($current, '/') . '/' . $segment;
- $result[] = $current;
- }
+ $path = trim(str_replace('\\', '/', $path), '/');
- return $result;
+ return explode('/', $path);
}
}
diff --git a/apps/dav/lib/Listener/DavAdminSettingsListener.php b/apps/dav/lib/Listener/DavAdminSettingsListener.php
index c59c2df1575..69501915208 100644
--- a/apps/dav/lib/Listener/DavAdminSettingsListener.php
+++ b/apps/dav/lib/Listener/DavAdminSettingsListener.php
@@ -42,11 +42,11 @@ class DavAdminSettingsListener implements IEventListener {
$this->handleSetValue($event);
return;
}
-
+
}
private function handleGetValue(DeclarativeSettingsGetValueEvent $event): void {
-
+
if ($event->getFieldId() === 'system_addressbook_enabled') {
$event->setValue((int)$this->config->getValueBool('dav', 'system_addressbook_exposed', true));
}
diff --git a/apps/dav/lib/Listener/UserEventsListener.php b/apps/dav/lib/Listener/UserEventsListener.php
index 61d945e829b..a6b09b70fa0 100644
--- a/apps/dav/lib/Listener/UserEventsListener.php
+++ b/apps/dav/lib/Listener/UserEventsListener.php
@@ -9,17 +9,19 @@ declare(strict_types=1);
namespace OCA\DAV\Listener;
+use OCA\DAV\BackgroundJob\UserStatusAutomation;
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\BackgroundJob\IJobList;
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 +48,10 @@ 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,
+ private IJobList $jobList,
) {
}
@@ -122,6 +127,8 @@ class UserEventsListener implements IEventListener {
$this->cardDav->deleteAddressBook($addressBook['id']);
}
+ $this->jobList->remove(UserStatusAutomation::class, ['userId' => $uid]);
+
unset($this->calendarsToDelete[$uid]);
unset($this->subscriptionsToDelete[$uid]);
unset($this->addressBooksToDelete[$uid]);
@@ -137,17 +144,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 +176,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/BuildCalendarSearchIndex.php b/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
index b157934a1ff..d8f906f22ee 100644
--- a/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
+++ b/apps/dav/lib/Migration/BuildCalendarSearchIndex.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/BuildSocialSearchIndex.php b/apps/dav/lib/Migration/BuildSocialSearchIndex.php
index 5fab3f4ef77..a808034365a 100644
--- a/apps/dav/lib/Migration/BuildSocialSearchIndex.php
+++ b/apps/dav/lib/Migration/BuildSocialSearchIndex.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/CalDAVRemoveEmptyValue.php b/apps/dav/lib/Migration/CalDAVRemoveEmptyValue.php
index ecc462e153b..24e182e46eb 100644
--- a/apps/dav/lib/Migration/CalDAVRemoveEmptyValue.php
+++ b/apps/dav/lib/Migration/CalDAVRemoveEmptyValue.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/RegenerateBirthdayCalendars.php b/apps/dav/lib/Migration/RegenerateBirthdayCalendars.php
index 14037801eb4..ef8e9002e9d 100644
--- a/apps/dav/lib/Migration/RegenerateBirthdayCalendars.php
+++ b/apps/dav/lib/Migration/RegenerateBirthdayCalendars.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/RemoveObjectProperties.php b/apps/dav/lib/Migration/RemoveObjectProperties.php
index 3f505ecb1e2..f09293ae0bb 100644
--- a/apps/dav/lib/Migration/RemoveObjectProperties.php
+++ b/apps/dav/lib/Migration/RemoveObjectProperties.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/Migration/Version1004Date20170825134824.php b/apps/dav/lib/Migration/Version1004Date20170825134824.php
index 54c4c194778..4bf9637b697 100644
--- a/apps/dav/lib/Migration/Version1004Date20170825134824.php
+++ b/apps/dav/lib/Migration/Version1004Date20170825134824.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/Version1004Date20170919104507.php b/apps/dav/lib/Migration/Version1004Date20170919104507.php
index ca20e2fb4e7..678d92d2b83 100644
--- a/apps/dav/lib/Migration/Version1004Date20170919104507.php
+++ b/apps/dav/lib/Migration/Version1004Date20170919104507.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/Version1004Date20170924124212.php b/apps/dav/lib/Migration/Version1004Date20170924124212.php
index fbfec7e8e2d..4d221e91132 100644
--- a/apps/dav/lib/Migration/Version1004Date20170924124212.php
+++ b/apps/dav/lib/Migration/Version1004Date20170924124212.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/Version1004Date20170926103422.php b/apps/dav/lib/Migration/Version1004Date20170926103422.php
index 38506b0fc5d..ec56e035006 100644
--- a/apps/dav/lib/Migration/Version1004Date20170926103422.php
+++ b/apps/dav/lib/Migration/Version1004Date20170926103422.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/Version1005Date20180530124431.php b/apps/dav/lib/Migration/Version1005Date20180530124431.php
index ac1994893fd..b5f9ff26962 100644
--- a/apps/dav/lib/Migration/Version1005Date20180530124431.php
+++ b/apps/dav/lib/Migration/Version1005Date20180530124431.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Migration/Version1006Date20180619154313.php b/apps/dav/lib/Migration/Version1006Date20180619154313.php
index 195209ed046..231861a68c4 100644
--- a/apps/dav/lib/Migration/Version1006Date20180619154313.php
+++ b/apps/dav/lib/Migration/Version1006Date20180619154313.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/Paginate/PaginatePlugin.php b/apps/dav/lib/Paginate/PaginatePlugin.php
index c02eb9f21eb..c5da18f5c47 100644
--- a/apps/dav/lib/Paginate/PaginatePlugin.php
+++ b/apps/dav/lib/Paginate/PaginatePlugin.php
@@ -49,8 +49,8 @@ class PaginatePlugin extends ServerPlugin {
}
$url = $request->getUrl();
if (
- $request->hasHeader(self::PAGINATE_HEADER) &&
- (!$request->hasHeader(self::PAGINATE_TOKEN_HEADER) || !$this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER)))
+ $request->hasHeader(self::PAGINATE_HEADER)
+ && (!$request->hasHeader(self::PAGINATE_TOKEN_HEADER) || !$this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER)))
) {
$pageSize = (int)$request->getHeader(self::PAGINATE_COUNT_HEADER) ?: $this->pageSize;
$offset = (int)$request->getHeader(self::PAGINATE_OFFSET_HEADER);
@@ -68,9 +68,9 @@ class PaginatePlugin extends ServerPlugin {
public function onMethod(RequestInterface $request, ResponseInterface $response) {
$url = $this->server->httpRequest->getUrl();
if (
- $request->hasHeader(self::PAGINATE_TOKEN_HEADER) &&
- $request->hasHeader(self::PAGINATE_OFFSET_HEADER) &&
- $this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER))
+ $request->hasHeader(self::PAGINATE_TOKEN_HEADER)
+ && $request->hasHeader(self::PAGINATE_OFFSET_HEADER)
+ && $this->cache->exists($url, $request->getHeader(self::PAGINATE_TOKEN_HEADER))
) {
$token = $request->getHeader(self::PAGINATE_TOKEN_HEADER);
$offset = (int)$request->getHeader(self::PAGINATE_OFFSET_HEADER);
diff --git a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
index 198a09b4bc8..bb098a0f107 100644
--- a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
+++ b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -57,7 +58,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/Provisioning/Apple/AppleProvisioningPlugin.php b/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php
index be5831feee3..258138caa42 100644
--- a/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php
+++ b/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index f1595bab391..f81c7fa6f29 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -63,6 +64,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 +74,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 +217,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 +234,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 +355,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/CalDAVSettings.php b/apps/dav/lib/Settings/CalDAVSettings.php
index 5b6b7fa7e3d..5e19539a899 100644
--- a/apps/dav/lib/Settings/CalDAVSettings.php
+++ b/apps/dav/lib/Settings/CalDAVSettings.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/SystemTag/SystemTagList.php b/apps/dav/lib/SystemTag/SystemTagList.php
index 546467f562e..b55f10164d7 100644
--- a/apps/dav/lib/SystemTag/SystemTagList.php
+++ b/apps/dav/lib/SystemTag/SystemTagList.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/SystemTag/SystemTagNode.php b/apps/dav/lib/SystemTag/SystemTagNode.php
index da51279a9d2..2341d4823ba 100644
--- a/apps/dav/lib/SystemTag/SystemTagNode.php
+++ b/apps/dav/lib/SystemTag/SystemTagNode.php
@@ -122,8 +122,8 @@ class SystemTagNode implements \Sabre\DAV\ICollection {
throw new NotFound('Tag with id ' . $this->tag->getId() . ' does not exist');
} catch (TagAlreadyExistsException $e) {
throw new Conflict(
- 'Tag with the properties "' . $name . '", ' .
- $userVisible . ', ' . $userAssignable . ' already exists'
+ 'Tag with the properties "' . $name . '", '
+ . $userVisible . ', ' . $userAssignable . ' already exists'
);
}
}
@@ -176,15 +176,15 @@ class SystemTagNode implements \Sabre\DAV\ICollection {
public function createFile($name, $data = null) {
throw new MethodNotAllowed();
}
-
+
public function createDirectory($name) {
throw new MethodNotAllowed();
}
-
+
public function getChild($name) {
return new SystemTagObjectType($this->tag, $name, $this->tagManager, $this->tagMapper);
}
-
+
public function childExists($name) {
$objectTypes = $this->tagMapper->getAvailableObjectTypes();
return in_array($name, $objectTypes);
diff --git a/apps/dav/lib/SystemTag/SystemTagObjectType.php b/apps/dav/lib/SystemTag/SystemTagObjectType.php
index 0e1368854cd..0d348cd95f4 100644
--- a/apps/dav/lib/SystemTag/SystemTagObjectType.php
+++ b/apps/dav/lib/SystemTag/SystemTagObjectType.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/lib/SystemTag/SystemTagsObjectList.php b/apps/dav/lib/SystemTag/SystemTagsObjectList.php
index 5ccc924eb53..64e8b1bbebb 100644
--- a/apps/dav/lib/SystemTag/SystemTagsObjectList.php
+++ b/apps/dav/lib/SystemTag/SystemTagsObjectList.php
@@ -45,7 +45,7 @@ class SystemTagsObjectList implements XmlSerializable, XmlDeserializable {
if ($tree === null) {
return null;
}
-
+
$objects = [];
foreach ($tree as $elem) {
if ($elem['name'] === self::OBJECTID_ROOT_PROPERTYNAME) {
diff --git a/apps/dav/lib/Traits/PrincipalProxyTrait.php b/apps/dav/lib/Traits/PrincipalProxyTrait.php
index 279f796b720..feec485fe5c 100644
--- a/apps/dav/lib/Traits/PrincipalProxyTrait.php
+++ b/apps/dav/lib/Traits/PrincipalProxyTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/openapi.json b/apps/dav/openapi.json
index 48d6ae03ee0..27904636def 100644
--- a/apps/dav/openapi.json
+++ b/apps/dav/openapi.json
@@ -399,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/tests/integration/UserMigration/CalendarMigratorTest.php b/apps/dav/tests/integration/UserMigration/CalendarMigratorTest.php
index bb7f83e4d34..0682733a103 100644
--- a/apps/dav/tests/integration/UserMigration/CalendarMigratorTest.php
+++ b/apps/dav/tests/integration/UserMigration/CalendarMigratorTest.php
@@ -44,7 +44,7 @@ class CalendarMigratorTest extends TestCase {
$this->output = $this->createMock(OutputInterface::class);
}
- public function dataAssets(): array {
+ public static function dataAssets(): array {
return array_map(
function (string $filename) {
/** @var VCalendar $vCalendar */
@@ -89,9 +89,7 @@ class CalendarMigratorTest extends TestCase {
);
}
- /**
- * @dataProvider dataAssets
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAssets')]
public function testImportExportAsset(string $userId, string $filename, string $initialCalendarUri, VCalendar $importCalendar): void {
$user = $this->userManager->createUser($userId, 'topsecretpassword');
diff --git a/apps/dav/tests/integration/UserMigration/ContactsMigratorTest.php b/apps/dav/tests/integration/UserMigration/ContactsMigratorTest.php
index cb2a2d6c8b5..9ae1ca28501 100644
--- a/apps/dav/tests/integration/UserMigration/ContactsMigratorTest.php
+++ b/apps/dav/tests/integration/UserMigration/ContactsMigratorTest.php
@@ -44,7 +44,7 @@ class ContactsMigratorTest extends TestCase {
$this->output = $this->createMock(OutputInterface::class);
}
- public function dataAssets(): array {
+ public static function dataAssets(): array {
return array_map(
function (string $filename) {
$vCardSplitter = new VCardSplitter(
@@ -91,11 +91,11 @@ class ContactsMigratorTest extends TestCase {
}
/**
- * @dataProvider dataAssets
*
* @param array{displayName: string, description?: string} $importMetadata
* @param VCard[] $importCards
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAssets')]
public function testImportExportAsset(string $userId, string $filename, string $initialAddressBookUri, array $importMetadata, array $importCards): void {
$user = $this->userManager->createUser($userId, 'topsecretpassword');
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..7117637a000 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();
@@ -29,16 +27,14 @@ class AvatarHomeTest extends TestCase {
$this->home = new AvatarHome(['uri' => 'principals/users/admin'], $this->avatarManager);
}
- /**
- * @dataProvider providesForbiddenMethods
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesForbiddenMethods')]
public function testForbiddenMethods($method): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->home->$method('');
}
- public function providesForbiddenMethods() {
+ public static function providesForbiddenMethods(): array {
return [
['createFile'],
['createDirectory'],
@@ -52,7 +48,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'],
@@ -62,10 +58,8 @@ class AvatarHomeTest extends TestCase {
];
}
- /**
- * @dataProvider providesTestGetChild
- */
- public function testGetChild($expectedException, $hasAvatar, $path): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesTestGetChild')]
+ public function testGetChild(?string $expectedException, bool $hasAvatar, string $path): void {
if ($expectedException !== null) {
$this->expectException($expectedException);
}
@@ -89,10 +83,8 @@ class AvatarHomeTest extends TestCase {
self::assertEquals(1, count($avatarNodes));
}
- /**
- * @dataProvider providesTestGetChild
- */
- public function testChildExists($expectedException, $hasAvatar, $path): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesTestGetChild')]
+ 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..a46a1e5e5b0 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],
@@ -52,23 +45,19 @@ class EventReminderJobTest extends TestCase {
}
/**
- * @dataProvider data
*
* @param bool $sendEventReminders
* @param bool $sendEventRemindersMode
* @param bool $expectCall
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('data')]
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..1838fb2537d 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 {
@@ -49,9 +39,7 @@ class PruneOutdatedSyncTokensJobTest extends TestCase {
$this->backgroundJob = new PruneOutdatedSyncTokensJob($this->timeFactory, $this->calDavBackend, $this->cardDavBackend, $this->config, $this->logger);
}
- /**
- * @dataProvider dataForTestRun
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataForTestRun')]
public function testRun(string $configToKeep, string $configRetentionDays, int $actualLimit, int $retentionDays, int $deletedCalendarSyncTokens, int $deletedAddressBookSyncTokens): void {
$this->config->expects($this->exactly(2))
->method('getAppValue')
@@ -84,7 +72,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..7713ef2945a 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();
@@ -50,9 +41,8 @@ class RefreshWebcalJobTest extends TestCase {
* @param int $lastRun
* @param int $time
* @param bool $process
- *
- * @dataProvider runDataProvider
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')]
public function testRun(int $lastRun, int $time, bool $process): void {
$backgroundJob = new RefreshWebcalJob($this->refreshWebcalService, $this->config, $this->logger, $this->timeFactory);
$backgroundJob->setId(42);
@@ -97,10 +87,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..d49d20180d9 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],
@@ -89,9 +88,7 @@ class UserStatusAutomationTest extends TestCase {
];
}
- /**
- * @dataProvider dataRun
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRun')]
public function testRunNoOOO(string $ruleDay, string $currentTime, bool $isAvailable): void {
$user = $this->createConfiguredMock(IUser::class, [
'getUID' => 'user'
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..4848a01f6b9 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']]],
@@ -80,15 +71,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCallTriggerCalendarActivity')]
+ public function testCallTriggerCalendarActivity(string $method, array $payload, string $expectedSubject, array $expectedPayload): void {
$backend = $this->getBackend(['triggerCalendarActivity']);
$backend->expects($this->once())
->method('triggerCalendarActivity')
@@ -101,7 +85,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, []],
@@ -182,18 +166,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTriggerCalendarActivity')]
+ 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 +252,7 @@ class BackendTest extends TestCase {
], [], []]);
}
- public function dataGetUsersForShares() {
+ public static function dataGetUsersForShares(): array {
return [
[
[],
@@ -321,12 +295,7 @@ class BackendTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetUsersForShares')]
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -356,7 +325,7 @@ class BackendTest extends TestCase {
/**
* @param string[] $users
- * @return IUser[]|MockObject[]
+ * @return IUser[]&MockObject[]
*/
protected function getUsers(array $users) {
$list = [];
@@ -368,7 +337,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..b4c4e14fe7d 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']],
@@ -58,11 +57,11 @@ class CalendarTest extends TestCase {
}
/**
- * @dataProvider dataFilterTypes
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilterTypes')]
+ 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..87b55f14bcc 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,47 +17,35 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
- public function dataFilters() {
+ public static function dataFilters(): array {
return [
[Calendar::class],
[Todo::class],
];
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testImplementsInterface($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetName($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetPriority($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@@ -64,32 +54,23 @@ class GenericTest extends TestCase {
$this->assertLessThanOrEqual(100, $priority);
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetIcon($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
$this->assertStringStartsWith('http', $filter->getIcon());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testFilterTypes($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testAllowedApps($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ 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..f18d66b9774 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']],
@@ -58,11 +57,11 @@ class TodoTest extends TestCase {
}
/**
- * @dataProvider dataFilterTypes
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilterTypes')]
+ 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..3e6219beef8 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,19 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSetSubjects')]
+ public function testSetSubjects(string $subject, array $parameters): void {
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('setRichSubject')
@@ -68,7 +57,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'],
@@ -77,11 +66,7 @@ class BaseTest extends TestCase {
];
}
- /**
- * @dataProvider dataGenerateCalendarParameter
- * @param array $data
- * @param string $name
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGenerateCalendarParameter')]
public function testGenerateCalendarParameter(array $data, string $name): void {
$l = $this->createMock(IL10N::class);
$l->expects($this->any())
@@ -97,18 +82,14 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateCalendarParameter', [$data, $l]));
}
- public function dataGenerateLegacyCalendarParameter() {
+ public static function dataGenerateLegacyCalendarParameter(): array {
return [
[23, 'c1'],
[42, 'c2'],
];
}
- /**
- * @dataProvider dataGenerateLegacyCalendarParameter
- * @param int $id
- * @param string $name
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGenerateLegacyCalendarParameter')]
public function testGenerateLegacyCalendarParameter(int $id, string $name): void {
$this->assertEquals([
'type' => 'calendar',
@@ -117,17 +98,14 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateLegacyCalendarParameter', [$id, $name]));
}
- public function dataGenerateGroupParameter() {
+ public static function dataGenerateGroupParameter(): array {
return [
['g1'],
['g2'],
];
}
- /**
- * @dataProvider dataGenerateGroupParameter
- * @param string $gid
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGenerateGroupParameter')]
public function testGenerateGroupParameter(string $gid): void {
$this->assertEquals([
'type' => 'user-group',
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
index ec237825731..4fd38c1aed2 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',
@@ -83,23 +67,13 @@ class EventTest extends TestCase {
];
}
- /**
- * @dataProvider dataGenerateObjectParameter
- * @param int $id
- * @param string $name
- * @param array|null $link
- * @param bool $calendarAppEnabled
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGenerateObjectParameter')]
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 +84,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 +148,10 @@ class EventTest extends TestCase {
];
}
- /** @dataProvider generateObjectParameterLinkEncodingDataProvider */
+ #[\PHPUnit\Framework\Attributes\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 +161,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 +173,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']],
@@ -211,12 +181,8 @@ class EventTest extends TestCase {
];
}
- /**
- * @dataProvider dataGenerateObjectParameterThrows
- * @param mixed $eventData
- * @param string $exception
- */
- public function testGenerateObjectParameterThrows($eventData, string $exception = InvalidArgumentException::class): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGenerateObjectParameterThrows')]
+ 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..23126b6bbcf 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],
@@ -21,40 +23,28 @@ class GenericTest extends TestCase {
];
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testImplementsInterface($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testGetName($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testGetPriority($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@@ -63,41 +53,29 @@ class GenericTest extends TestCase {
$this->assertLessThanOrEqual(100, $priority);
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testCanChangeStream($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testIsDefaultEnabledStream($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testCanChangeMail($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testIsDefaultEnabledMail($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ 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..84879e87238 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): void {
+ $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..ba0da422290 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -140,19 +141,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 +253,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 825d798e7e1..f9205d5d322 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.
@@ -28,8 +30,6 @@ use function time;
* Class CalDavBackendTest
*
* @group DB
- *
- * @package OCA\DAV\Tests\unit\CalDAV
*/
class CalDavBackendTest extends AbstractCalDavBackend {
public function testCalendarOperations(): void {
@@ -59,7 +59,7 @@ class CalDavBackendTest extends AbstractCalDavBackend {
self::assertEmpty($calendars);
}
- public function providesSharingData() {
+ public static function providesSharingData(): array {
return [
[true, true, true, false, [
[
@@ -112,9 +112,7 @@ class CalDavBackendTest extends AbstractCalDavBackend {
];
}
- /**
- * @dataProvider providesSharingData
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesSharingData')]
public function testCalendarSharing($userCanRead, $userCanWrite, $groupCanRead, $groupCanWrite, $add, $principals): void {
$logger = $this->createMock(\Psr\Log\LoggerInterface::class);
$config = $this->createMock(IConfig::class);
@@ -403,9 +401,7 @@ EOD;
$this->assertCount(0, $calendarObjects);
}
- /**
- * @dataProvider providesCalendarQueryParameters
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesCalendarQueryParameters')]
public function testCalendarQuery($expectedEventsInResult, $propFilters, $compFilter): void {
$calendarId = $this->createTestCalendar();
$events = [];
@@ -458,7 +454,7 @@ EOD;
$this->assertNotNull($co);
}
- public function providesCalendarQueryParameters() {
+ public static function providesCalendarQueryParameters(): array {
return [
'all' => [[0, 1, 2, 3], [], []],
'only-todos' => [[], ['name' => 'VTODO'], []],
@@ -619,7 +615,7 @@ EOD;
$this->assertCount(0, $subscriptions);
}
- public function providesSchedulingData() {
+ public static function providesSchedulingData(): array {
$data = <<<EOS
BEGIN:VCALENDAR
VERSION:2.0
@@ -692,9 +688,9 @@ EOS;
}
/**
- * @dataProvider providesSchedulingData
* @param $objectData
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesSchedulingData')]
public function testScheduling($objectData): void {
$this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', $objectData);
@@ -710,9 +706,7 @@ EOS;
$this->assertCount(0, $sos);
}
- /**
- * @dataProvider providesCalDataForGetDenormalizedData
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesCalDataForGetDenormalizedData')]
public function testGetDenormalizedData($expected, $key, $calData): void {
try {
$actual = $this->backend->getDenormalizedData($calData);
@@ -725,7 +719,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"],
@@ -878,9 +872,7 @@ EOD;
$this->assertEquals(count($search5), 0);
}
- /**
- * @dataProvider searchDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('searchDataProvider')]
public function testSearch(bool $isShared, array $searchOptions, int $count): void {
$calendarId = $this->createTestCalendar();
@@ -980,7 +972,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],
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 0d5223739f3..d6a8f3b910e 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarImplTest.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,11 +23,10 @@ use Sabre\VObject\ITip\Message;
use Sabre\VObject\Reader;
class CalendarImplTest extends \Test\TestCase {
-
- private Calendar|MockObject $calendar;
+ private Calendar&MockObject $calendar;
private array $calendarInfo;
- private CalDavBackend|MockObject $backend;
- private CalendarImpl|MockObject $calendarImpl;
+ private CalDavBackend&MockObject $backend;
+ private CalendarImpl $calendarImpl;
private array $mockExportCollection;
protected function setUp(): void {
@@ -197,8 +198,8 @@ EOF;
/** @var \Sabre\DAVACL\Plugin|MockObject $schedulingPlugin */
$aclPlugin = $this->createMock(\Sabre\DAVACL\Plugin::class);
- $server =
- $this->createMock(Server::class);
+ $server
+ = $this->createMock(Server::class);
$server->expects($this->any())
->method('getPlugin')
->willReturnMap([
@@ -299,7 +300,7 @@ EOF;
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 7f2d0052162..b0d3c35bfe7 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
@@ -80,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');
@@ -101,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);
@@ -122,7 +117,7 @@ class CalendarTest extends TestCase {
$c->delete();
}
- public function dataPropPatch() {
+ public static function dataPropPatch(): array {
return [
['user1', 'user2', [], true],
['user1', 'user2', [
@@ -149,12 +144,10 @@ 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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataPropPatch')]
+ 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,
@@ -173,12 +166,10 @@ class CalendarTest extends TestCase {
$this->addToAssertionCount(1);
}
- /**
- * @dataProvider providesReadOnlyInfo
- */
+ #[\PHPUnit\Framework\Attributes\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',
@@ -263,7 +254,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,18 +266,14 @@ class CalendarTest extends TestCase {
];
}
- /**
- * @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
- */
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesConfidentialClassificationData')]
+ 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,12 +304,8 @@ class CalendarTest extends TestCase {
$this->assertEquals(!$isShared, $c->childExists('event-2'));
}
- /**
- * @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
- */
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesConfidentialClassificationData')]
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -372,8 +355,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
]);
@@ -437,7 +420,7 @@ EOD;
}
}
- public function providesConfidentialClassificationData() {
+ public static function providesConfidentialClassificationData(): array {
return [
[3, false],
[2, true]
@@ -540,7 +523,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')
@@ -619,7 +602,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/EventReaderTest.php b/apps/dav/tests/unit/CalDAV/EventReaderTest.php
index a5ce3e3f2c2..3bd4f9d85c2 100644
--- a/apps/dav/tests/unit/CalDAV/EventReaderTest.php
+++ b/apps/dav/tests/unit/CalDAV/EventReaderTest.php
@@ -23,7 +23,7 @@ class EventReaderTest extends TestCase {
private VCalendar $vCalendar1e;
private VCalendar $vCalendar2;
private VCalendar $vCalendar3;
-
+
protected function setUp(): void {
parent::setUp();
@@ -151,7 +151,7 @@ class EventReaderTest extends TestCase {
'ROLE' => 'REQ-PARTICIPANT',
'RSVP' => 'TRUE'
]);
-
+
}
public function testConstructFromCalendarString(): void {
@@ -188,19 +188,19 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with global time zone */
// construct event reader
$er = new EventReader($this->vCalendar1c, $this->vCalendar1c->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test day part event with no time zone */
// construct event reader
$er = new EventReader($this->vCalendar1d, $this->vCalendar1d->VEVENT[0]->UID->getValue());
@@ -212,13 +212,13 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1e, $this->vCalendar1e->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T080000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test full day event */
// construct event reader
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T000000', (new DateTimeZone('America/Toronto')))), $er->startDateTime());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -234,7 +234,7 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->startTimeZone());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
@@ -264,7 +264,7 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->startTimeZone());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -280,19 +280,19 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Vancouver')))), $er->endDateTime());
-
+
/** test day part event with global time zone */
// construct event reader
$er = new EventReader($this->vCalendar1c, $this->vCalendar1c->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test day part event with no time zone */
// construct event reader
$er = new EventReader($this->vCalendar1d, $this->vCalendar1d->VEVENT[0]->UID->getValue());
@@ -304,13 +304,13 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1e, $this->vCalendar1e->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240701T090000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test full day event */
// construct event reader
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new \DateTime('20240702T000000', (new DateTimeZone('America/Toronto')))), $er->endDateTime());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
@@ -326,7 +326,7 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar1a, $this->vCalendar1a->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->endTimeZone());
-
+
/** test day part event with different start/end time zone */
// construct event reader
$er = new EventReader($this->vCalendar1b, $this->vCalendar1b->VEVENT[0]->UID->getValue());
@@ -356,7 +356,7 @@ class EventReaderTest extends TestCase {
$er = new EventReader($this->vCalendar2, $this->vCalendar2->VEVENT[0]->UID->getValue());
// test set by constructor
$this->assertEquals((new DateTimeZone('America/Toronto')), $er->endTimeZone());
-
+
/** test multi day event */
// construct event reader
$er = new EventReader($this->vCalendar3, $this->vCalendar3->VEVENT[0]->UID->getValue());
diff --git a/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
index f1e049c4a80..838dfc18f2f 100644
--- a/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,10 +16,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
class ExportServiceTest extends \Test\TestCase {
-
- private ServerVersion|MockObject $serverVersion;
+ private ServerVersion&MockObject $serverVersion;
private ExportService $service;
- private ICalendarExport|MockObject $calendar;
+ private ICalendarExport&MockObject $calendar;
private array $mockExportCollection;
protected function setUp(): void {
@@ -36,7 +37,7 @@ class ExportServiceTest extends \Test\TestCase {
yield $entry;
}
}
-
+
public function testExport(): void {
// Arrange
// construct calendar with a 1 hour event and same start/end time zones
diff --git a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
index 778df5697f0..b2f479ac0e3 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,16 +8,17 @@
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();
- $this->abstractExternalCalendar =
- $this->getMockForAbstractClass(ExternalCalendar::class, ['example-app-id', 'calendar-uri-in-backend']);
+ $this->abstractExternalCalendar
+ = $this->getMockForAbstractClass(ExternalCalendar::class, ['example-app-id', 'calendar-uri-in-backend']);
}
public function testGetName():void {
@@ -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());
@@ -63,9 +66,7 @@ class ExternalCalendarTest extends TestCase {
$this->assertTrue(ExternalCalendar::isAppGeneratedCalendar('app-generated--example--foo--2'));
}
- /**
- * @dataProvider splitAppGeneratedCalendarUriDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('splitAppGeneratedCalendarUriDataProvider')]
public function testSplitAppGeneratedCalendarUriInvalid(string $name):void {
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Provided calendar uri was not app-generated');
@@ -73,7 +74,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..c5725a1fa81 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',
@@ -35,13 +36,8 @@ class PluginTest extends TestCase {
];
}
- /**
- * @dataProvider linkProvider
- *
- * @param $input
- * @param $expected
- */
- public function testGetCalendarHomeForPrincipal($input, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('linkProvider')]
+ 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..98153a067fb 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
@@ -14,17 +16,13 @@ use Sabre\VObject\Reader;
class PublicCalendarTest extends CalendarTest {
- /**
- * @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
- */
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesConfidentialClassificationData')]
+ 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 +42,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();
@@ -57,12 +55,8 @@ class PublicCalendarTest extends CalendarTest {
$this->assertFalse($c->childExists('event-2'));
}
- /**
- * @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
- */
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesConfidentialClassificationData')]
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -112,7 +106,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 +126,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..ec2ae37a929 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);
@@ -49,9 +42,9 @@ class PublishingTest extends TestCase {
$root = new SimpleCollection('calendars');
$this->server = new Server($root);
/** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(Calendar::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->book = $this->getMockBuilder(Calendar::class)
+ ->disableOriginalConstructor()
+ ->getMock();
$this->book->method('getName')->willReturn('cal1');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
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..5034af49cae 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): void {
+ $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..c091f590711 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',
@@ -179,18 +170,9 @@ class NotifierTest extends TestCase {
];
}
- /**
- * @dataProvider dataPrepare
- *
- * @param string $subjectType
- * @param array $subjectParams
- * @param string $subject
- * @param array $messageParams
- * @param string $message
- * @throws \Exception
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataPrepare')]
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 +217,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..c18901c5f58 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): void {
+ $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..364bc74de49 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']);
}
@@ -257,9 +246,7 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
$this->assertEquals(0, $actual);
}
- /**
- * @dataProvider dataSearchPrincipals
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearchPrincipals')]
public function testSearchPrincipals($expected, $test): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->once())
@@ -281,7 +268,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..524ac556e19 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): void {
+ $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',
@@ -259,9 +251,7 @@ class PluginTest extends TestCase {
];
}
- /**
- * @dataProvider propFindDefaultCalendarUrlProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('propFindDefaultCalendarUrlProvider')]
public function testPropFindDefaultCalendarUrl(string $principalUri, ?string $calendarHome, bool $isResource, string $calendarUri, string $displayName, bool $exists, bool $deleted = false, bool $hasExistingCalendars = false, bool $propertiesForPath = true): void {
$propFind = new PropFind(
$principalUri,
@@ -270,7 +260,7 @@ class PluginTest extends TestCase {
],
0
);
- /** @var IPrincipal|MockObject $node */
+ /** @var IPrincipal&MockObject $node */
$node = $this->getMockBuilder(IPrincipal::class)
->disableOriginalConstructor()
->getMock();
@@ -367,7 +357,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..02ae504bce0 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,9 +12,9 @@ use Sabre\Xml\Reader;
use Test\TestCase;
class CalendarSearchReportTest extends TestCase {
- private $elementMap = [
- '{http://nextcloud.com/ns}calendar-search' =>
- 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
+ private array $elementMap = [
+ '{http://nextcloud.com/ns}calendar-search'
+ => 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
];
public function testFoo(): void {
@@ -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..c29415ecef3 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 {
@@ -33,9 +32,7 @@ class ConnectionTest extends TestCase {
$this->connection = new Connection($this->clientService, $this->config, $this->logger);
}
- /**
- * @dataProvider runLocalURLDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('runLocalURLDataProvider')]
public function testLocalUrl($source): void {
$subscription = [
'id' => 42,
@@ -95,8 +92,8 @@ class ConnectionTest extends TestCase {
/**
* @param string $result
* @param string $contentType
- * @dataProvider urlDataProvider
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('urlDataProvider')]
public function testConnection(string $url, string $result, string $contentType): void {
$client = $this->createMock(IClient::class);
$response = $this->createMock(IResponse::class);
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..d4f4b9e878f 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();
@@ -34,13 +34,7 @@ class RefreshWebcalServiceTest extends TestCase {
$this->time = $this->createMock(ITimeFactory::class);
}
- /**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
- * @dataProvider runDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')]
public function testRun(string $body, string $contentType, string $result): void {
$refreshWebcalService = $this->getMockBuilder(RefreshWebcalService::class)
->onlyMethods(['getRandomCalendarObjectUri'])
@@ -87,13 +81,7 @@ class RefreshWebcalServiceTest extends TestCase {
$refreshWebcalService->refreshSubscription('principals/users/testuser', 'sub123');
}
- /**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
- * @dataProvider identicalDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('identicalDataProvider')]
public function testRunIdentical(string $uid, array $calendarObject, string $body, string $contentType, string $result): void {
$refreshWebcalService = $this->getMockBuilder(RefreshWebcalService::class)
->onlyMethods(['getRandomCalendarObjectUri'])
@@ -208,13 +196,7 @@ class RefreshWebcalServiceTest extends TestCase {
$refreshWebcalService->refreshSubscription('principals/users/testuser', 'sub123');
}
- /**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
- * @dataProvider runDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')]
public function testRunCreateCalendarNoException(string $body, string $contentType, string $result): void {
$refreshWebcalService = $this->getMockBuilder(RefreshWebcalService::class)
->onlyMethods(['getRandomCalendarObjectUri', 'getSubscription',])
@@ -258,13 +240,7 @@ class RefreshWebcalServiceTest extends TestCase {
$refreshWebcalService->refreshSubscription('principals/users/testuser', 'sub123');
}
- /**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
- * @dataProvider runDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')]
public function testRunCreateCalendarBadRequest(string $body, string $contentType, string $result): void {
$refreshWebcalService = $this->getMockBuilder(RefreshWebcalService::class)
->onlyMethods(['getRandomCalendarObjectUri', 'getSubscription'])
@@ -308,10 +284,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 +303,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 21d00ef183f..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
diff --git a/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
index 134a6ca5ca0..a070a3d7131 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']]],
@@ -79,9 +71,7 @@ class BackendTest extends TestCase {
];
}
- /**
- * @dataProvider dataCallTriggerAddressBookActivity
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCallTriggerAddressBookActivity')]
public function testCallTriggerAddressBookActivity(string $method, array $payload, string $expectedSubject, array $expectedPayload): void {
$backend = $this->getBackend(['triggerAddressbookActivity']);
$backend->expects($this->once())
@@ -95,7 +85,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, []],
@@ -159,16 +149,10 @@ 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
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTriggerAddressBookActivity')]
public function testTriggerAddressBookActivity(string $action, array $data, array $shares, array $changedProperties, string $currentUser, string $author, ?array $shareUsers, array $users): void {
$backend = $this->getBackend(['getUsersForShares']);
@@ -219,13 +203,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 +245,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 [
@@ -329,16 +313,10 @@ 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
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTriggerCardActivity')]
public function testTriggerCardActivity(string $action, array $addressBookData, array $shares, array $cardData, string $currentUser, string $author, ?array $shareUsers, array $users): void {
$backend = $this->getBackend(['getUsersForShares']);
@@ -385,13 +363,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 +387,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 [
[
[],
@@ -452,12 +430,7 @@ class BackendTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetUsersForShares')]
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -498,10 +471,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..f7daeb41cca 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,25 +93,21 @@ 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)));
$this->assertSame(2, count($result));
}
- /**
- * @dataProvider dataTestCreate
- *
- * @param array $properties
- */
- public function testCreate($properties): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCreate')]
+ 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 +119,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
->getMock();
$expectedProperties = 0;
@@ -164,7 +146,7 @@ class AddressBookImplTest extends TestCase {
$this->assertTrue($addressBookImpl->createOrUpdate($properties));
}
- public function dataTestCreate() {
+ public static function dataTestCreate(): array {
return [
[[]],
[['FN' => 'John Doe']],
@@ -177,7 +159,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 +171,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 +198,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 +210,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();
$this->backend->expects($this->once())->method('getCard')
@@ -246,13 +228,8 @@ class AddressBookImplTest extends TestCase {
$addressBookImpl->createOrUpdate($properties);
}
- /**
- * @dataProvider dataTestGetPermissions
- *
- * @param array $permissions
- * @param int $expected
- */
- public function testGetPermissions($permissions, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetPermissions')]
+ public function testGetPermissions(array $permissions, int $expected): void {
$this->addressBook->expects($this->once())->method('getACL')
->willReturn($permissions);
@@ -261,7 +238,7 @@ class AddressBookImplTest extends TestCase {
);
}
- public function dataTestGetPermissions() {
+ public static function dataTestGetPermissions(): array {
return [
[[], 0],
[[['privilege' => '{DAV:}read']], 1],
@@ -299,7 +276,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 +288,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..85ccb016946 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,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->propPatch(new PropPatch(['{DAV:}displayname' => 'Test address book']));
}
- /**
- * @dataProvider providesReadOnlyInfo
- */
- public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesReadOnlyInfo')]
+ 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 +136,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 +171,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..6908dfd17bc 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();
@@ -55,18 +50,8 @@ class BirthdayServiceTest extends TestCase {
$this->dbConnection, $this->l10n);
}
- /**
- * @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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesVCards')]
+ 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 +137,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): void {
+ $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 +162,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,19 +189,17 @@ 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();
$service->onCardChanged(666, 'gump.vcf', '');
}
- /**
- * @dataProvider providesCardChanges
- */
- public function testOnCardChanged($expectedOp): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesCardChanges')]
+ public function testOnCardChanged(string $expectedOp): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('dav', 'generateBirthdayCalendar', 'yes')
@@ -220,11 +207,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 +225,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): void {
+ $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): void {
+ $expected = array_shift($createCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
if ($expectedOp === 'update') {
$vCal = new VCalendar();
@@ -272,23 +272,25 @@ 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): void {
+ $expected = array_shift($updateCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
$service->onCardChanged(666, 'gump.vcf', '');
}
- /**
- * @dataProvider providesBirthday
- * @param $expected
- * @param $old
- * @param $new
- */
- public function testBirthdayEvenChanged($expected, $old, $new): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesBirthday')]
+ public function testBirthdayEvenChanged(bool $expected, string $old, string $new): void {
$new = Reader::read($new);
$this->assertEquals($expected, $this->service->birthdayEvenChanged($old, $new));
}
@@ -354,18 +356,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): void {
+ $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 +388,7 @@ class BirthdayServiceTest extends TestCase {
];
}
- public function providesCardChanges() {
+ public static function providesCardChanges(): array {
return[
['delete'],
['create'],
@@ -390,7 +396,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..1966a8d8c9a 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,64 +46,50 @@ 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';
public const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group';
- private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'UID:Test' . PHP_EOL .
- 'FN:Test' . PHP_EOL .
- 'N:Test;;;;' . PHP_EOL .
- 'END:VCARD';
-
- private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'UID:Test2' . PHP_EOL .
- 'FN:Test2' . PHP_EOL .
- 'N:Test2;;;;' . PHP_EOL .
- 'END:VCARD';
-
- private $vcardTest2 = 'BEGIN:VCARD' . PHP_EOL .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'UID:Test3' . PHP_EOL .
- 'FN:Test3' . PHP_EOL .
- 'N:Test3;;;;' . PHP_EOL .
- 'END:VCARD';
-
- private $vcardTestNoUID = 'BEGIN:VCARD' . PHP_EOL .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'FN:TestNoUID' . PHP_EOL .
- 'N:TestNoUID;;;;' . PHP_EOL .
- 'END:VCARD';
+ private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL
+ . 'VERSION:3.0' . PHP_EOL
+ . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
+ . 'UID:Test' . PHP_EOL
+ . 'FN:Test' . PHP_EOL
+ . 'N:Test;;;;' . PHP_EOL
+ . 'END:VCARD';
+
+ private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL
+ . 'VERSION:3.0' . PHP_EOL
+ . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
+ . 'UID:Test2' . PHP_EOL
+ . 'FN:Test2' . PHP_EOL
+ . 'N:Test2;;;;' . PHP_EOL
+ . 'END:VCARD';
+
+ private $vcardTest2 = 'BEGIN:VCARD' . PHP_EOL
+ . 'VERSION:3.0' . PHP_EOL
+ . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
+ . 'UID:Test3' . PHP_EOL
+ . 'FN:Test3' . PHP_EOL
+ . 'N:Test3;;;;' . PHP_EOL
+ . 'END:VCARD';
+
+ private $vcardTestNoUID = 'BEGIN:VCARD' . PHP_EOL
+ . 'VERSION:3.0' . PHP_EOL
+ . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
+ . 'FN:TestNoUID' . PHP_EOL
+ . 'N:TestNoUID;;;;' . PHP_EOL
+ . 'END:VCARD';
protected function setUp(): void {
parent::setUp();
@@ -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): void {
+ $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): void {
+ $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', []);
@@ -637,15 +645,8 @@ class CardDavBackendTest extends TestCase {
$this->invokePrivate($this->backend, 'getCardId', [1, 'uri']);
}
- /**
- * @dataProvider dataTestSearch
- *
- * @param string $pattern
- * @param array $properties
- * @param array $options
- * @param array $expected
- */
- public function testSearch($pattern, $properties, $options, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSearch')]
+ public function testSearch(string $pattern, array $properties, array $options, array $expected): void {
/** @var VCard $vCards */
$vCards = [];
$vCards[0] = new VCard();
@@ -756,7 +757,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..00519b82766 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,17 +70,16 @@ 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;
}
- /**
- * @dataProvider providesNewUsers
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesNewUsers')]
public function testCreation($expectedVCard, $displayName = null, $eMailAddress = null, $cloudId = null): void {
$user = $this->getUserMock((string)$displayName, $eMailAddress, $cloudId);
$accountManager = $this->getAccountManager($user);
@@ -126,7 +118,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 +133,7 @@ class ConverterTest extends TestCase {
}
}
- public function providesNewUsers() {
+ public static function providesNewUsers(): array {
return [
[
null
@@ -195,19 +187,15 @@ class ConverterTest extends TestCase {
];
}
- /**
- * @dataProvider providesNames
- * @param $expected
- * @param $fullName
- */
- public function testNameSplitter($expected, $fullName): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesNames')]
+ 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 +204,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..d47f53bddcd 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,18 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesQueryParams')]
+ 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 +77,7 @@ class ImageExportPluginTest extends TestCase {
$this->assertTrue($result);
}
- public function dataTestCard() {
+ public static function dataTestCard(): array {
return [
[null, false],
[null, true],
@@ -96,13 +86,8 @@ class ImageExportPluginTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestCard
- *
- * @param $size
- * @param bool $photo
- */
- public function testCard($size, $photo): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCard')]
+ public function testCard(?int $size, bool $photo): void {
$query = ['photo' => null];
if ($size !== null) {
$query['size'] = $size;
@@ -145,14 +130,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): void {
+ $expected = array_shift($setHeaderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->response->expects($this->once())
->method('setStatus')
@@ -161,12 +150,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): void {
+ $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..ea4886a67e6 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,24 +318,16 @@ 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],
];
}
- /**
- * @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 */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataActivatedUsers')]
+ 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 +343,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');
@@ -433,9 +425,7 @@ END:VCARD';
);
}
- /**
- * @dataProvider providerUseAbsoluteUriReport
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providerUseAbsoluteUriReport')]
public function testUseAbsoluteUriReport(string $host, string $expected): void {
$body = '<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
@@ -475,7 +465,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..2768ed576c3 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,16 +71,14 @@ 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']
];
}
- /**
- * @dataProvider dataExecute
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecute')]
public function testWithCorrectUser(bool $readOnly, string $output): void {
$this->userManager->expects($this->once())
->method('userExists')
diff --git a/apps/dav/tests/unit/Command/ListCalendarSharesTest.php b/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
index 3b3f3a1519e..e5d4251cbf9 100644
--- a/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
+++ b/apps/dav/tests/unit/Command/ListCalendarSharesTest.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\CalDavBackend;
use OCA\DAV\Command\ListCalendarShares;
diff --git a/apps/dav/tests/unit/Command/ListCalendarsTest.php b/apps/dav/tests/unit/Command/ListCalendarsTest.php
index 1f5f9882ac4..d398a7c772f 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,16 +72,14 @@ 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']
];
}
- /**
- * @dataProvider dataExecute
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecute')]
public function testWithCorrectUser(bool $readOnly, string $output): void {
$this->userManager->expects($this->once())
->method('userExists')
diff --git a/apps/dav/tests/unit/Command/MoveCalendarTest.php b/apps/dav/tests/unit/Command/MoveCalendarTest.php
index 9b935ca3cdb..e9f016961f2 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,32 +57,23 @@ class MoveCalendarTest extends TestCase {
);
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, true],
[true, false]
];
}
- /**
- * @dataProvider dataExecute
- *
- * @param $userOriginExists
- * @param $userDestinationExists
- */
- public function testWithBadUserOrigin($userOriginExists, $userDestinationExists): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecute')]
+ 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 +90,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 +114,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 +141,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,38 +169,31 @@ 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]
];
}
- /**
- * @dataProvider dataTestMoveWithDestinationNotPartOfGroup
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestMoveWithDestinationNotPartOfGroup')]
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 +219,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 +260,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,39 +300,32 @@ 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]
];
}
- /**
- * @dataProvider dataTestMoveWithCalendarAlreadySharedToDestination
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestMoveWithCalendarAlreadySharedToDestination')]
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..9e108b4cf63 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');
@@ -197,7 +174,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->comment->expects($this->once())
->method('setMessage')
->with($msg)
- ->will($this->throwException(new \Exception('buh!')));
+ ->willThrowException(new \Exception('buh!'));
$this->comment->expects($this->any())
->method('getActorType')
@@ -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');
@@ -235,7 +209,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->comment->expects($this->once())
->method('setMessage')
- ->will($this->throwException(new MessageTooLongException()));
+ ->willThrowException(new MessageTooLongException());
$this->comment->expects($this->any())
->method('getActorType')
@@ -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;
@@ -505,11 +469,8 @@ class CommentsNodeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider readCommentProvider
- * @param $expected
- */
- public function testGetPropertiesUnreadProperty($creationDT, $readDT, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('readCommentProvider')]
+ 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..18d32772f7b 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);
@@ -198,7 +184,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->tree->expects($this->any())
->method('getNodeForPath')
->with('/' . $path)
- ->will($this->throwException(new \Sabre\DAV\Exception\NotFound()));
+ ->willThrowException(new \Sabre\DAV\Exception\NotFound());
$request = $this->getMockBuilder(RequestInterface::class)
->disableOriginalConstructor()
@@ -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..29ebde7d602 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);
}
@@ -80,7 +68,7 @@ class EntityCollectionTest extends \Test\TestCase {
$this->commentsManager->expects($this->once())
->method('get')
->with('55')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->collection->getChild('55');
}
@@ -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 {
@@ -126,7 +114,7 @@ class EntityCollectionTest extends \Test\TestCase {
$this->commentsManager->expects($this->once())
->method('get')
->with('44')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->assertFalse($this->collection->childExists('44'));
}
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..4b42a815708 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']));
}
@@ -214,21 +196,17 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('logClientIn')
->with('MyTestUser', 'MyTestPassword')
- ->will($this->throwException(new PasswordLoginForbiddenException()));
+ ->willThrowException(new PasswordLoginForbiddenException());
$this->session
->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..366c9475b1b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
@@ -55,9 +55,7 @@ class BlockLegacyClientPluginTest extends TestCase {
];
}
- /**
- * @dataProvider oldDesktopClientProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('oldDesktopClientProvider')]
public function testBeforeHandlerException(string $userAgent, ERROR_TYPE $errorType): void {
$this->themingDefaults
->expects($this->atMost(1))
@@ -83,7 +81,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')
@@ -95,8 +93,8 @@ class BlockLegacyClientPluginTest extends TestCase {
/**
* Ensure that there is no room for XSS attack through configured URL / version
- * @dataProvider oldDesktopClientProvider
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('oldDesktopClientProvider')]
public function testBeforeHandlerExceptionPreventXSSAttack(string $userAgent, ERROR_TYPE $errorType): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -142,9 +140,7 @@ class BlockLegacyClientPluginTest extends TestCase {
];
}
- /**
- * @dataProvider newAndAlternateDesktopClientProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('newAndAlternateDesktopClientProvider')]
public function testBeforeHandlerSuccess(string $userAgent): void {
/** @var RequestInterface|MockObject $request */
$request = $this->createMock(RequestInterface::class);
diff --git a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
index 1cda0e4dbdb..a934d6401c2 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,43 @@
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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('nodeProvider')]
+ public function testHandleGetProperties(string $class, bool $expectedSuccessful): void {
+ $propFind = $this->createMock(PropFind::class);
if ($expectedSuccessful) {
$propFind->expects($this->exactly(3))
@@ -73,10 +55,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'],
@@ -84,16 +67,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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('baseUriProvider')]
+ 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 +82,23 @@ 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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('userProvider')]
+ 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..d4021a66299 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);
@@ -79,8 +59,8 @@ class CustomPropertiesBackendTest extends \Test\TestCase {
protected function tearDown(): void {
$connection = Server::get(IDBConnection::class);
$deleteStatement = $connection->prepare(
- 'DELETE FROM `*PREFIX*properties`' .
- ' WHERE `userid` = ?'
+ 'DELETE FROM `*PREFIX*properties`'
+ . ' WHERE `userid` = ?'
);
$deleteStatement->execute(
[
@@ -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 7fefe3e06da..421ee1bdc12 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;
@@ -21,6 +22,7 @@ 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 {
@@ -43,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;
}
@@ -59,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')
@@ -81,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);
@@ -174,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')
@@ -214,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
@@ -273,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);
@@ -329,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);
@@ -381,39 +373,33 @@ class DirectoryTest extends \Test\TestCase {
$this->assertEquals([200, 800], $dir->getQuotaInfo()); //200 used, 800 free
}
- /**
- * @dataProvider moveFailedProvider
- */
- public function testMoveFailed($source, $destination, $updatables, $deletables): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('moveFailedProvider')]
+ 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);
}
- /**
- * @dataProvider moveSuccessProvider
- */
- public function testMoveSuccess($source, $destination, $updatables, $deletables): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('moveSuccessProvider')]
+ public function testMoveSuccess(string $source, string $destination, array $updatables, array $deletables): void {
$this->moveTest($source, $destination, $updatables, $deletables);
$this->addToAssertionCount(1);
}
- /**
- * @dataProvider moveFailedInvalidCharsProvider
- */
- public function testMoveFailedInvalidChars($source, $destination, $updatables, $deletables): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('moveFailedInvalidCharsProvider')]
+ 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], []],
@@ -424,7 +410,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
@@ -432,12 +418,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, [
@@ -449,7 +430,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..416ac8a75c9 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);
@@ -46,9 +42,7 @@ class ExceptionLoggerPluginTest extends TestCase {
$this->plugin->initialize($this->server);
}
- /**
- * @dataProvider providesExceptions
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesExceptions')]
public function testLogging(string $expectedLogLevel, \Throwable $e): void {
$this->init();
@@ -59,7 +53,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..366932137f4 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): void {
+ $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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, $propertyName);
+ });
$this->fakeLockerPlugin->propFind($propFind, $node);
}
- public function tokenDataProvider() {
+ public static function tokenDataProvider(): array {
return [
[
[
@@ -118,23 +119,15 @@ class FakeLockerPluginTest extends TestCase {
];
}
- /**
- * @dataProvider tokenDataProvider
- * @param array $input
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('tokenDataProvider')]
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 +145,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..60c8382e131 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
@@ -158,17 +150,15 @@ class FileTest extends TestCase {
];
}
- /**
- * @dataProvider fopenFailuresProvider
- */
- public function testSimplePutFails($thrownException, $expectedException, $checkPreviousClass = true): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('fopenFailuresProvider')]
+ 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();
@@ -183,7 +173,7 @@ class FileTest extends TestCase {
if ($thrownException !== null) {
$storage->expects($this->once())
->method('writeStream')
- ->will($this->throwException($thrownException));
+ ->willThrowException($thrownException);
} else {
$storage->expects($this->once())
->method('writeStream')
@@ -221,12 +211,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 +235,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,64 +259,64 @@ 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
],
];
}
/**
* Test putting a file with string Mtime
- * @dataProvider legalMtimeProvider
*/
- public function testPutSingleFileLegalMtime($requestMtime, $resultMtime): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('legalMtimeProvider')]
+ public function testPutSingleFileLegalMtime(mixed $requestMtime, ?int $resultMtime): void {
$request = new Request([
'server' => [
'HTTP_X_OC_MTIME' => (string)$requestMtime,
@@ -482,7 +472,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 +559,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 +599,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 +620,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 +670,7 @@ class FileTest extends TestCase {
public function testDeleteWhenAllowed(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -704,7 +694,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 +714,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 +739,7 @@ class FileTest extends TestCase {
$this->expectException(Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -923,7 +913,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 +935,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 +957,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..4df3accfda9 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',
@@ -313,7 +294,7 @@ class FilesPluginTest extends TestCase {
$node->expects($this->once())
->method('getDirectDownload')
- ->will($this->throwException(new StorageNotAvailableException()));
+ ->willThrowException(new StorageNotAvailableException());
$this->plugin->handleGetProperties(
$propFind,
@@ -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,
@@ -687,25 +652,17 @@ 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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('downloadHeadersProvider')]
+ 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 +679,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): void {
+ $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..176949f999c 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'],
@@ -917,10 +846,8 @@ class FilesReportPluginTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider filesBaseUriProvider
- */
- public function testFilesBaseUri($uri, $reportPath, $expectedUri): void {
- $this->assertEquals($expectedUri, $this->invokePrivate($this->plugin, 'getFilesBaseUri', [$uri, $reportPath]));
+ #[\PHPUnit\Framework\Attributes\DataProvider('filesBaseUriProvider')]
+ 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..11970769a1e 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'],
@@ -50,10 +51,8 @@ class NodeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider davPermissionsProvider
- */
- public function testDavPermissions($permissions, $type, $shared, $shareRootPermissions, $mounted, $internalPath, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('davPermissionsProvider')]
+ 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 +93,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],
@@ -142,21 +139,15 @@ class NodeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider sharePermissionsProvider
- */
- public function testSharePermissions($type, $user, $permissions, $expected): void {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('sharePermissionsProvider')]
+ 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 +160,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 +168,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 +178,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 +203,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 +211,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,26 +224,22 @@ 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],
];
}
- /**
- * @dataProvider sanitizeMtimeProvider
- */
- public function testSanitizeMtime($mtime, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('sanitizeMtimeProvider')]
+ public function testSanitizeMtime(string|int $mtime, int $expected): void {
$view = $this->getMockBuilder(View::class)
->disableOriginalConstructor()
->getMock();
@@ -272,26 +252,20 @@ 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],
];
}
- /**
- * @dataProvider invalidSanitizeMtimeProvider
- */
- public function testInvalidSanitizeMtime($mtime): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('invalidSanitizeMtimeProvider')]
+ 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..b07778e4fbd 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', ''],
@@ -38,10 +39,8 @@ class ObjectTreeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider copyDataProvider
- */
- public function testCopy($sourcePath, $targetPath, $targetParent): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('copyDataProvider')]
+ public function testCopy(string $sourcePath, string $targetPath, string $targetParent): void {
$view = $this->createMock(View::class);
$view->expects($this->once())
->method('verifyPath')
@@ -67,7 +66,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();
@@ -82,9 +81,7 @@ class ObjectTreeTest extends \Test\TestCase {
$objectTree->copy($sourcePath, $targetPath);
}
- /**
- * @dataProvider copyDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('copyDataProvider')]
public function testCopyFailNotCreatable($sourcePath, $targetPath, $targetParent): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -110,7 +107,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();
@@ -123,27 +120,17 @@ class ObjectTreeTest extends \Test\TestCase {
$objectTree->copy($sourcePath, $targetPath);
}
- /**
- * @dataProvider nodeForPathProvider
- */
+ #[\PHPUnit\Framework\Attributes\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 +151,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 +200,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 +208,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 +224,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 +232,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..e32d2671063 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 => [
@@ -479,10 +463,8 @@ class PrincipalTest extends TestCase {
['{http://sabredav.org/ns}email-address' => 'foo']));
}
- /**
- * @dataProvider searchPrincipalsDataProvider
- */
- public function testSearchPrincipals($sharingEnabled, $groupsOnly, $test, $result): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('searchPrincipalsDataProvider')]
+ public function testSearchPrincipals(bool $sharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
->method('shareAPIEnabled')
->willReturn($sharingEnabled);
@@ -556,7 +538,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']],
@@ -842,10 +824,8 @@ class PrincipalTest extends TestCase {
$this->assertEquals(null, $this->connector->findByUri('mailto:user@foo.com', 'principals/users'));
}
- /**
- * @dataProvider findByUriWithGroupRestrictionDataProvider
- */
- public function testFindByUriWithGroupRestriction($uri, $email, $expects): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('findByUriWithGroupRestrictionDataProvider')]
+ public function testFindByUriWithGroupRestriction(string $uri, string $email, ?string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -872,41 +852,31 @@ 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],
];
}
- /**
- * @dataProvider findByUriWithoutGroupRestrictionDataProvider
- */
- public function testFindByUriWithoutGroupRestriction($uri, $email, $expects): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('findByUriWithoutGroupRestrictionDataProvider')]
+ public function testFindByUriWithoutGroupRestriction(string $uri, string $email, string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -928,7 +898,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..fef62b51c67 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);
}
@@ -115,19 +114,17 @@ class PublicAuthTest extends \Test\TestCase {
->expects($this->once())
->method('getShareByToken')
->with('GX9HSGQrGE')
- ->will($this->throwException(new ShareNotFound()));
+ ->willThrowException(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..6fe2d6ccabe 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,75 +14,55 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('lengthProvider')]
+ 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);
}
- /**
- * @dataProvider quotaOkayProvider
- */
- public function testCheckQuota($quota, $headers): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('quotaOkayProvider')]
+ 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('');
$this->assertTrue($result);
}
- /**
- * @dataProvider quotaExceededProvider
- */
- public function testCheckExceededQuota($quota, $headers): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('quotaExceededProvider')]
+ 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('');
}
- /**
- * @dataProvider quotaOkayProvider
- */
- public function testCheckQuotaOnPath($quota, $headers): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('quotaOkayProvider')]
+ 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 +81,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 +89,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function lengthProvider() {
+ public static function lengthProvider(): array {
return [
[null, []],
[1024, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
@@ -124,7 +105,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 +124,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 +136,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..7d3488e6b5a 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.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
use OCP\AppFramework\Http;
+use OCP\Files\FileInfo;
/**
* Class DeleteTest
@@ -18,7 +20,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 +31,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(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 d02f1d76cac..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');
}
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..1c8e29dab38 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();
@@ -71,13 +54,9 @@ class SharesPluginTest extends \Test\TestCase {
$this->plugin->initialize($this->server);
}
- /**
- * @dataProvider sharesGetPropertiesDataProvider
- */
- public function testGetProperties($shareTypes): void {
- $sabreNode = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('sharesGetPropertiesDataProvider')]
+ public function testGetProperties(array $shareTypes): void {
+ $sabreNode = $this->createMock(Node::class);
$sabreNode->expects($this->any())
->method('getId')
->willReturn(123);
@@ -86,9 +65,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);
@@ -140,10 +117,8 @@ class SharesPluginTest extends \Test\TestCase {
$this->assertEquals($shareTypes, $result[200][self::SHARETYPES_PROPERTYNAME]->getShareTypes());
}
- /**
- * @dataProvider sharesGetPropertiesDataProvider
- */
- public function testPreloadThenGetProperties($shareTypes): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('sharesGetPropertiesDataProvider')]
+ public function testPreloadThenGetProperties(array $shareTypes): void {
$sabreNode1 = $this->createMock(File::class);
$sabreNode1->method('getId')
->willReturn(111);
@@ -182,7 +157,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 +243,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 +262,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..5003280bfdc 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')
@@ -93,13 +58,9 @@ class TagsPluginTest extends \Test\TestCase {
$this->plugin->initialize($this->server);
}
- /**
- * @dataProvider tagsGetPropertiesDataProvider
- */
- public function testGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagsGetPropertiesDataProvider')]
+ public function testGetProperties(array $tags, array $requestedProperties, array $expectedProperties): void {
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -132,19 +93,13 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEquals($expectedProperties, $result);
}
- /**
- * @dataProvider tagsGetPropertiesDataProvider
- */
- public function testPreloadThenGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node1 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagsGetPropertiesDataProvider')]
+ 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 +112,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 +167,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 +223,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 +243,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 +259,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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// it will untag tag3
$this->tagger->expects($this->once())
@@ -339,13 +292,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 +312,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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// properties to set
$propPatch = new \Sabre\DAV\PropPatch([
@@ -385,15 +340,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 +377,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 +402,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..15b18d6c1b1 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,16 +46,14 @@ class InvitationResponseControllerTest extends TestCase {
);
}
- public function attendeeProvider(): array {
+ public static function attendeeProvider(): array {
return [
'local attendee' => [false],
'external attendee' => [true]
];
}
- /**
- * @dataProvider attendeeProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attendeeProvider')]
public function testAccept(bool $isExternalAttendee): void {
$this->buildQueryExpects('TOKEN123', [
'id' => 0,
@@ -127,9 +115,7 @@ EOF;
$this->assertTrue($called);
}
- /**
- * @dataProvider attendeeProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attendeeProvider')]
public function testAcceptSequence(bool $isExternalAttendee): void {
$this->buildQueryExpects('TOKEN123', [
'id' => 0,
@@ -191,9 +177,7 @@ EOF;
$this->assertTrue($called);
}
- /**
- * @dataProvider attendeeProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attendeeProvider')]
public function testAcceptRecurrenceId(bool $isExternalAttendee): void {
$this->buildQueryExpects('TOKEN123', [
'id' => 0,
@@ -283,9 +267,7 @@ EOF;
$this->assertEquals([], $response->getParams());
}
- /**
- * @dataProvider attendeeProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attendeeProvider')]
public function testDecline(bool $isExternalAttendee): void {
$this->buildQueryExpects('TOKEN123', [
'id' => 0,
@@ -354,9 +336,7 @@ EOF;
$this->assertEquals(['token' => 'TOKEN123'], $response->getParams());
}
- /**
- * @dataProvider attendeeProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attendeeProvider')]
public function testProcessMoreOptionsResult(bool $isExternalAttendee): void {
$this->request->expects($this->once())
->method('getParam')
@@ -424,7 +404,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..0e82ef0a3ae 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,25 +9,22 @@
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;
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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesExceptions')]
+ 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 +33,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..2a85c0cbecd 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
@@ -280,9 +271,7 @@ class CustomPropertiesBackendTest extends TestCase {
}
- /**
- * @dataProvider propFindPrincipalScheduleDefaultCalendarProviderUrlProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('propFindPrincipalScheduleDefaultCalendarProviderUrlProvider')]
public function testPropFindPrincipalScheduleDefaultCalendarUrl(
string $user,
array $nodes,
@@ -344,9 +333,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals($returnedProps, $setProps);
}
- /**
- * @dataProvider propPatchProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('propPatchProvider')]
public function testPropPatch(string $path, array $existing, array $props, array $result): void {
$this->server->method('calculateUri')
->willReturnCallback(function ($uri) {
@@ -373,7 +360,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']],
@@ -427,25 +414,21 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals([], $storedProps);
}
- /**
- * @dataProvider deleteProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('deleteProvider')]
public function testDelete(string $path): void {
$this->insertProps('dummy_user_42', $path, ['foo' => 'bar']);
$this->backend->delete($path);
$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)]
];
}
- /**
- * @dataProvider moveProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('moveProvider')]
public function testMove(string $source, string $target): void {
$this->insertProps('dummy_user_42', $source, ['foo' => 'bar']);
$this->backend->move($source, $target);
@@ -453,7 +436,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 +458,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..2756152a6e2 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);
@@ -199,14 +192,7 @@ class GroupPrincipalTest extends \Test\TestCase {
['{DAV:}displayname' => 'Foo']));
}
- /**
- * @dataProvider searchPrincipalsDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $test
- * @param array $result
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('searchPrincipalsDataProvider')]
public function testSearchPrincipals(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
->method('shareAPIEnabled')
@@ -264,7 +250,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']],
@@ -277,14 +263,7 @@ class GroupPrincipalTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider findByUriDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $findUri
- * @param string|null $result
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('findByUriDataProvider')]
public function testFindByUri(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $findUri, ?string $result): void {
$this->shareManager->expects($this->once())
->method('shareAPIEnabled')
@@ -320,7 +299,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 +316,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..8e410eb0a78 100644
--- a/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
+++ b/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
@@ -10,15 +10,19 @@ declare(strict_types=1);
namespace OCA\DAV\Tests\unit\DAV\Listener;
+use OCA\DAV\BackgroundJob\UserStatusAutomation;
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\BackgroundJob\IJobList;
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 +31,40 @@ 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->jobList = $this->createMock(IJobList::class);
+
$this->userEventsListener = new UserEventsListener(
$this->userManager,
$this->syncService,
$this->calDavBackend,
$this->cardDavBackend,
$this->defaults,
- $this->defaultContactService,
+ $this->exampleContactService,
+ $this->exampleEventService,
+ $this->logger,
+ $this->jobList,
);
}
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 +76,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 +93,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 +110,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 +133,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())
@@ -142,4 +157,27 @@ class UserEventsListenerTest extends TestCase {
$this->userEventsListener->preDeleteUser($user);
$this->userEventsListener->postDeleteUser('newUser');
}
+
+ public function testDeleteUserAutomationEvent(): void {
+ $user = $this->createMock(IUser::class);
+ $user->expects($this->once())->method('getUID')->willReturn('newUser');
+
+ $this->syncService->expects($this->once())
+ ->method('deleteUser');
+
+ $this->calDavBackend->expects($this->once())->method('getUsersOwnCalendars')->willReturn([
+ ['id' => []]
+ ]);
+ $this->calDavBackend->expects($this->once())->method('getSubscriptionsForUser')->willReturn([
+ ['id' => []]
+ ]);
+ $this->cardDavBackend->expects($this->once())->method('getUsersOwnAddressBooks')->willReturn([
+ ['id' => []]
+ ]);
+
+ $this->jobList->expects(self::once())->method('remove')->with(UserStatusAutomation::class, ['userId' => 'newUser']);
+
+ $this->userEventsListener->preDeleteUser($user);
+ $this->userEventsListener->postDeleteUser('newUser');
+ }
}
diff --git a/apps/dav/tests/unit/DAV/Sharing/BackendTest.php b/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
index dd2681d149f..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 {
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/SystemPrincipalBackendTest.php b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
index 32916804080..3df861accf2 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,19 @@
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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesPrefix')]
+ 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 [
[[], ''],
[[[
@@ -38,18 +36,14 @@ class SystemPrincipalBackendTest extends TestCase {
];
}
- /**
- * @dataProvider providesPath
- * @param $expected
- * @param $path
- */
- public function testGetPrincipalByPath($expected, $path): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesPath')]
+ 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'],
@@ -61,59 +55,43 @@ class SystemPrincipalBackendTest extends TestCase {
];
}
- /**
- * @dataProvider providesPrincipalForGetGroupMemberSet
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
- */
- public function testGetGroupMemberSetExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesPrincipalForGetGroupMemberSet')]
+ 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');
$this->assertEquals(['principals/system/system'], $result);
}
- /**
- * @dataProvider providesPrincipalForGetGroupMembership
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
- */
- public function testGetGroupMembershipExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesPrincipalForGetGroupMembership')]
+ 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..eefbc53fd22 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,27 +71,31 @@ 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],
+ [false, true, true, true],
// has no attribute permissions-download - can get file
- [false, null, true],
- // has attribute permissions-download disabled- cannot get the file
- [false, false, false],
+ [false, null, true, true],
// has attribute permissions-download enabled - can get file version
- [true, true, true],
+ [true, true, true, true],
// has no attribute permissions-download - can get file version
- [true, null, true],
- // has attribute permissions-download disabled- cannot get the file version
- [true, false, false],
+ [true, null, true, true],
+ // has attribute permissions-download disabled - cannot get the file
+ [false, false, false, false],
+ // has attribute permissions-download disabled - cannot get the file version
+ [true, false, false, false],
+
+ // Has global allowViewWithoutDownload option enabled
+ // has attribute permissions-download disabled - can get file
+ [false, false, false, true],
+ // has attribute permissions-download disabled - can get file version
+ [true, false, false, true],
];
}
- /**
- * @dataProvider providesDataForCanGet
- */
- public function testCanGet(bool $isVersion, ?bool $attrEnabled, bool $expectCanDownloadFile): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesDataForCanGet')]
+ public function testCanGet(bool $isVersion, ?bool $attrEnabled, bool $expectCanDownloadFile, bool $allowViewWithoutDownload): void {
$nodeInfo = $this->createMock(File::class);
if ($isVersion) {
$davPath = 'versions/alice/versions/117/123456';
@@ -151,6 +155,10 @@ class ViewOnlyPluginTest extends TestCase {
->with('permissions', 'download')
->willReturn($attrEnabled);
+ $share->expects($this->once())
+ ->method('canSeeContent')
+ ->willReturn($allowViewWithoutDownload);
+
if (!$expectCanDownloadFile) {
$this->expectException(Forbidden::class);
}
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 06fb48a64d8..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();
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 dc1e067dafd..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,29 +21,25 @@ 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;
+ private FilesDropPlugin $plugin;
- /** @var FilesDropPlugin */
- private $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();
@@ -56,28 +56,7 @@ class FilesDropPluginTest extends TestCase {
->willReturn('token');
}
- public function testInitialize(): void {
- $this->server->expects($this->at(0))
- ->method('on')
- ->with(
- $this->equalTo('beforeMethod:*'),
- $this->equalTo([$this->plugin, 'beforeMethod']),
- $this->equalTo(999)
- );
- $this->server->expects($this->at(1))
- ->method('on')
- ->with(
- $this->equalTo('method:MKCOL'),
- $this->equalTo([$this->plugin, 'onMkcol']),
- );
-
- $this->plugin->initialize($this->server);
- }
-
public function testNotEnabled(): void {
- $this->view->expects($this->never())
- ->method($this->anything());
-
$this->request->expects($this->never())
->method($this->anything());
@@ -86,7 +65,6 @@ 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')
@@ -98,9 +76,10 @@ class FilesDropPluginTest extends TestCase {
$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')
@@ -111,7 +90,6 @@ class FilesDropPluginTest extends TestCase {
public function testFileAlreadyExistsValid(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
@@ -123,14 +101,9 @@ class FilesDropPluginTest extends TestCase {
$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')
@@ -141,20 +114,18 @@ class FilesDropPluginTest extends TestCase {
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->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
@@ -174,7 +145,6 @@ class FilesDropPluginTest extends TestCase {
public function testSubdirPut(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
@@ -193,14 +163,30 @@ class FilesDropPluginTest extends TestCase {
$this->request->method('getBaseUrl')
->willReturn('https://example.com');
- $this->view->method('file_exists')
- ->willReturnCallback(function ($path) {
- if ($path === 'file.txt' || $path === '/folder/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')
@@ -211,7 +197,6 @@ class FilesDropPluginTest extends TestCase {
public function testRecursiveFolderCreation(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
@@ -222,45 +207,45 @@ class FilesDropPluginTest extends TestCase {
$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->view->method('file_exists')
- ->willReturn(false);
-
- $this->view->expects($this->exactly(4))
- ->method('file_exists')
- ->withConsecutive(
- ['/nickname'],
- ['/nickname/folder'],
- ['/nickname/folder/subfolder'],
- ['/nickname/folder/subfolder/file.txt']
- )
- ->willReturnOnConsecutiveCalls(
- false,
- false,
- false,
- false,
- );
- $this->view->expects($this->exactly(3))
- ->method('mkdir')
- ->withConsecutive(
- ['/nickname'],
- ['/nickname/folder'],
- ['/nickname/folder/subfolder'],
- );
$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->setView($this->view);
$this->plugin->setShare($this->share);
$this->response->expects($this->once())
diff --git a/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php b/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
index 78769c7fb47..8519dca7126 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 {
@@ -38,9 +36,7 @@ class ActivityUpdaterListenerTest extends TestCase {
);
}
- /**
- * @dataProvider dataForTestHandleCalendarObjectDeletedEvent
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataForTestHandleCalendarObjectDeletedEvent')]
public function testHandleCalendarObjectDeletedEvent(int $calendarId, array $calendarData, array $shares, array $objectData, bool $createsActivity): void {
$event = new CalendarObjectDeletedEvent($calendarId, $calendarData, $shares, $objectData);
$this->logger->expects($this->once())->method('debug')->with(
@@ -55,16 +51,14 @@ 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],
];
}
- /**
- * @dataProvider dataForTestHandleCalendarDeletedEvent
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataForTestHandleCalendarDeletedEvent')]
public function testHandleCalendarDeletedEvent(int $calendarId, array $calendarData, array $shares, bool $createsActivity): void {
$event = new CalendarDeletedEvent($calendarId, $calendarData, $shares);
$this->logger->expects($this->once())->method('debug')->with(
@@ -77,7 +71,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..8e7bf366cbf 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): void {
+ $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..a9758470573 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 {
@@ -58,13 +45,7 @@ class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
);
}
- /**
- * @dataProvider dataTestRun
- * @param array $subscriptions
- * @param array $userExists
- * @param int $deletions
- * @throws \Exception
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRun')]
public function testRun(array $subscriptions, array $userExists, int $deletions): void {
$qb = $this->createMock(IQueryBuilder::class);
@@ -132,21 +113,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..58e588aa68d 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): void {
+ $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..f4dc13a5c06 100644
--- a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
@@ -17,43 +17,34 @@ 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 {
-
- /** @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 .
- 'VERSION:3.0' . PHP_EOL .
- 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
- 'UID:Test' . PHP_EOL .
- 'FN:FN of Test' . PHP_EOL .
- 'N:Test;;;;' . PHP_EOL .
- 'EMAIL:forrestgump@example.com' . PHP_EOL .
- 'END:VCARD';
-
- private $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 .
- 'UID:Test2' . PHP_EOL .
- 'FN:FN of Test2' . PHP_EOL .
- 'N:Test2;;;;' . PHP_EOL .
- 'END:VCARD';
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CardDavBackend&MockObject $backend;
+ private ContactsSearchProvider $provider;
+
+ 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
+ . 'FN:FN of Test' . PHP_EOL
+ . 'N:Test;;;;' . PHP_EOL
+ . 'EMAIL:forrestgump@example.com' . PHP_EOL
+ . 'END:VCARD';
+
+ 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
+ . 'UID:Test2' . PHP_EOL
+ . 'FN:FN of Test2' . PHP_EOL
+ . 'N:Test2;;;;' . PHP_EOL
+ . 'END:VCARD';
protected function setUp(): void {
parent::setUp();
@@ -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..d5d536fd201 100644
--- a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
@@ -18,204 +18,196 @@ 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 .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161008' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ 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
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161008' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// TIMED SAME DAY
- private $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'DTEND;TZID=Europe/Berlin:20160816T100000' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'DTEND;TZID=Europe/Berlin:20160816T100000' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// TIMED DIFFERENT DAY
- private $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'DTEND;TZID=Europe/Berlin:20160817T100000' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'DTEND;TZID=Europe/Berlin:20160817T100000' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// ALL-DAY ONE-DAY
- private $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 .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161006' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ 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
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161006' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// ALL-DAY MULTIPLE DAYS
- private $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 .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DTEND;VALUE=DATE:20161008' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ 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
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DTEND;VALUE=DATE:20161008' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// DURATION
- private $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 .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'DURATION:P5D' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ 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
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'DURATION:P5D' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// NO DTEND - DATE
- private $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 .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20161004T144433Z' . PHP_EOL .
- 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL .
- 'TRANSP:TRANSPARENT' . PHP_EOL .
- 'DTSTART;VALUE=DATE:20161005' . PHP_EOL .
- 'DTSTAMP:20161004T144437Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ 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
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20161004T144433Z' . PHP_EOL
+ . 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL
+ . 'TRANSP:TRANSPARENT' . PHP_EOL
+ . 'DTSTART;VALUE=DATE:20161005' . PHP_EOL
+ . 'DTSTAMP:20161004T144437Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
// NO DTEND - DATE-TIME
- private $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'PRODID:-//Tests//' . PHP_EOL .
- 'CALSCALE:GREGORIAN' . PHP_EOL .
- 'BEGIN:VTIMEZONE' . PHP_EOL .
- 'TZID:Europe/Berlin' . PHP_EOL .
- 'BEGIN:DAYLIGHT' . PHP_EOL .
- 'TZOFFSETFROM:+0100' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19810329T020000' . PHP_EOL .
- 'TZNAME:GMT+2' . PHP_EOL .
- 'TZOFFSETTO:+0200' . PHP_EOL .
- 'END:DAYLIGHT' . PHP_EOL .
- 'BEGIN:STANDARD' . PHP_EOL .
- 'TZOFFSETFROM:+0200' . PHP_EOL .
- 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL .
- 'DTSTART:19961027T030000' . PHP_EOL .
- 'TZNAME:GMT+1' . PHP_EOL .
- 'TZOFFSETTO:+0100' . PHP_EOL .
- 'END:STANDARD' . PHP_EOL .
- 'END:VTIMEZONE' . PHP_EOL .
- 'BEGIN:VEVENT' . PHP_EOL .
- 'CREATED:20160809T163629Z' . PHP_EOL .
- 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL .
- 'TRANSP:OPAQUE' . PHP_EOL .
- 'SUMMARY:Test Europe Berlin' . PHP_EOL .
- 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL .
- 'DTSTAMP:20160809T163632Z' . PHP_EOL .
- 'SEQUENCE:0' . PHP_EOL .
- 'END:VEVENT' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'PRODID:-//Tests//' . PHP_EOL
+ . 'CALSCALE:GREGORIAN' . PHP_EOL
+ . 'BEGIN:VTIMEZONE' . PHP_EOL
+ . 'TZID:Europe/Berlin' . PHP_EOL
+ . 'BEGIN:DAYLIGHT' . PHP_EOL
+ . 'TZOFFSETFROM:+0100' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19810329T020000' . PHP_EOL
+ . 'TZNAME:GMT+2' . PHP_EOL
+ . 'TZOFFSETTO:+0200' . PHP_EOL
+ . 'END:DAYLIGHT' . PHP_EOL
+ . 'BEGIN:STANDARD' . PHP_EOL
+ . 'TZOFFSETFROM:+0200' . PHP_EOL
+ . 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL
+ . 'DTSTART:19961027T030000' . PHP_EOL
+ . 'TZNAME:GMT+1' . PHP_EOL
+ . 'TZOFFSETTO:+0100' . PHP_EOL
+ . 'END:STANDARD' . PHP_EOL
+ . 'END:VTIMEZONE' . PHP_EOL
+ . 'BEGIN:VEVENT' . PHP_EOL
+ . 'CREATED:20160809T163629Z' . PHP_EOL
+ . 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL
+ . 'TRANSP:OPAQUE' . PHP_EOL
+ . 'SUMMARY:Test Europe Berlin' . PHP_EOL
+ . 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL
+ . 'DTSTAMP:20160809T163632Z' . PHP_EOL
+ . 'SEQUENCE:0' . PHP_EOL
+ . 'END:VEVENT' . PHP_EOL
+ . 'END:VCALENDAR';
protected function setUp(): void {
parent::setUp();
@@ -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();
@@ -427,12 +418,7 @@ class EventsSearchProviderTest extends TestCase {
$this->assertEquals('absolute-url-to-route', $actual);
}
- /**
- * @param string $ics
- * @param string $expectedSubline
- *
- * @dataProvider generateSublineDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('generateSublineDataProvider')]
public function testGenerateSubline(string $ics, string $expectedSubline): void {
$vCalendar = Reader::read($ics, Reader::OPTION_FORGIVING);
$eventComponent = $vCalendar->VEVENT;
@@ -450,15 +436,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..7f9a2842de9 100644
--- a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
@@ -17,89 +17,80 @@ 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 .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE AND COMPLETED
- private $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'COMPLETED:20070707T100000Z' . PHP_EOL .
- 'DUE;VALUE=DATE:20070501' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'COMPLETED:20070707T100000Z' . PHP_EOL
+ . 'DUE;VALUE=DATE:20070501' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// COMPLETED ONLY
- private $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'COMPLETED:20070707T100000Z' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'COMPLETED:20070707T100000Z' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE DATE
- private $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'DUE;VALUE=DATE:20070501' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'DUE;VALUE=DATE:20070501' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
// DUE DATETIME
- private $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
- 'PRODID:TEST' . PHP_EOL .
- 'VERSION:2.0' . PHP_EOL .
- 'BEGIN:VTODO' . PHP_EOL .
- 'UID:20070313T123432Z-456553@example.com' . PHP_EOL .
- 'DTSTAMP:20070313T123432Z' . PHP_EOL .
- 'DUE:20070709T130000Z' . PHP_EOL .
- 'SUMMARY:Task title' . PHP_EOL .
- 'STATUS:NEEDS-ACTION' . PHP_EOL .
- 'END:VTODO' . PHP_EOL .
- 'END:VCALENDAR';
+ private static string $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL
+ . 'PRODID:TEST' . PHP_EOL
+ . 'VERSION:2.0' . PHP_EOL
+ . 'BEGIN:VTODO' . PHP_EOL
+ . 'UID:20070313T123432Z-456553@example.com' . PHP_EOL
+ . 'DTSTAMP:20070313T123432Z' . PHP_EOL
+ . 'DUE:20070709T130000Z' . PHP_EOL
+ . 'SUMMARY:Task title' . PHP_EOL
+ . 'STATUS:NEEDS-ACTION' . PHP_EOL
+ . 'END:VTODO' . PHP_EOL
+ . 'END:VCALENDAR';
protected function setUp(): void {
parent::setUp();
@@ -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();
@@ -299,30 +289,25 @@ class TasksSearchProviderTest extends TestCase {
$this->assertEquals('absolute-url-link-to-route-tasks.indexcalendars/uri-john.doe/tasks/task-uri.ics', $actual);
}
- /**
- * @param string $ics
- * @param string $expectedSubline
- *
- * @dataProvider generateSublineDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('generateSublineDataProvider')]
public function testGenerateSubline(string $ics, string $expectedSubline): void {
$vCalendar = Reader::read($ics, Reader::OPTION_FORGIVING);
$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..9ffe86d3053 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.
@@ -19,10 +20,8 @@ use OCP\IRequest;
*/
class ServerTest extends \Test\TestCase {
- /**
- * @dataProvider providesUris
- */
- public function test($uri, array $plugins): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesUris')]
+ 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 +32,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..027b66a6fb2 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]];
+ }
+
+ #[\PHPUnit\Framework\Attributes\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());
+ }
+
+ #[\PHPUnit\Framework\Attributes\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..0f423624fb8
--- /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')],
+ ];
+ }
+
+ #[\PHPUnit\Framework\Attributes\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);
+ }
+
+ #[\PHPUnit\Framework\Attributes\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..032759d64b7 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): void {
+ $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..39342811377 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,24 +92,22 @@ 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',
],
];
}
- /**
- * @dataProvider tagNodeDeleteProviderPermissionException
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagNodeDeleteProviderPermissionException')]
public function testDeleteTagExpectedException(ISystemTag $tag, $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
@@ -141,7 +138,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)
@@ -153,7 +150,7 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
$this->tagMapper->expects($this->once())
->method('unassignTags')
->with(123, 'files', 1)
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->getMappingNode($tag, [123])->delete();
}
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
index 32ee733dce8..594b5e15db6 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,12 @@ class SystemTagNodeTest extends \Test\TestCase {
);
}
- public function adminFlagProvider() {
+ public static function adminFlagProvider(): array {
return [[true], [false]];
}
- /**
- * @dataProvider adminFlagProvider
- */
- public function testGetters($isAdmin): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('adminFlagProvider')]
+ public function testGetters(bool $isAdmin): void {
$tag = new SystemTag('1', 'Test', true, true);
$node = $this->getTagNode($isAdmin, $tag);
$this->assertEquals('1', $node->getName());
@@ -79,33 +64,31 @@ 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']
],
];
}
- /**
- * @dataProvider tagNodeProvider
- */
- public function testUpdateTag($isAdmin, ISystemTag $originalTag, $changedArgs): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagNodeProvider')]
+ public function testUpdateTag(bool $isAdmin, ISystemTag $originalTag, array $changedArgs): void {
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($originalTag)
@@ -121,51 +104,49 @@ 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',
],
];
}
- /**
- * @dataProvider tagNodeProviderPermissionException
- */
- public function testUpdateTagPermissionException(ISystemTag $originalTag, $changedArgs, $expectedException = null): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagNodeProviderPermissionException')]
+ public function testUpdateTagPermissionException(ISystemTag $originalTag, array $changedArgs, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($originalTag)
@@ -193,7 +174,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)
@@ -205,7 +186,7 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->tagManager->expects($this->once())
->method('updateTag')
->with(1, 'Renamed', true, true)
- ->will($this->throwException(new TagAlreadyExistsException()));
+ ->willThrowException(new TagAlreadyExistsException());
$this->getTagNode(false, $tag)->update('Renamed', true, true, null);
}
@@ -213,7 +194,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)
@@ -225,15 +206,13 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->tagManager->expects($this->once())
->method('updateTag')
->with(1, 'Renamed', true, true)
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->getTagNode(false, $tag)->update('Renamed', true, true, null);
}
- /**
- * @dataProvider adminFlagProvider
- */
- public function testDeleteTag($isAdmin): void {
- $tag = new SystemTag(1, 'tag1', true, true);
+ #[\PHPUnit\Framework\Attributes\DataProvider('adminFlagProvider')]
+ 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,25 +226,23 @@ 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',
],
];
}
- /**
- * @dataProvider tagNodeDeleteProviderPermissionException
- */
- public function testDeleteTagPermissionException(ISystemTag $tag, $expectedException): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('tagNodeDeleteProviderPermissionException')]
+ public function testDeleteTagPermissionException(ISystemTag $tag, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -281,7 +258,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)
@@ -289,7 +266,7 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->tagManager->expects($this->once())
->method('deleteTags')
->with('1')
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->getTagNode(true, $tag)->delete();
}
}
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
index ab5253147a7..e0c4685c1fb 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,
@@ -183,10 +142,8 @@ class SystemTagPluginTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider getPropertiesDataProvider
- */
- public function testGetProperties(ISystemTag $systemTag, $groups, $requestedProperties, $expectedProperties): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('getPropertiesDataProvider')]
+ public function testGetProperties(ISystemTag $systemTag, array $groups, array $requestedProperties, array $expectedProperties): void {
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -237,7 +194,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 +233,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 +291,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,17 +332,15 @@ class SystemTagPluginTest extends \Test\TestCase {
$propPatch->commit();
}
- public function createTagInsufficientPermissionsProvider() {
+ public static function createTagInsufficientPermissionsProvider(): array {
return [
[true, false, ''],
[false, true, ''],
[true, true, 'group1|group2'],
];
}
- /**
- * @dataProvider createTagInsufficientPermissionsProvider
- */
- public function testCreateNotAssignableTagAsRegularUser($userVisible, $userAssignable, $groups): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('createTagInsufficientPermissionsProvider')]
+ public function testCreateNotAssignableTagAsRegularUser(bool $userVisible, bool $userAssignable, string $groups): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Not sufficient permissions');
@@ -408,9 +363,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 +374,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 +394,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 +402,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 +413,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 +440,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- public function createTagProvider() {
+ public static function createTagProvider(): array {
return [
[true, false, ''],
[false, false, ''],
@@ -505,10 +448,8 @@ class SystemTagPluginTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider createTagProvider
- */
- public function testCreateTagInByIdCollection($userVisible, $userAssignable, $groups): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('createTagProvider')]
+ public function testCreateTagInByIdCollection(bool $userVisible, bool $userAssignable, string $groups): void {
$this->user->expects($this->once())
->method('getUID')
->willReturn('admin');
@@ -518,7 +459,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 +471,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 +492,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 +519,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 +536,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 +544,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 +560,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,13 +591,11 @@ 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')
- ->will($this->throwException(new \Sabre\DAV\Exception\NotFound()));
+ ->willThrowException(new \Sabre\DAV\Exception\NotFound());
$this->tagManager->expects($this->never())
->method('createTag');
@@ -676,12 +603,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')
@@ -690,10 +613,8 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- /**
- * @dataProvider nodeClassProvider
- */
- public function testCreateTagConflict($nodeClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('nodeClassProvider')]
+ public function testCreateTagConflict(string $nodeClass): void {
$this->expectException(\Sabre\DAV\Exception\Conflict::class);
$this->user->expects($this->once())
@@ -711,25 +632,19 @@ 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)
- ->will($this->throwException(new TagAlreadyExistsException('Tag already exists')));
+ ->willThrowException(new TagAlreadyExistsException('Tag already exists'));
$this->tree->expects($this->any())
->method('getNodeForPath')
->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..8f7848452fe 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,35 +94,35 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertEquals($tag, $childNode->getSystemTag());
}
-
+
public function testGetChildInvalidName(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->tagManager->expects($this->once())
->method('getTagsByIds')
->with(['invalid'])
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
$this->getNode()->getChild('invalid');
}
-
+
public function testGetChildNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
$this->tagManager->expects($this->once())
->method('getTagsByIds')
->with(['444'])
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$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,18 +178,16 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertCount(0, $this->getNode()->getChildren());
}
- public function childExistsProvider() {
+ public static function childExistsProvider(): array {
return [
[true, true],
[false, false],
];
}
- /**
- * @dataProvider childExistsProvider
- */
- public function testChildExists($userVisible, $expectedResult): void {
- $tag = new SystemTag(123, 'One', $userVisible, false);
+ #[\PHPUnit\Framework\Attributes\DataProvider('childExistsProvider')]
+ public function testChildExists(bool $userVisible, bool $expectedResult): void {
+ $tag = new SystemTag('123', 'One', $userVisible, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -220,19 +205,19 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->tagManager->expects($this->once())
->method('getTagsByIds')
->with(['123'])
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->assertFalse($this->getNode()->childExists('123'));
}
-
+
public function testChildExistsBadRequest(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->tagManager->expects($this->once())
->method('getTagsByIds')
->with(['invalid'])
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
$this->getNode()->childExists('invalid');
}
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
index 66052847f16..5aea1242e2a 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'],
@@ -95,10 +93,8 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider permissionsProvider
- */
- public function testAssignTagNoPermission($userVisible, $userAssignable, $expectedException): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('permissionsProvider')]
+ public function testAssignTagNoPermission(bool $userVisible, bool $userAssignable, string $expectedException): void {
$tag = new SystemTag('1', 'Test', $userVisible, $userAssignable);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
@@ -133,7 +129,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->tagManager->expects($this->once())
->method('getTagsByIds')
->with(['555'])
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->getNode()->createFile('555');
}
@@ -146,7 +142,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 +168,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)
@@ -210,7 +206,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->tagMapper->expects($this->once())
->method('haveTag')
->with([111], 'files', 'badid')
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
$this->getNode()->getChild('badid');
}
@@ -222,15 +218,15 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->tagMapper->expects($this->once())
->method('haveTag')
->with([111], 'files', '777')
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->getNode()->getChild('777');
}
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 +261,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 +282,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')
@@ -314,7 +310,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->tagMapper->expects($this->once())
->method('haveTag')
->with([111], 'files', '555')
- ->will($this->throwException(new TagNotFoundException()));
+ ->willThrowException(new TagNotFoundException());
$this->assertFalse($this->getNode()->childExists('555'));
}
@@ -326,7 +322,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->tagMapper->expects($this->once())
->method('haveTag')
->with([111], 'files', '555')
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
$this->getNode()->childExists('555');
}
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..ec5d0a9ab5b 100644
--- a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
+++ b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
@@ -12,20 +12,24 @@ use Sabre\DAV\File;
class AssemblyStreamTest extends \Test\TestCase {
- /**
- * @dataProvider providesNodes()
- */
- public function testGetContents($expected, $nodes): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesNodes')]
+ 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);
$this->assertEquals($expected, $content);
}
- /**
- * @dataProvider providesNodes()
- */
- public function testGetContentsFread($expected, $nodes, $chunkLength = 3): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesNodes')]
+ 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 = '';
@@ -40,10 +44,13 @@ class AssemblyStreamTest extends \Test\TestCase {
$this->assertEquals($expected, $content);
}
- /**
- * @dataProvider providesNodes()
- */
- public function testSeek($expected, $nodes): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesNodes')]
+ 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 +62,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 +144,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..baae839c8da
--- /dev/null
+++ b/apps/dav/tests/unit/Upload/UploadAutoMkcolPluginTest.php
@@ -0,0 +1,133 @@
+<?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);
+ }
+
+ #[\PHPUnit\Framework\Attributes\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/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/sw.js b/apps/encryption/l10n/sw.js
new file mode 100644
index 00000000000..47dd00c5388
--- /dev/null
+++ b/apps/encryption/l10n/sw.js
@@ -0,0 +1,65 @@
+OC.L10N.register(
+ "encryption",
+ {
+ "Missing recovery key password" : "Nenosiri la ufunguo wa kurejesha halipo",
+ "Please repeat the recovery key password" : "Tafadhali rudia nenosiri la ufunguo wa kurejesha",
+ "Repeated recovery key password does not match the provided recovery key password" : "Nenosiri linalorudiwa la ufunguo wa kurejesha halilingani na nenosiri ulilopewa la ufunguo wa urejeshaji",
+ "Recovery key successfully enabled" : "Ufunguo wa kurejesha umewezeshwa",
+ "Could not enable recovery key. Please check your recovery key password!" : "Haikuweza kuwasha ufunguo wa kurejesha akaunti. Tafadhali angalia nenosiri lako la ufunguo wa kurejesha akaunti!",
+ "Recovery key successfully disabled" : "Ufunguo wa kurejesha umezimwa",
+ "Could not disable recovery key. Please check your recovery key password!" : "Haikuweza kuzima ufunguo wa kurejesha. Tafadhali angalia nenosiri lako la ufunguo wa kurejesha akaunti!",
+ "Missing parameters" : "Vigezo vinavyokosekana",
+ "Please provide the old recovery password" : "Tafadhali toa nenosiri la zamani la urejeshi",
+ "Please provide a new recovery password" : " Tafadhali toa nenosiri jipya la kurejesha akaunti",
+ "Please repeat the new recovery password" : "Tafadhali rudia nenosiri jipya la kurejesha akaunti",
+ "Password successfully changed." : "Nenosiri limebadilishwa kikamilifu",
+ "Could not change the password. Maybe the old password was not correct." : "Haikuweza kubadilisha nenosiri. Labda nenosiri la zamani halikuwa sahihi.",
+ "Recovery Key disabled" : "Ufunguo wa Urejeshaji umezimwa",
+ "Recovery Key enabled" : "Ufunguo wa Urejeshaji umewashwa",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Haikuweza kuwasha ufunguo wa kurejesha ufikiaji wa akaunti, tafadhali jaribu tena au wasiliana na msimamizi wako",
+ "Could not update the private key password." : "Haikuweza kusasisha nenosiri la ufunguo wa faragha.",
+ "The old password was not correct, please try again." : "Nenosiri la zamani halikuwa sahihi, tafadhali jaribu tena.",
+ "The current log-in password was not correct, please try again." : "Nenosiri la sasa la kuingia halikuwa sahihi, tafadhali jaribu tena.",
+ "Private key password successfully updated." : "Nenosiri la ufunguo wa faragha limesasishwa.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ufunguo wa faragha si sahihi kwa programu ya usimbaji fiche. Tafadhali sasisha nenosiri lako la ufunguo wa faragha katika mipangilio yako ya kibinafsi ili kurejesha ufikiaji wa faili zako zilizosimbwa.",
+ "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Programu ya Usimbaji fiche imewashwa, lakini funguo zako hazijaanzishwa. Tafadhali ondoka na uingie tena.",
+ "Please enable server side encryption in the admin settings in order to use the encryption module." : "Tafadhali wezesha usimbaji fiche wa upande wa seva katika mipangilio ya msimamizi ili kutumia sehemu ya usimbaji.",
+ "Encryption app is enabled and ready" : "Programu ya usimbaji fiche imewashwa na iko tayari",
+ "Bad Signature" : "Sahihi mbaya",
+ "Missing Signature" : "Inakosa Sahihi",
+ "one-time password for server-side-encryption" : "nenosiri la wakati mmoja la usimbaji fiche wa upande wa seva",
+ "Encryption password" : "Nenosiri la usimbaji fiche",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Utawala uliwezesha usimbaji fiche wa upande wa seva. Faili zako zilisimbwa kwa njia fiche kwa kutumia nenosiri <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Utawala uliwezesha usimbaji fiche wa upande wa seva. Faili zako zilisimbwa kwa njia fiche kwa kutumia nenosiri \"%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." : "Tafadhali ingia kwenye kiolesura cha wavuti, nenda kwenye sehemu ya \"Usalama\" ya mipangilio yako ya kibinafsi na usasishe nenosiri lako la usimbaji kwa kuingiza nenosiri hili kwenye sehemu ya \"Nenosiri la zamani la kuingia\" na nenosiri lako la sasa la kuingia.",
+ "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Haiwezi kusimbua faili hii, pengine hii ni faili iliyoshirikiwa. Tafadhali mwombe mwenye faili kushiriki upya faili nawe.",
+ "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Haiwezi kusoma faili hii, labda hii ni faili iliyoshirikiwa. Tafadhali mwombe mwenye faili kushiriki upya faili nawe.",
+ "Default encryption module" : " Moduli chaguo-msingi ya usimbaji fiche",
+ "Default encryption module for server-side encryption" : "Sehemu chaguo-msingi ya usimbaji fiche kwa usimbaji wa upande wa seva",
+ "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." : "Ili kutumia sehemu hii ya usimbaji fiche unahitaji kuwezesha usimbaji fiche wa upande wa seva katika mipangilio ya msimamizi. Mara baada ya kuwezeshwa sehemu hii itasimba kwa njia fiche faili zako zote kwa uwazi. Usimbaji fiche unategemea funguo za AES 256.\nSehemu hii haitagusa faili zilizopo, ni faili mpya pekee zitakazosimbwa kwa njia fiche baada ya usimbaji fiche wa upande wa seva kuwashwa. Pia haiwezekani kuzima usimbaji fiche tena na kurudi kwenye mfumo ambao haujasimbwa.\nTafadhali soma hati ili kujua athari zote kabla ya kuamua kuwezesha usimbaji fiche wa upande wa seva.",
+ "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Programu ya usimbaji fiche imewashwa lakini funguo zako hazijaanzishwa, tafadhali toka na uingie tena",
+ "Encrypt the home storage" : "Simba hifadhi ya nyumbani kwa njia fiche",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Kuwasha chaguo hili husimba kwa njia fiche faili zote zilizohifadhiwa kwenye hifadhi kuu, vinginevyo faili zilizo kwenye hifadhi ya nje pekee ndizo zitasimbwa kwa njia fiche",
+ "Enable recovery key" : "Washa ufunguo wa kurejesha",
+ "Disable recovery key" : "Zima ufunguo wa kurejesha",
+ "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." : "Ufunguo wa kurejesha ni ufunguo wa ziada wa usimbaji fiche unaotumiwa kusimba faili kwa njia fiche. Inatumika kurejesha faili kutoka kwa akaunti ikiwa nenosiri limesahau.",
+ "Recovery key password" : "Nenosiri la ufunguo wa kurejesha",
+ "Repeat recovery key password" : "Rudia nenosiri la ufunguo wa kurejesha",
+ "Change recovery key password:" : "Badilisha nenosiri la ufunguo wa kurejesha:",
+ "Old recovery key password" : " Nenosiri la zamani la ufunguo wa kurejesha",
+ "New recovery key password" : "Nenosiri mpya la ufunguo wa kurejesha akaunti",
+ "Repeat new recovery key password" : "Rudia ufunguo mpya wa uokoaji",
+ "Change Password" : "Badili nenosiri",
+ "Basic encryption module" : "Moduli ya msingi ya usimbaji fiche",
+ "Your private key password no longer matches your log-in password." : "Nenosiri lako la ufunguo wa faragha halilingani tena na nenosiri lako la kuingia.",
+ "Set your old private key password to your current log-in password:" : "Weka nenosiri lako la zamani la ufunguo wa kibinafsi kwa nenosiri lako la sasa la kuingia:",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Ikiwa hukumbuki nenosiri lako la zamani unaweza kumwomba msimamizi wako kurejesha faili zako.",
+ "Old log-in password" : "Nenosiri la zamani la kuingia",
+ "Current log-in password" : "Nenosiri la sasa la kuingia",
+ "Update Private Key Password" : "Sasisha Nenosiri la Ufunguo wa Kibinafsi",
+ "Enable password recovery:" : "Washa urejeshaji wa nenosiri:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Kuwasha chaguo hili kutakuruhusu kupata tena ufikiaji wa faili zako zilizosimbwa ikiwa utapoteza nenosiri",
+ "Enabled" : "Washwa",
+ "Disabled" : "Zimwa"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/sw.json b/apps/encryption/l10n/sw.json
new file mode 100644
index 00000000000..0e19c9cb3f2
--- /dev/null
+++ b/apps/encryption/l10n/sw.json
@@ -0,0 +1,63 @@
+{ "translations": {
+ "Missing recovery key password" : "Nenosiri la ufunguo wa kurejesha halipo",
+ "Please repeat the recovery key password" : "Tafadhali rudia nenosiri la ufunguo wa kurejesha",
+ "Repeated recovery key password does not match the provided recovery key password" : "Nenosiri linalorudiwa la ufunguo wa kurejesha halilingani na nenosiri ulilopewa la ufunguo wa urejeshaji",
+ "Recovery key successfully enabled" : "Ufunguo wa kurejesha umewezeshwa",
+ "Could not enable recovery key. Please check your recovery key password!" : "Haikuweza kuwasha ufunguo wa kurejesha akaunti. Tafadhali angalia nenosiri lako la ufunguo wa kurejesha akaunti!",
+ "Recovery key successfully disabled" : "Ufunguo wa kurejesha umezimwa",
+ "Could not disable recovery key. Please check your recovery key password!" : "Haikuweza kuzima ufunguo wa kurejesha. Tafadhali angalia nenosiri lako la ufunguo wa kurejesha akaunti!",
+ "Missing parameters" : "Vigezo vinavyokosekana",
+ "Please provide the old recovery password" : "Tafadhali toa nenosiri la zamani la urejeshi",
+ "Please provide a new recovery password" : " Tafadhali toa nenosiri jipya la kurejesha akaunti",
+ "Please repeat the new recovery password" : "Tafadhali rudia nenosiri jipya la kurejesha akaunti",
+ "Password successfully changed." : "Nenosiri limebadilishwa kikamilifu",
+ "Could not change the password. Maybe the old password was not correct." : "Haikuweza kubadilisha nenosiri. Labda nenosiri la zamani halikuwa sahihi.",
+ "Recovery Key disabled" : "Ufunguo wa Urejeshaji umezimwa",
+ "Recovery Key enabled" : "Ufunguo wa Urejeshaji umewashwa",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Haikuweza kuwasha ufunguo wa kurejesha ufikiaji wa akaunti, tafadhali jaribu tena au wasiliana na msimamizi wako",
+ "Could not update the private key password." : "Haikuweza kusasisha nenosiri la ufunguo wa faragha.",
+ "The old password was not correct, please try again." : "Nenosiri la zamani halikuwa sahihi, tafadhali jaribu tena.",
+ "The current log-in password was not correct, please try again." : "Nenosiri la sasa la kuingia halikuwa sahihi, tafadhali jaribu tena.",
+ "Private key password successfully updated." : "Nenosiri la ufunguo wa faragha limesasishwa.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ufunguo wa faragha si sahihi kwa programu ya usimbaji fiche. Tafadhali sasisha nenosiri lako la ufunguo wa faragha katika mipangilio yako ya kibinafsi ili kurejesha ufikiaji wa faili zako zilizosimbwa.",
+ "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Programu ya Usimbaji fiche imewashwa, lakini funguo zako hazijaanzishwa. Tafadhali ondoka na uingie tena.",
+ "Please enable server side encryption in the admin settings in order to use the encryption module." : "Tafadhali wezesha usimbaji fiche wa upande wa seva katika mipangilio ya msimamizi ili kutumia sehemu ya usimbaji.",
+ "Encryption app is enabled and ready" : "Programu ya usimbaji fiche imewashwa na iko tayari",
+ "Bad Signature" : "Sahihi mbaya",
+ "Missing Signature" : "Inakosa Sahihi",
+ "one-time password for server-side-encryption" : "nenosiri la wakati mmoja la usimbaji fiche wa upande wa seva",
+ "Encryption password" : "Nenosiri la usimbaji fiche",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Utawala uliwezesha usimbaji fiche wa upande wa seva. Faili zako zilisimbwa kwa njia fiche kwa kutumia nenosiri <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Utawala uliwezesha usimbaji fiche wa upande wa seva. Faili zako zilisimbwa kwa njia fiche kwa kutumia nenosiri \"%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." : "Tafadhali ingia kwenye kiolesura cha wavuti, nenda kwenye sehemu ya \"Usalama\" ya mipangilio yako ya kibinafsi na usasishe nenosiri lako la usimbaji kwa kuingiza nenosiri hili kwenye sehemu ya \"Nenosiri la zamani la kuingia\" na nenosiri lako la sasa la kuingia.",
+ "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Haiwezi kusimbua faili hii, pengine hii ni faili iliyoshirikiwa. Tafadhali mwombe mwenye faili kushiriki upya faili nawe.",
+ "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Haiwezi kusoma faili hii, labda hii ni faili iliyoshirikiwa. Tafadhali mwombe mwenye faili kushiriki upya faili nawe.",
+ "Default encryption module" : " Moduli chaguo-msingi ya usimbaji fiche",
+ "Default encryption module for server-side encryption" : "Sehemu chaguo-msingi ya usimbaji fiche kwa usimbaji wa upande wa seva",
+ "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." : "Ili kutumia sehemu hii ya usimbaji fiche unahitaji kuwezesha usimbaji fiche wa upande wa seva katika mipangilio ya msimamizi. Mara baada ya kuwezeshwa sehemu hii itasimba kwa njia fiche faili zako zote kwa uwazi. Usimbaji fiche unategemea funguo za AES 256.\nSehemu hii haitagusa faili zilizopo, ni faili mpya pekee zitakazosimbwa kwa njia fiche baada ya usimbaji fiche wa upande wa seva kuwashwa. Pia haiwezekani kuzima usimbaji fiche tena na kurudi kwenye mfumo ambao haujasimbwa.\nTafadhali soma hati ili kujua athari zote kabla ya kuamua kuwezesha usimbaji fiche wa upande wa seva.",
+ "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Programu ya usimbaji fiche imewashwa lakini funguo zako hazijaanzishwa, tafadhali toka na uingie tena",
+ "Encrypt the home storage" : "Simba hifadhi ya nyumbani kwa njia fiche",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Kuwasha chaguo hili husimba kwa njia fiche faili zote zilizohifadhiwa kwenye hifadhi kuu, vinginevyo faili zilizo kwenye hifadhi ya nje pekee ndizo zitasimbwa kwa njia fiche",
+ "Enable recovery key" : "Washa ufunguo wa kurejesha",
+ "Disable recovery key" : "Zima ufunguo wa kurejesha",
+ "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." : "Ufunguo wa kurejesha ni ufunguo wa ziada wa usimbaji fiche unaotumiwa kusimba faili kwa njia fiche. Inatumika kurejesha faili kutoka kwa akaunti ikiwa nenosiri limesahau.",
+ "Recovery key password" : "Nenosiri la ufunguo wa kurejesha",
+ "Repeat recovery key password" : "Rudia nenosiri la ufunguo wa kurejesha",
+ "Change recovery key password:" : "Badilisha nenosiri la ufunguo wa kurejesha:",
+ "Old recovery key password" : " Nenosiri la zamani la ufunguo wa kurejesha",
+ "New recovery key password" : "Nenosiri mpya la ufunguo wa kurejesha akaunti",
+ "Repeat new recovery key password" : "Rudia ufunguo mpya wa uokoaji",
+ "Change Password" : "Badili nenosiri",
+ "Basic encryption module" : "Moduli ya msingi ya usimbaji fiche",
+ "Your private key password no longer matches your log-in password." : "Nenosiri lako la ufunguo wa faragha halilingani tena na nenosiri lako la kuingia.",
+ "Set your old private key password to your current log-in password:" : "Weka nenosiri lako la zamani la ufunguo wa kibinafsi kwa nenosiri lako la sasa la kuingia:",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Ikiwa hukumbuki nenosiri lako la zamani unaweza kumwomba msimamizi wako kurejesha faili zako.",
+ "Old log-in password" : "Nenosiri la zamani la kuingia",
+ "Current log-in password" : "Nenosiri la sasa la kuingia",
+ "Update Private Key Password" : "Sasisha Nenosiri la Ufunguo wa Kibinafsi",
+ "Enable password recovery:" : "Washa urejeshaji wa nenosiri:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Kuwasha chaguo hili kutakuruhusu kupata tena ufikiaji wa faili zako zilizosimbwa ikiwa utapoteza nenosiri",
+ "Enabled" : "Washwa",
+ "Disabled" : "Zimwa"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 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/DisableMasterKey.php b/apps/encryption/lib/Command/DisableMasterKey.php
index 1912d09728d..0b8b8e39e78 100644
--- a/apps/encryption/lib/Command/DisableMasterKey.php
+++ b/apps/encryption/lib/Command/DisableMasterKey.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/encryption/lib/Command/RecoverUser.php b/apps/encryption/lib/Command/RecoverUser.php
index aea90f158f6..8da962ac8b1 100644
--- a/apps/encryption/lib/Command/RecoverUser.php
+++ b/apps/encryption/lib/Command/RecoverUser.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/encryption/lib/Crypto/EncryptAll.php b/apps/encryption/lib/Crypto/EncryptAll.php
index 6dfa36e6e3d..d9db616e6f1 100644
--- a/apps/encryption/lib/Crypto/EncryptAll.php
+++ b/apps/encryption/lib/Crypto/EncryptAll.php
@@ -20,6 +20,7 @@ use OCP\L10N\IFactory;
use OCP\Mail\Headers\AutoSubmitted;
use OCP\Mail\IMailer;
use OCP\Security\ISecureRandom;
+use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Helper\Table;
@@ -50,6 +51,7 @@ class EncryptAll {
protected IFactory $l10nFactory,
protected QuestionHelper $questionHelper,
protected ISecureRandom $secureRandom,
+ protected LoggerInterface $logger,
) {
// store one time passwords for the users
$this->userPasswords = [];
@@ -207,9 +209,22 @@ class EncryptAll {
} else {
$progress->setMessage("encrypt files for user $userCount: $path");
$progress->advance();
- if ($this->encryptFile($path) === false) {
- $progress->setMessage("encrypt files for user $userCount: $path (already encrypted)");
+ try {
+ if ($this->encryptFile($path) === false) {
+ $progress->setMessage("encrypt files for user $userCount: $path (already encrypted)");
+ $progress->advance();
+ }
+ } catch (\Exception $e) {
+ $progress->setMessage("Failed to encrypt path $path: " . $e->getMessage());
$progress->advance();
+ $this->logger->error(
+ 'Failed to encrypt path {path}',
+ [
+ 'user' => $uid,
+ 'path' => $path,
+ 'exception' => $e,
+ ]
+ );
}
}
}
@@ -234,7 +249,14 @@ class EncryptAll {
$target = $path . '.encrypted.' . time();
try {
- $this->rootView->copy($source, $target);
+ $copySuccess = $this->rootView->copy($source, $target);
+ if ($copySuccess === false) {
+ /* Copy failed, abort */
+ if ($this->rootView->file_exists($target)) {
+ $this->rootView->unlink($target);
+ }
+ throw new \Exception('Copy failed for ' . $source);
+ }
$this->rootView->rename($target, $source);
} catch (DecryptionFailedException $e) {
if ($this->rootView->file_exists($target)) {
diff --git a/apps/encryption/lib/Crypto/Encryption.php b/apps/encryption/lib/Crypto/Encryption.php
index 68bc7df808d..6d388624e48 100644
--- a/apps/encryption/lib/Crypto/Encryption.php
+++ b/apps/encryption/lib/Crypto/Encryption.php
@@ -446,8 +446,8 @@ class Encryption implements IEncryptionModule {
// error message because in this case it means that the file was
// shared with the user at a point where the user didn't had a
// valid private/public key
- $msg = 'Encryption module "' . $this->getDisplayName() .
- '" is not able to read ' . $path;
+ $msg = 'Encryption module "' . $this->getDisplayName()
+ . '" is not able to read ' . $path;
$hint = $this->l->t('Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
$this->logger->warning($msg);
throw new DecryptionFailedException($msg, $hint);
diff --git a/apps/encryption/lib/KeyManager.php b/apps/encryption/lib/KeyManager.php
index f694e6550f1..f9c1ef94634 100644
--- a/apps/encryption/lib/KeyManager.php
+++ b/apps/encryption/lib/KeyManager.php
@@ -211,8 +211,8 @@ class KeyManager {
*/
public function setRecoveryKey($password, $keyPair) {
// Save Public Key
- $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId() .
- '.' . $this->publicKeyId,
+ $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId()
+ . '.' . $this->publicKeyId,
$keyPair['publicKey'],
Encryption::ID);
@@ -633,8 +633,8 @@ class KeyManager {
$publicKeys[$this->getPublicShareKeyId()] = $publicShareKey;
}
- if ($this->recoveryKeyExists() &&
- $this->util->isRecoveryEnabledForUser($uid)) {
+ if ($this->recoveryKeyExists()
+ && $this->util->isRecoveryEnabledForUser($uid)) {
$publicKeys[$this->getRecoveryKeyId()] = $this->getRecoveryKey();
}
diff --git a/apps/encryption/lib/Migration/SetMasterKeyStatus.php b/apps/encryption/lib/Migration/SetMasterKeyStatus.php
index 96194351296..5f98308de89 100644
--- a/apps/encryption/lib/Migration/SetMasterKeyStatus.php
+++ b/apps/encryption/lib/Migration/SetMasterKeyStatus.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/lib/Settings/Admin.php b/apps/encryption/lib/Settings/Admin.php
index e8290b778ad..a5de4ba68ff 100644
--- a/apps/encryption/lib/Settings/Admin.php
+++ b/apps/encryption/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/encryption/lib/Settings/Personal.php b/apps/encryption/lib/Settings/Personal.php
index 63e50ccc078..8814d3afb58 100644
--- a/apps/encryption/lib/Settings/Personal.php
+++ b/apps/encryption/lib/Settings/Personal.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/encryption/lib/Util.php b/apps/encryption/lib/Util.php
index 20b2c0e5804..ccbdcdcb242 100644
--- a/apps/encryption/lib/Util.php
+++ b/apps/encryption/lib/Util.php
@@ -121,8 +121,8 @@ class Util {
if (count($parts) > 1) {
$owner = $parts[1];
if ($this->userManager->userExists($owner) === false) {
- throw new \BadMethodCallException('Unknown user: ' .
- 'method expects path to a user folder relative to the data folder');
+ throw new \BadMethodCallException('Unknown user: '
+ . 'method expects path to a user folder relative to the data folder');
}
}
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..ead3dfd0195 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.
@@ -53,11 +55,11 @@ class TestEnableMasterKey extends TestCase {
}
/**
- * @dataProvider dataTestExecute
*
* @param bool $isAlreadyEnabled
* @param string $answer
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestExecute')]
public function testExecute($isAlreadyEnabled, $answer): void {
$this->util->expects($this->once())->method('isMasterKeyEnabled')
->willReturn($isAlreadyEnabled);
@@ -79,7 +81,7 @@ class TestEnableMasterKey extends TestCase {
$this->invokePrivate($this->enableMasterKey, 'execute', [$this->input, $this->output]);
}
- public function dataTestExecute() {
+ public static function dataTestExecute() {
return [
[true, ''],
[false, 'y'],
diff --git a/apps/encryption/tests/Controller/RecoveryControllerTest.php b/apps/encryption/tests/Controller/RecoveryControllerTest.php
index 9de583b387c..0fec3f4d6a9 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,38 +15,35 @@ 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],
];
}
/**
- * @dataProvider adminRecoveryProvider
* @param $recoveryPassword
* @param $passConfirm
* @param $enableRecovery
* @param $expectedMessage
* @param $expectedStatus
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('adminRecoveryProvider')]
public function testAdminRecovery($recoveryPassword, $passConfirm, $enableRecovery, $expectedMessage, $expectedStatus): void {
$this->recoveryMock->expects($this->any())
->method('enableAdminRecovery')
@@ -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],
@@ -74,13 +73,13 @@ class RecoveryControllerTest extends TestCase {
}
/**
- * @dataProvider changeRecoveryPasswordProvider
* @param $password
* @param $confirmPassword
* @param $oldPassword
* @param $expectedMessage
* @param $expectedStatus
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('changeRecoveryPasswordProvider')]
public function testChangeRecoveryPassword($password, $confirmPassword, $oldPassword, $expectedMessage, $expectedStatus): void {
$this->recoveryMock->expects($this->any())
->method('changeRecoveryKeyPassword')
@@ -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]
@@ -106,11 +105,11 @@ class RecoveryControllerTest extends TestCase {
}
/**
- * @dataProvider userSetRecoveryProvider
* @param $enableRecovery
* @param $expectedMessage
* @param $expectedStatus
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('userSetRecoveryProvider')]
public function testUserSetRecovery($enableRecovery, $expectedMessage, $expectedStatus): void {
$this->recoveryMock->expects($this->any())
->method('setRecoveryForUser')
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..1bbcad77411 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();
@@ -55,11 +50,11 @@ class StatusControllerTest extends TestCase {
}
/**
- * @dataProvider dataTestGetStatus
*
* @param string $status
* @param string $expectedStatus
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetStatus')]
public function testGetStatus($status, $expectedStatus): void {
$this->sessionMock->expects($this->once())
->method('getStatus')->willReturn($status);
@@ -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..1355e2c855d 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();
@@ -85,9 +80,8 @@ class CryptTest extends TestCase {
/**
* test generateHeader with valid key formats
- *
- * @dataProvider dataTestGenerateHeader
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGenerateHeader')]
public function testGenerateHeader($keyFormat, $expected): void {
$this->config->expects($this->once())
->method('getSystemValueString')
@@ -113,10 +107,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'],
@@ -138,10 +129,10 @@ class CryptTest extends TestCase {
}
/**
- * @dataProvider dataProviderGetCipher
* @param string $configValue
* @param string $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderGetCipher')]
public function testGetCipher($configValue, $expected): void {
$this->config->expects($this->once())
->method('getSystemValueString')
@@ -155,10 +146,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'],
@@ -183,9 +172,7 @@ class CryptTest extends TestCase {
);
}
- /**
- * @dataProvider dataTestSplitMetaData
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSplitMetaData')]
public function testSplitMetaData($data, $expected): void {
$this->config->method('getSystemValueBool')
->with('encryption_skip_signature_check', false)
@@ -201,7 +188,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]],
@@ -210,9 +197,7 @@ class CryptTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestHasSignature
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestHasSignature')]
public function testHasSignature($data, $expected): void {
$this->config->method('getSystemValueBool')
->with('encryption_skip_signature_check', false)
@@ -222,16 +207,14 @@ class CryptTest extends TestCase {
);
}
- public function dataTestHasSignature() {
+ public static function dataTestHasSignature(): array {
return [
['encryptedContent00iv001234567890123456xx', false],
['encryptedContent00iv00123456789012345600sig00e1992521e437f6915f9173b190a512cfc38a00ac24502db44e0ba10c2bb0cc86xxx', true]
];
}
- /**
- * @dataProvider dataTestHasSignatureFail
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestHasSignatureFail')]
public function testHasSignatureFail($cipher): void {
$this->expectException(GenericEncryptionException::class);
@@ -239,7 +222,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'],
@@ -259,10 +242,10 @@ class CryptTest extends TestCase {
/**
* test removePadding()
*
- * @dataProvider dataProviderRemovePadding
* @param $data
* @param $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderRemovePadding')]
public function testRemovePadding($data, $expected): void {
$result = self::invokePrivate($this->crypt, 'removePadding', [$data]);
$this->assertSame($expected, $result);
@@ -270,10 +253,8 @@ class CryptTest extends TestCase {
/**
* data provider for testRemovePadding
- *
- * @return array
*/
- public function dataProviderRemovePadding() {
+ public static function dataProviderRemovePadding(): array {
return [
['dataxx', 'data'],
['data', false]
@@ -339,9 +320,8 @@ class CryptTest extends TestCase {
/**
* test return values of valid ciphers
- *
- * @dataProvider dataTestGetKeySize
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetKeySize')]
public function testGetKeySize($cipher, $expected): void {
$result = $this->invokePrivate($this->crypt, 'getKeySize', [$cipher]);
$this->assertSame($expected, $result);
@@ -357,10 +337,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],
@@ -369,33 +346,28 @@ class CryptTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestDecryptPrivateKey
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestDecryptPrivateKey')]
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 +388,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..82e6100bce5 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();
@@ -66,15 +59,16 @@ class DecryptAllTest extends TestCase {
}
/**
- * @dataProvider dataTestGetPrivateKey
*
* @param string $user
* @param string $recoveryKeyId
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetPrivateKey')]
public function testGetPrivateKey($user, $recoveryKeyId, $masterKeyId): void {
$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..9b39c62b650 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,8 @@ use OCP\L10N\IFactory;
use OCP\Mail\IMailer;
use OCP\Security\ISecureRandom;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Helper\QuestionHelper;
@@ -29,50 +33,23 @@ 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 LoggerInterface&MockObject $logger;
+
+ protected EncryptAll $encryptAll;
protected function setUp(): void {
parent::setUp();
@@ -101,6 +78,7 @@ class EncryptAllTest extends TestCase {
->disableOriginalConstructor()->getMock();
$this->userInterface = $this->getMockBuilder(UserInterface::class)
->disableOriginalConstructor()->getMock();
+ $this->logger = $this->createMock(LoggerInterface::class);
/**
* We need format method to return a string
@@ -131,12 +109,13 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
);
}
public function testEncryptAll(): void {
- /** @var EncryptAll | \PHPUnit\Framework\MockObject\MockObject $encryptAll */
+ /** @var EncryptAll&MockObject $encryptAll */
$encryptAll = $this->getMockBuilder(EncryptAll::class)
->setConstructorArgs(
[
@@ -150,10 +129,11 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
]
)
- ->setMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
+ ->onlyMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false);
@@ -165,7 +145,7 @@ class EncryptAllTest extends TestCase {
}
public function testEncryptAllWithMasterKey(): void {
- /** @var EncryptAll | \PHPUnit\Framework\MockObject\MockObject $encryptAll */
+ /** @var EncryptAll&MockObject $encryptAll */
$encryptAll = $this->getMockBuilder(EncryptAll::class)
->setConstructorArgs(
[
@@ -179,10 +159,11 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
]
)
- ->setMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
+ ->onlyMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(true);
@@ -195,7 +176,7 @@ class EncryptAllTest extends TestCase {
}
public function testCreateKeyPairs(): void {
- /** @var EncryptAll | \PHPUnit\Framework\MockObject\MockObject $encryptAll */
+ /** @var EncryptAll&MockObject $encryptAll */
$encryptAll = $this->getMockBuilder(EncryptAll::class)
->setConstructorArgs(
[
@@ -209,10 +190,11 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
]
)
- ->setMethods(['setupUserFS', 'generateOneTimePassword'])
+ ->onlyMethods(['setupUserFS', 'generateOneTimePassword'])
->getMock();
@@ -245,7 +227,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(
[
@@ -259,10 +241,11 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
]
)
- ->setMethods(['encryptUsersFiles'])
+ ->onlyMethods(['encryptUsersFiles'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false);
@@ -271,17 +254,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): void {
+ $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(
[
@@ -295,27 +283,35 @@ class EncryptAllTest extends TestCase {
$this->l,
$this->l10nFactory,
$this->questionHelper,
- $this->secureRandom
+ $this->secureRandom,
+ $this->logger,
]
)
- ->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 +323,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): void {
+ $encryptAllCalls[] = $path;
+ });
$outputFormatter = $this->createMock(OutputFormatterInterface::class);
$outputFormatter->method('isDecorated')->willReturn(false);
@@ -341,6 +338,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 {
@@ -354,9 +355,9 @@ class EncryptAllTest extends TestCase {
}
/**
- * @dataProvider dataTestEncryptFile
* @param $isEncrypted
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestEncryptFile')]
public function testEncryptFile($isEncrypted): void {
$fileInfo = $this->createMock(FileInfo::class);
$fileInfo->expects($this->any())->method('isEncrypted')
@@ -378,7 +379,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..37e484550ef 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;
+ protected Encryption $instance;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nMock;
-
- 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();
@@ -166,16 +152,14 @@ class EncryptionTest extends TestCase {
return $publicKeys;
}
- /**
- * @dataProvider dataProviderForTestGetPathToRealFile
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderForTestGetPathToRealFile')]
public function testGetPathToRealFile($path, $expected): void {
$this->assertSame($expected,
self::invokePrivate($this->instance, 'getPathToRealFile', [$path])
);
}
- 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'],
@@ -184,9 +168,7 @@ class EncryptionTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestBegin
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestBegin')]
public function testBegin($mode, $header, $legacyCipher, $defaultCipher, $fileKey, $expected): void {
$this->sessionMock->expects($this->once())
->method('decryptAllModeActivated')
@@ -228,7 +210,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'],
@@ -279,11 +261,11 @@ class EncryptionTest extends TestCase {
}
/**
- * @dataProvider dataTestUpdate
*
* @param string $fileKey
* @param boolean $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUpdate')]
public function testUpdate($fileKey, $expected): void {
$this->keyManagerMock->expects($this->once())
->method('getFileKey')->willReturn($fileKey);
@@ -305,7 +287,7 @@ class EncryptionTest extends TestCase {
);
}
- public function dataTestUpdate() {
+ public static function dataTestUpdate(): array {
return [
['', false],
['fileKey', true]
@@ -368,9 +350,8 @@ class EncryptionTest extends TestCase {
/**
* by default the encryption module should encrypt regular files, files in
* files_versions and files in files_trashbin
- *
- * @dataProvider dataTestShouldEncrypt
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestShouldEncrypt')]
public function testShouldEncrypt($path, $shouldEncryptHomeStorage, $isHomeStorage, $expected): void {
$this->utilMock->expects($this->once())->method('shouldEncryptHomeStorage')
->willReturn($shouldEncryptHomeStorage);
@@ -387,7 +368,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..3fe76fc4f59 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;
+ protected KeyManager $instance;
- /** @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;
-
- /** @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();
@@ -186,9 +166,7 @@ class KeyManagerTest extends TestCase {
);
}
- /**
- * @dataProvider dataTestUserHasKeys
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUserHasKeys')]
public function testUserHasKeys($key, $expected): void {
$this->keyStorageMock->expects($this->exactly(2))
->method('getUserKey')
@@ -201,7 +179,7 @@ class KeyManagerTest extends TestCase {
);
}
- public function dataTestUserHasKeys() {
+ public static function dataTestUserHasKeys(): array {
return [
['key', true],
['', false]
@@ -241,12 +219,11 @@ class KeyManagerTest extends TestCase {
}
/**
- * @dataProvider dataTestInit
- *
* @param bool $useMasterKey
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestInit')]
public function testInit($useMasterKey): void {
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject $instance */
+ /** @var KeyManager&MockObject $instance */
$instance = $this->getMockBuilder(KeyManager::class)
->setConstructorArgs(
[
@@ -259,17 +236,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): void {
+ $sessionSetStatusCalls[] = $status;
+ });
$instance->expects($this->any())->method('getMasterKeyId')->willReturn('masterKeyId');
$instance->expects($this->any())->method('getMasterKeyPassword')->willReturn('masterKeyPassword');
@@ -290,9 +268,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 +331,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'],
@@ -371,13 +353,13 @@ class KeyManagerTest extends TestCase {
}
/**
- * @dataProvider dataTestGetFileKey
*
* @param $uid
* @param $isMasterKeyEnabled
* @param $privateKey
* @param $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetFileKey')]
public function testGetFileKey($uid, $isMasterKeyEnabled, $privateKey, $encryptedFileKey, $expected): void {
$path = '/foo.txt';
@@ -395,14 +377,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);
@@ -471,13 +449,13 @@ class KeyManagerTest extends TestCase {
/**
* test add public share key and or recovery key to the list of public keys
*
- * @dataProvider dataTestAddSystemKeys
*
* @param array $accessList
* @param array $publicKeys
* @param string $uid
* @param array $expectedKeys
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestAddSystemKeys')]
public function testAddSystemKeys($accessList, $publicKeys, $uid, $expectedKeys): void {
$publicShareKeyId = 'publicShareKey';
$recoveryKeyId = 'recoveryKey';
@@ -515,7 +493,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']],
@@ -558,12 +536,11 @@ class KeyManagerTest extends TestCase {
}
/**
- * @dataProvider dataTestValidateMasterKey
- *
* @param $masterKey
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestValidateMasterKey')]
public function testValidateMasterKey($masterKey): void {
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject $instance */
+ /** @var KeyManager&MockObject $instance */
$instance = $this->getMockBuilder(KeyManager::class)
->setConstructorArgs(
[
@@ -576,7 +553,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 +588,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 +622,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..986502749c8 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);
@@ -116,16 +115,17 @@ class SessionTest extends TestCase {
}
/**
- * @dataProvider dataTestIsReady
*
* @param int $status
* @param bool $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsReady')]
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..8355cdf6729 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();
@@ -54,7 +53,7 @@ class AdminTest extends TestCase {
public function testGetForm(): void {
$this->config
->method('getAppValue')
- ->will($this->returnCallback(function ($app, $key, $default) {
+ ->willReturnCallback(function ($app, $key, $default) {
if ($app === 'encryption' && $key === 'recoveryAdminEnabled' && $default === '0') {
return '1';
}
@@ -62,7 +61,7 @@ class AdminTest extends TestCase {
return '1';
}
return $default;
- }));
+ });
$params = [
'recoveryEnabled' => '1',
'initStatus' => '0',
diff --git a/apps/encryption/tests/Users/SetupTest.php b/apps/encryption/tests/Users/SetupTest.php
index 7a6beaf3594..6b2b8b4cad5 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();
@@ -50,11 +46,11 @@ class SetupTest extends TestCase {
}
/**
- * @dataProvider dataTestSetupUser
*
* @param bool $hasKeys
* @param bool $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSetupUser')]
public function testSetupUser($hasKeys, $expected): void {
$this->keyManagerMock->expects($this->once())->method('userHasKeys')
->with('uid')->willReturn($hasKeys);
@@ -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..41860a44ffb 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');
@@ -121,11 +115,11 @@ class UtilTest extends TestCase {
}
/**
- * @dataProvider dataTestIsMasterKeyEnabled
*
* @param string $value
* @param bool $expect
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsMasterKeyEnabled')]
public function testIsMasterKeyEnabled($value, $expect): void {
$this->configMock->expects($this->once())->method('getAppValue')
->with('encryption', 'useMasterKey', '1')->willReturn($value);
@@ -134,7 +128,7 @@ class UtilTest extends TestCase {
);
}
- public function dataTestIsMasterKeyEnabled() {
+ public static function dataTestIsMasterKeyEnabled(): array {
return [
['0', false],
['1', true]
@@ -142,10 +136,10 @@ class UtilTest extends TestCase {
}
/**
- * @dataProvider dataTestShouldEncryptHomeStorage
* @param string $returnValue return value from getAppValue()
* @param bool $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestShouldEncryptHomeStorage')]
public function testShouldEncryptHomeStorage($returnValue, $expected): void {
$this->configMock->expects($this->once())->method('getAppValue')
->with('encryption', 'encryptHomeStorage', '1')
@@ -155,7 +149,7 @@ class UtilTest extends TestCase {
$this->instance->shouldEncryptHomeStorage());
}
- public function dataTestShouldEncryptHomeStorage() {
+ public static function dataTestShouldEncryptHomeStorage(): array {
return [
['1', true],
['0', false]
@@ -163,17 +157,17 @@ class UtilTest extends TestCase {
}
/**
- * @dataProvider dataTestSetEncryptHomeStorage
* @param $value
* @param $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSetEncryptHomeStorage')]
public function testSetEncryptHomeStorage($value, $expected): void {
$this->configMock->expects($this->once())->method('setAppValue')
->with('encryption', 'encryptHomeStorage', $expected);
$this->instance->setEncryptHomeStorage($value);
}
- public function dataTestSetEncryptHomeStorage() {
+ public static function dataTestSetEncryptHomeStorage(): array {
return [
[true, '1'],
[false, '0']
diff --git a/apps/federatedfilesharing/appinfo/routes.php b/apps/federatedfilesharing/appinfo/routes.php
index 93becd2517b..a7e135548c7 100644
--- a/apps/federatedfilesharing/appinfo/routes.php
+++ b/apps/federatedfilesharing/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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 40ad6b5be23..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" : "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_DE.json b/apps/federatedfilesharing/l10n/de_DE.json
index c6cdd274032..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" : "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/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 a86a3a7de0f..3aadf847d8e 100644
--- a/apps/federatedfilesharing/l10n/pl.js
+++ b/apps/federatedfilesharing/l10n/pl.js
@@ -22,20 +22,31 @@ 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",
+ "Confirm data upload to lookup server" : "Potwierdź przesyłanie danych do serwera wyszukiwania",
+ "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." : "Po włączeniu wszystkie właściwości konta (np. adres e-mail) z ustawioną widocznością na \"opublikowana” będą automatycznie synchronizowane i przesyłane do zewnętrznego systemu oraz udostępniane w publicznej, globalnej książce adresowej.",
+ "Disable upload" : "Wyłącz przesyłanie",
+ "Enable data upload" : "Włącz przesyłanie danych",
+ "Confirm querying lookup server" : "Potwierdź zapytania do serwera wyszukiwania",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Po włączeniu pole wyszukiwania podczas udostępniania zostanie wysłane do zewnętrznego systemu, który udostępnia publiczną i globalną książkę adresową.",
"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.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Ponadto adresy e-mail użytkowników mogą być wysyłane do tego systemu w celu ich weryfikacji.",
+ "Disable querying" : "Wyłącz zapytania",
+ "Enable querying" : "Włącz zapytania",
"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)",
"Allow people on this server to receive shares from other servers" : "Zezwalaj osobom na tym serwerze na otrzymywanie współdzielenia z innych serwerów",
"Allow people on this server to send shares to groups on other servers" : "Zezwalaj osobom na tym serwerze na wysyłanie współdzielenia do grup na innych serwerach",
"Allow people on this server to receive group shares from other servers" : "Zezwalaj osobom na tym serwerze na otrzymywanie współdzielenia grupowego z innych serwerów",
+ "The lookup server is only available for global scale." : "Serwer wyszukiwania jest dostępny tylko w skali globalnej.",
"Search global and public address book for people" : "Przeszukuj globalną i publiczną książkę adresową osób",
"Allow people to publish their data to a global and public address book" : "Pozwól ludziom publikować swoje dane w globalnej i publicznej książce adresowej",
"Trusted federation" : "Zaufana federacja",
"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.",
@@ -49,17 +60,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 2797e9c8f2d..be7c8375d3a 100644
--- a/apps/federatedfilesharing/l10n/pl.json
+++ b/apps/federatedfilesharing/l10n/pl.json
@@ -20,20 +20,31 @@
"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",
+ "Confirm data upload to lookup server" : "Potwierdź przesyłanie danych do serwera wyszukiwania",
+ "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." : "Po włączeniu wszystkie właściwości konta (np. adres e-mail) z ustawioną widocznością na \"opublikowana” będą automatycznie synchronizowane i przesyłane do zewnętrznego systemu oraz udostępniane w publicznej, globalnej książce adresowej.",
+ "Disable upload" : "Wyłącz przesyłanie",
+ "Enable data upload" : "Włącz przesyłanie danych",
+ "Confirm querying lookup server" : "Potwierdź zapytania do serwera wyszukiwania",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Po włączeniu pole wyszukiwania podczas udostępniania zostanie wysłane do zewnętrznego systemu, który udostępnia publiczną i globalną książkę adresową.",
"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.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Ponadto adresy e-mail użytkowników mogą być wysyłane do tego systemu w celu ich weryfikacji.",
+ "Disable querying" : "Wyłącz zapytania",
+ "Enable querying" : "Włącz zapytania",
"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)",
"Allow people on this server to receive shares from other servers" : "Zezwalaj osobom na tym serwerze na otrzymywanie współdzielenia z innych serwerów",
"Allow people on this server to send shares to groups on other servers" : "Zezwalaj osobom na tym serwerze na wysyłanie współdzielenia do grup na innych serwerach",
"Allow people on this server to receive group shares from other servers" : "Zezwalaj osobom na tym serwerze na otrzymywanie współdzielenia grupowego z innych serwerów",
+ "The lookup server is only available for global scale." : "Serwer wyszukiwania jest dostępny tylko w skali globalnej.",
"Search global and public address book for people" : "Przeszukuj globalną i publiczną książkę adresową osób",
"Allow people to publish their data to a global and public address book" : "Pozwól ludziom publikować swoje dane w globalnej i publicznej książce adresowej",
"Trusted federation" : "Zaufana federacja",
"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.",
@@ -47,17 +58,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 8e495b62ff3..15754c3c3e0 100644
--- a/apps/federatedfilesharing/l10n/pt_BR.js
+++ b/apps/federatedfilesharing/l10n/pt_BR.js
@@ -46,6 +46,7 @@ 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.",
@@ -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:" : "Seu 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 252c1f2fcae..6574ec209f2 100644
--- a/apps/federatedfilesharing/l10n/pt_BR.json
+++ b/apps/federatedfilesharing/l10n/pt_BR.json
@@ -44,6 +44,7 @@
"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.",
@@ -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:" : "Seu 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/sw.js b/apps/federatedfilesharing/l10n/sw.js
new file mode 100644
index 00000000000..d382c5a023f
--- /dev/null
+++ b/apps/federatedfilesharing/l10n/sw.js
@@ -0,0 +1,71 @@
+OC.L10N.register(
+ "federatedfilesharing",
+ {
+ "Invalid Federated Cloud ID" : "Kitambulisho batili cha Cloud ililoshirikishwa",
+ "Server to server sharing is not enabled on this server" : "Ushiriki wa Seva hadi seva haujawezeshwa kwenye seva hii",
+ "Couldn't establish a federated share." : "Haikuweza kuanzisha ushiriki ulioshirikishwa.",
+ "Couldn't establish a federated share, maybe the password was wrong." : "Haikuweza kuanzisha ushiriki ulioshirikishwa, labda nenosiri halikuwa sahihi.",
+ "Federated Share request sent, you will receive an invitation. Check your notifications." : "Ombi la Shiriki Lililotumwa limetumwa, utapokea mwaliko. Angalia arifa zako.",
+ "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Haikuweza kuanzisha ushiriki ulioshirikishwa, inaonekana kama seva ya kushirikiana nayo ni ya zamani sana (Nextcloud <= 9).",
+ "It is not allowed to send federated group shares from this server." : "Hairuhusiwi kutuma hisa za vikundi vilivyoshirikishwa kutoka kwa seva hii.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Kushiriki %1$s kumeshindwa, kwa sababu kipengee hiki tayari kimeshirikiwa na akaunti %2$s",
+ "Not allowed to create a federated share to the same account" : "Hairuhusiwi kuunda ushiriki ulioshirikishwa kwa akaunti sawa",
+ "Federated shares require read permissions" : "Hisa zilizoshirikishwa zinahitaji ruhusa za kusoma",
+ "File is already shared with %s" : "Faili tayari imeshirikiwa na %s",
+ "Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "Kushiriki %1$s kumeshindwa, hakuweza kupata %2$s, labda seva haiwezi kufikiwa kwa sasa au inatumia cheti cha kujiandikisha.",
+ "Could not find share" : "Haikuweza kupata kushiriki",
+ "Federated sharing" : "Kushiriki kwa shirikisho",
+ "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Umepokea {share} kama mgao wa mbali kutoka kwa {user} (kwa niaba ya {behalf}",
+ "You received {share} as a remote share from {user}" : "Umepokea {share} kama mgao wa mbali kutoka {user}",
+ "Accept" : "Kubali",
+ "Decline" : "Kataa",
+ "Federated Cloud Sharing" : "Ushirikiano wa Cloud ulioshirikishwa",
+ "Sharing" : "inashirikisha",
+ "Federated file sharing" : " Kushiriki faili zilizoshirikiwa",
+ "Provide federated file sharing across servers" : "Toa ugavi wa faili ulioshirikishwa kwenye seva",
+ "Confirm data upload to lookup server" : "Thibitisha upakiaji wa data kwenye seva ya kuangalia",
+ "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." : "Ikiwezeshwa, sifa zote za akaunti (k.m. anwani ya barua pepe) zenye mwonekano wa upeo uliowekwa kuwa \"zilizochapishwa\", zitasawazishwa kiotomatiki na kutumwa kwa mfumo wa nje na kupatikana katika kitabu cha anwani cha umma, cha kimataifa.",
+ "Disable upload" : "Zima upakiaji",
+ "Enable data upload" : "Washa upakiaji wa data",
+ "Confirm querying lookup server" : "Thibitisha kuuliza seva ya utafutaji",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Ikiwezeshwa, ingizo la utafutaji wakati wa kuunda hisa litatumwa kwa mfumo wa nje ambao hutoa kitabu cha anwani cha umma na kimataifa.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Hii inatumika kupata kitambulisho cha Cloud kilichoshirikishwa ili kurahisisha kushiriki kwa shirikisho.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Zaidi ya hayo, anwani za barua pepe za watumiaji zinaweza kutumwa kwa mfumo huo ili kuzithibitisha.",
+ "Disable querying" : "Zima kuuliza",
+ "Enable querying" : "Washa kuuliza",
+ "Unable to update federated files sharing config" : "Imeshindwa kusasisha usanidi wa kushiriki faili zilizoshirikiwa",
+ "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Rekebisha jinsi watu wanaweza kushiriki kati ya seva. Hii inajumuisha kushiriki kati ya watu kwenye seva hii pia ikiwa wanatumia kushiriki kwa shirikisho.",
+ "Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Ruhusu watu kwenye seva hii kutuma hisa kwa seva zingine (chaguo hili pia huruhusu ufikiaji wa WebDAV kwa hisa za umma)",
+ "Allow people on this server to receive shares from other servers" : "Ruhusu watu kwenye seva hii kupokea shiriki kutoka kwa seva zingine",
+ "Allow people on this server to send shares to groups on other servers" : "Ruhusu watu kwenye seva hii kutuma shiriki kwa vikundi kwenye seva zingine",
+ "Allow people on this server to receive group shares from other servers" : "Ruhusu watu kwenye seva hii kupokea shiriki za kikundi kutoka kwa seva zingine",
+ "The lookup server is only available for global scale." : "Seva ya utafutaji inapatikana kwa kiwango cha kimataifa pekee.",
+ "Search global and public address book for people" : "Tafuta kitabu cha anwani cha kimataifa na hadharani kwa watu",
+ "Allow people to publish their data to a global and public address book" : "Ruhusu watu kuchapisha data zao kwenye kitabu cha anwani cha kimataifa na cha umma",
+ "Trusted federation" : "Shirikisho linaloaminika",
+ "Automatically accept shares from trusted federated accounts and groups by default" : "Kubali kushiriki kiotomatiki kutoka kwa akaunti na vikundi vinavyoaminika vilivyoshirikishwa kwa chaguomsingi",
+ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Shiriki nami kupitia Kitambulisho changu cha #Nextcloud Federated Cloud, ona, {url}",
+ "Share with me through my #Nextcloud Federated Cloud ID" : "Shiriki nami kupitia Kitambulisho changu cha #Nextcloud Federated Cloud",
+ "Share with me via Nextcloud" : "Shiriki nami kupitia Nextcloud",
+ "Cloud ID copied to the clipboard" : "Kitambulisho cha Cloud kimenakiliwa kwenye ubao wa kunakili",
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Clipboard not available. Please copy the cloud ID manually." : "Ubao wa kunakili haupatikani. Tafadhali nakili kitambulisho cha cloud wewe mwenyewe.",
+ "Copied!" : "Imenakiliwa!",
+ "Federated Cloud" : "Shirikisho la 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" : "Unaweza kushiriki na mtu yeyote anayetumia seva ya Nextcloud au seva na huduma zingine zinazooana na Open Cloud Mesh (OCM)! Weka tu Kitambulisho chao cha Wingu Shirikishi kwenye kidirisha cha kushiriki. Inaonekana kama person@cloud.example.com",
+ "Your Federated Cloud ID" : "Kitambulisho chako cha Shirikisho la Cloud",
+ "Share it so your friends can share files with you:" : "Ishiriki ili marafiki zako waweze kushiriki faili nawe:",
+ "Facebook" : "Facebook",
+ "X (formerly Twitter)" : "X (zamani Twitter)",
+ "formerly Twitter" : "zamani Twitter",
+ "Mastodon" : "Mastodon",
+ "Add to your website" : "Ongeza kwenye tovuti yako",
+ "HTML Code:" : "Msimbo wa HTML:",
+ "Cancel" : "Ghaili",
+ "Add remote share" : "Ongeza kushiriki kwa mbali",
+ "Remote share" : "Kushiriki kwa mbali",
+ "Do you want to add the remote share {name} from {owner}@{remote}?" : "Je, ungependa kuongeza ushiriki wa mbali {name} tangu {owner}@{remote}?",
+ "Remote share password" : "Nenosiri la kushiriki kwa mbali",
+ "Incoming share could not be processed" : "Ushiriki unaoingia haukuweza kuchakatwa"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/sw.json b/apps/federatedfilesharing/l10n/sw.json
new file mode 100644
index 00000000000..8dee7899f99
--- /dev/null
+++ b/apps/federatedfilesharing/l10n/sw.json
@@ -0,0 +1,69 @@
+{ "translations": {
+ "Invalid Federated Cloud ID" : "Kitambulisho batili cha Cloud ililoshirikishwa",
+ "Server to server sharing is not enabled on this server" : "Ushiriki wa Seva hadi seva haujawezeshwa kwenye seva hii",
+ "Couldn't establish a federated share." : "Haikuweza kuanzisha ushiriki ulioshirikishwa.",
+ "Couldn't establish a federated share, maybe the password was wrong." : "Haikuweza kuanzisha ushiriki ulioshirikishwa, labda nenosiri halikuwa sahihi.",
+ "Federated Share request sent, you will receive an invitation. Check your notifications." : "Ombi la Shiriki Lililotumwa limetumwa, utapokea mwaliko. Angalia arifa zako.",
+ "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Haikuweza kuanzisha ushiriki ulioshirikishwa, inaonekana kama seva ya kushirikiana nayo ni ya zamani sana (Nextcloud <= 9).",
+ "It is not allowed to send federated group shares from this server." : "Hairuhusiwi kutuma hisa za vikundi vilivyoshirikishwa kutoka kwa seva hii.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Kushiriki %1$s kumeshindwa, kwa sababu kipengee hiki tayari kimeshirikiwa na akaunti %2$s",
+ "Not allowed to create a federated share to the same account" : "Hairuhusiwi kuunda ushiriki ulioshirikishwa kwa akaunti sawa",
+ "Federated shares require read permissions" : "Hisa zilizoshirikishwa zinahitaji ruhusa za kusoma",
+ "File is already shared with %s" : "Faili tayari imeshirikiwa na %s",
+ "Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "Kushiriki %1$s kumeshindwa, hakuweza kupata %2$s, labda seva haiwezi kufikiwa kwa sasa au inatumia cheti cha kujiandikisha.",
+ "Could not find share" : "Haikuweza kupata kushiriki",
+ "Federated sharing" : "Kushiriki kwa shirikisho",
+ "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Umepokea {share} kama mgao wa mbali kutoka kwa {user} (kwa niaba ya {behalf}",
+ "You received {share} as a remote share from {user}" : "Umepokea {share} kama mgao wa mbali kutoka {user}",
+ "Accept" : "Kubali",
+ "Decline" : "Kataa",
+ "Federated Cloud Sharing" : "Ushirikiano wa Cloud ulioshirikishwa",
+ "Sharing" : "inashirikisha",
+ "Federated file sharing" : " Kushiriki faili zilizoshirikiwa",
+ "Provide federated file sharing across servers" : "Toa ugavi wa faili ulioshirikishwa kwenye seva",
+ "Confirm data upload to lookup server" : "Thibitisha upakiaji wa data kwenye seva ya kuangalia",
+ "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." : "Ikiwezeshwa, sifa zote za akaunti (k.m. anwani ya barua pepe) zenye mwonekano wa upeo uliowekwa kuwa \"zilizochapishwa\", zitasawazishwa kiotomatiki na kutumwa kwa mfumo wa nje na kupatikana katika kitabu cha anwani cha umma, cha kimataifa.",
+ "Disable upload" : "Zima upakiaji",
+ "Enable data upload" : "Washa upakiaji wa data",
+ "Confirm querying lookup server" : "Thibitisha kuuliza seva ya utafutaji",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Ikiwezeshwa, ingizo la utafutaji wakati wa kuunda hisa litatumwa kwa mfumo wa nje ambao hutoa kitabu cha anwani cha umma na kimataifa.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Hii inatumika kupata kitambulisho cha Cloud kilichoshirikishwa ili kurahisisha kushiriki kwa shirikisho.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Zaidi ya hayo, anwani za barua pepe za watumiaji zinaweza kutumwa kwa mfumo huo ili kuzithibitisha.",
+ "Disable querying" : "Zima kuuliza",
+ "Enable querying" : "Washa kuuliza",
+ "Unable to update federated files sharing config" : "Imeshindwa kusasisha usanidi wa kushiriki faili zilizoshirikiwa",
+ "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Rekebisha jinsi watu wanaweza kushiriki kati ya seva. Hii inajumuisha kushiriki kati ya watu kwenye seva hii pia ikiwa wanatumia kushiriki kwa shirikisho.",
+ "Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Ruhusu watu kwenye seva hii kutuma hisa kwa seva zingine (chaguo hili pia huruhusu ufikiaji wa WebDAV kwa hisa za umma)",
+ "Allow people on this server to receive shares from other servers" : "Ruhusu watu kwenye seva hii kupokea shiriki kutoka kwa seva zingine",
+ "Allow people on this server to send shares to groups on other servers" : "Ruhusu watu kwenye seva hii kutuma shiriki kwa vikundi kwenye seva zingine",
+ "Allow people on this server to receive group shares from other servers" : "Ruhusu watu kwenye seva hii kupokea shiriki za kikundi kutoka kwa seva zingine",
+ "The lookup server is only available for global scale." : "Seva ya utafutaji inapatikana kwa kiwango cha kimataifa pekee.",
+ "Search global and public address book for people" : "Tafuta kitabu cha anwani cha kimataifa na hadharani kwa watu",
+ "Allow people to publish their data to a global and public address book" : "Ruhusu watu kuchapisha data zao kwenye kitabu cha anwani cha kimataifa na cha umma",
+ "Trusted federation" : "Shirikisho linaloaminika",
+ "Automatically accept shares from trusted federated accounts and groups by default" : "Kubali kushiriki kiotomatiki kutoka kwa akaunti na vikundi vinavyoaminika vilivyoshirikishwa kwa chaguomsingi",
+ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Shiriki nami kupitia Kitambulisho changu cha #Nextcloud Federated Cloud, ona, {url}",
+ "Share with me through my #Nextcloud Federated Cloud ID" : "Shiriki nami kupitia Kitambulisho changu cha #Nextcloud Federated Cloud",
+ "Share with me via Nextcloud" : "Shiriki nami kupitia Nextcloud",
+ "Cloud ID copied to the clipboard" : "Kitambulisho cha Cloud kimenakiliwa kwenye ubao wa kunakili",
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Clipboard not available. Please copy the cloud ID manually." : "Ubao wa kunakili haupatikani. Tafadhali nakili kitambulisho cha cloud wewe mwenyewe.",
+ "Copied!" : "Imenakiliwa!",
+ "Federated Cloud" : "Shirikisho la 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" : "Unaweza kushiriki na mtu yeyote anayetumia seva ya Nextcloud au seva na huduma zingine zinazooana na Open Cloud Mesh (OCM)! Weka tu Kitambulisho chao cha Wingu Shirikishi kwenye kidirisha cha kushiriki. Inaonekana kama person@cloud.example.com",
+ "Your Federated Cloud ID" : "Kitambulisho chako cha Shirikisho la Cloud",
+ "Share it so your friends can share files with you:" : "Ishiriki ili marafiki zako waweze kushiriki faili nawe:",
+ "Facebook" : "Facebook",
+ "X (formerly Twitter)" : "X (zamani Twitter)",
+ "formerly Twitter" : "zamani Twitter",
+ "Mastodon" : "Mastodon",
+ "Add to your website" : "Ongeza kwenye tovuti yako",
+ "HTML Code:" : "Msimbo wa HTML:",
+ "Cancel" : "Ghaili",
+ "Add remote share" : "Ongeza kushiriki kwa mbali",
+ "Remote share" : "Kushiriki kwa mbali",
+ "Do you want to add the remote share {name} from {owner}@{remote}?" : "Je, ungependa kuongeza ushiriki wa mbali {name} tangu {owner}@{remote}?",
+ "Remote share password" : "Nenosiri la kushiriki kwa mbali",
+ "Incoming share could not be processed" : "Ushiriki unaoingia haukuweza kuchakatwa"
+},"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/AddressHandler.php b/apps/federatedfilesharing/lib/AddressHandler.php
index d21516c698c..4588e6da288 100644
--- a/apps/federatedfilesharing/lib/AddressHandler.php
+++ b/apps/federatedfilesharing/lib/AddressHandler.php
@@ -117,8 +117,8 @@ class AddressHandler {
* @return bool
*/
public function urlContainProtocol($url) {
- if (str_starts_with($url, 'https://') ||
- str_starts_with($url, 'http://')) {
+ if (str_starts_with($url, 'https://')
+ || str_starts_with($url, 'http://')) {
return true;
}
diff --git a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
index ab6db8c9c75..b8d2090713b 100644
--- a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
+++ b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -90,8 +91,8 @@ class MountPublicLinkController extends Controller {
// make sure that user is authenticated in case of a password protected link
$storedPassword = $share->getPassword();
- $authenticated = $this->session->get(PublicAuth::DAV_AUTHENTICATED) === $share->getId() ||
- $this->shareManager->checkPassword($share, $password);
+ $authenticated = $this->session->get(PublicAuth::DAV_AUTHENTICATED) === $share->getId()
+ || $this->shareManager->checkPassword($share, $password);
if (!empty($storedPassword) && !$authenticated) {
$response = new JSONResponse(
['message' => 'No permission to access the share'],
@@ -151,12 +152,11 @@ class MountPublicLinkController extends Controller {
try {
$response = $httpClient->post($remote . '/index.php/apps/federatedfilesharing/createFederatedShare',
[
- 'body' =>
- [
- 'token' => $token,
- 'shareWith' => rtrim($cloudId->getId(), '/'),
- 'password' => $password
- ],
+ 'body' => [
+ 'token' => $token,
+ 'shareWith' => rtrim($cloudId->getId(), '/'),
+ 'password' => $password
+ ],
'connect_timeout' => 10,
]
);
diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
index 90e7f53da80..7fdd718cbfe 100644
--- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
+++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
@@ -145,9 +145,9 @@ class RequestHandlerController extends OCSController {
#[NoCSRFRequired]
#[PublicPage]
public function reShare(int $id, ?string $token = null, ?string $shareWith = null, ?int $remoteId = 0) {
- if ($token === null ||
- $shareWith === null ||
- $remoteId === null
+ if ($token === null
+ || $shareWith === null
+ || $remoteId === null
) {
throw new OCSBadRequestException();
}
@@ -370,8 +370,8 @@ class RequestHandlerController extends OCSController {
$ocmPermissions[] = 'read';
}
- if (($ncPermissions & Constants::PERMISSION_CREATE) ||
- ($ncPermissions & Constants::PERMISSION_UPDATE)) {
+ if (($ncPermissions & Constants::PERMISSION_CREATE)
+ || ($ncPermissions & Constants::PERMISSION_UPDATE)) {
$ocmPermissions[] = 'write';
}
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php
index 7c95b83a5dd..e3731ac3ecf 100644
--- a/apps/federatedfilesharing/lib/FederatedShareProvider.php
+++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php
@@ -88,8 +88,8 @@ class FederatedShareProvider implements IShareProvider, IShareProviderSupportsAl
$shareType = $share->getShareType();
$expirationDate = $share->getExpirationDate();
- if ($shareType === IShare::TYPE_REMOTE_GROUP &&
- !$this->isOutgoingServer2serverGroupShareEnabled()
+ if ($shareType === IShare::TYPE_REMOTE_GROUP
+ && !$this->isOutgoingServer2serverGroupShareEnabled()
) {
$message = 'It is not allowed to send federated group shares from this server.';
$message_t = $this->l->t('It is not allowed to send federated group shares from this server.');
diff --git a/apps/federatedfilesharing/lib/Notifications.php b/apps/federatedfilesharing/lib/Notifications.php
index 3ba88dad016..613c05613ef 100644
--- a/apps/federatedfilesharing/lib/Notifications.php
+++ b/apps/federatedfilesharing/lib/Notifications.php
@@ -242,10 +242,10 @@ class Notifications {
$result = $this->tryHttpPostToShareEndpoint(rtrim($remote, '/'), '/' . $remoteId . '/' . $action, $fields, $action);
$status = json_decode($result['result'], true);
- if ($result['success'] &&
- isset($status['ocs']['meta']['statuscode']) &&
- ($status['ocs']['meta']['statuscode'] === 100 ||
- $status['ocs']['meta']['statuscode'] === 200
+ if ($result['success']
+ && isset($status['ocs']['meta']['statuscode'])
+ && ($status['ocs']['meta']['statuscode'] === 100
+ || $status['ocs']['meta']['statuscode'] === 200
)
) {
return true;
diff --git a/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php b/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
index 836b6610199..1cdcdbdd6d4 100644
--- a/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
+++ b/apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -702,8 +703,8 @@ class CloudFederationProviderFiles implements ISignedCloudFederationProvider {
*/
protected function verifyShare(IShare $share, $token) {
if (
- $share->getShareType() === IShare::TYPE_REMOTE &&
- $share->getToken() === $token
+ $share->getShareType() === IShare::TYPE_REMOTE
+ && $share->getToken() === $token
) {
return true;
}
diff --git a/apps/federatedfilesharing/lib/Settings/Admin.php b/apps/federatedfilesharing/lib/Settings/Admin.php
index e21c34638ad..fc685f952c7 100644
--- a/apps/federatedfilesharing/lib/Settings/Admin.php
+++ b/apps/federatedfilesharing/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/federatedfilesharing/lib/Settings/Personal.php b/apps/federatedfilesharing/lib/Settings/Personal.php
index b71b064859e..2889fb77c1f 100644
--- a/apps/federatedfilesharing/lib/Settings/Personal.php
+++ b/apps/federatedfilesharing/lib/Settings/Personal.php
@@ -49,8 +49,8 @@ class Personal implements ISettings {
* @since 9.1
*/
public function getSection(): ?string {
- if ($this->federatedShareProvider->isIncomingServer2serverShareEnabled() ||
- $this->federatedShareProvider->isIncomingServer2serverGroupShareEnabled()) {
+ if ($this->federatedShareProvider->isIncomingServer2serverShareEnabled()
+ || $this->federatedShareProvider->isIncomingServer2serverGroupShareEnabled()) {
return 'sharing';
}
return null;
diff --git a/apps/federatedfilesharing/lib/Settings/PersonalSection.php b/apps/federatedfilesharing/lib/Settings/PersonalSection.php
index 5ef1e180c31..eea10e39393 100644
--- a/apps/federatedfilesharing/lib/Settings/PersonalSection.php
+++ b/apps/federatedfilesharing/lib/Settings/PersonalSection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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..9b67e3e1848 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 = [
@@ -90,14 +80,8 @@ class AddressHandlerTest extends \Test\TestCase {
return $testCases;
}
- /**
- * @dataProvider dataTestSplitUserRemote
- *
- * @param string $remote
- * @param string $expectedUser
- * @param string $expectedUrl
- */
- public function testSplitUserRemote($remote, $expectedUser, $expectedUrl): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSplitUserRemote')]
+ public function testSplitUserRemote(string $remote, string $expectedUser, string $expectedUrl): void {
$this->contactsManager->expects($this->any())
->method('search')
->willReturn([]);
@@ -107,7 +91,7 @@ class AddressHandlerTest extends \Test\TestCase {
$this->assertSame($expectedUrl, $remoteUrl);
}
- public function dataTestSplitUserRemoteError() {
+ public static function dataTestSplitUserRemoteError(): array {
return [
// Invalid path
['user@'],
@@ -125,33 +109,21 @@ class AddressHandlerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestSplitUserRemoteError
- *
- * @param string $id
- */
- public function testSplitUserRemoteError($id): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSplitUserRemoteError')]
+ public function testSplitUserRemoteError(string $id): void {
$this->expectException(HintException::class);
$this->addressHandler->splitUserRemote($id);
}
- /**
- * @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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCompareAddresses')]
+ 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],
@@ -171,37 +143,27 @@ class AddressHandlerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestRemoveProtocolFromUrl
- *
- * @param string $url
- * @param string $expectedResult
- */
- public function testRemoveProtocolFromUrl($url, $expectedResult): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRemoveProtocolFromUrl')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUrlContainProtocol')]
+ 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..cb890417d0b 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,
@@ -112,25 +85,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,
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCreateFederatedShare')]
+ 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 +152,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..4d6add962fe 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,30 +101,28 @@ 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'],
];
}
- /**
- * @dataProvider dataTestCreate
- */
- public function testCreate($expirationDate, $expectedDataDate): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCreate')]
+ 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 +167,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 +204,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 +254,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 +265,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 +315,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 +326,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 +358,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 +369,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');
@@ -440,11 +417,9 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
}
- /**
- * @dataProvider dataTestUpdate
- */
- public function testUpdate($owner, $sharedBy, $expirationDate): void {
- $this->provider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUpdate')]
+ public function testUpdate(string $owner, string $sharedBy, ?\DateTime $expirationDate): void {
+ $this->provider = $this->getMockBuilder(FederatedShareProvider::class)
->setConstructorArgs(
[
$this->connection,
@@ -460,11 +435,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 +497,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 +505,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 +551,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 +598,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 +640,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 +690,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],
@@ -724,7 +701,6 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
/**
- * @dataProvider dataDeleteUser
*
* @param string $owner The owner of the share (uid)
* @param string $initiator The initiator of the share (uid)
@@ -732,7 +708,8 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteUser')]
+ 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 +719,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,20 +731,15 @@ class FederatedShareProviderTest extends \Test\TestCase {
->where(
$qb->expr()->eq('id', $qb->createNamedParameter($id))
);
- $cursor = $qb->execute();
+ $cursor = $qb->executeQuery();
$data = $cursor->fetchAll();
$cursor->closeCursor();
$this->assertCount($rowDeleted ? 0 : 1, $data);
}
- /**
- * @dataProvider dataTestIsOutgoingServer2serverShareEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
- */
- public function testIsOutgoingServer2serverShareEnabled($internalOnly, $isEnabled, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsOutgoingServer2serverShareEnabled')]
+ 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 +751,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsOutgoingServer2serverShareEnabled() {
+ public static function dataTestIsOutgoingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@@ -788,13 +760,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestIsIncomingServer2serverShareEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
- */
- public function testIsIncomingServer2serverShareEnabled($onlyInternal, $isEnabled, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsIncomingServer2serverShareEnabled')]
+ 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 +773,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsIncomingServer2serverShareEnabled() {
+ public static function dataTestIsIncomingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@@ -815,13 +782,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestIsLookupServerQueriesEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
- */
- public function testIsLookupServerQueriesEnabled($gsEnabled, $isEnabled, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsLookupServerQueriesEnabled')]
+ 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 +796,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
- public function dataTestIsLookupServerQueriesEnabled() {
+ public static function dataTestIsLookupServerQueriesEnabled(): array {
return [
[true, 'yes', true],
[true, 'no', true],
@@ -846,13 +808,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestIsLookupServerUploadEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
- */
- public function testIsLookupServerUploadEnabled($gsEnabled, $isEnabled, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsLookupServerUploadEnabled')]
+ 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 +821,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsLookupServerUploadEnabled() {
+ public static function dataTestIsLookupServerUploadEnabled(): array {
return [
[true, 'yes', false],
[true, 'no', false],
@@ -880,8 +837,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 +891,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..da5defd8e55 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,28 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSendUpdateToRemote')]
+ public function testSendUpdateToRemote(int $try, array $httpRequestResult, bool $expected): void {
$remote = 'http://remote';
$id = 42;
$timestamp = 63576;
@@ -120,7 +97,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 +118,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..1eee362c11f 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,
@@ -54,11 +53,8 @@ class AdminTest extends TestCase {
];
}
- /**
- * @dataProvider sharingStateProvider
- * @param bool $state
- */
- public function testGetForm($state): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('sharingStateProvider')]
+ public function testGetForm(bool $state): void {
$this->federatedShareProvider
->expects($this->once())
->method('isOutgoingServer2serverShareEnabled')
@@ -98,20 +94,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): void {
+ $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..50f01eb5e62 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);
+ 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/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/l10n/sw.js b/apps/federation/l10n/sw.js
new file mode 100644
index 00000000000..4c09b59af82
--- /dev/null
+++ b/apps/federation/l10n/sw.js
@@ -0,0 +1,21 @@
+OC.L10N.register(
+ "federation",
+ {
+ "Added to the list of trusted servers" : " Imeongezwa kwenye orodha ya seva zinazoaminika",
+ "No server found with ID: %s" : "Hakuna seva iliyopatikana na kitambulisho: %s",
+ "Could not remove server" : "Isingeweza kuondoa seva",
+ "Server is already in the list of trusted servers." : "Seva tayari iko kwenye orodha ya seva zinazoaminika.",
+ "No server to federate with found" : "Hakuna seva ya kushirikiana na, iliyopatikana",
+ "Could not add server" : "Isingeweza kuongeza seva",
+ "Trusted servers" : "Seva zinazoaminiwa",
+ "Federation" : "Shirikisho",
+ "Federation allows you to connect with other trusted servers to exchange the account directory." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti.",
+ "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." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti. Kwa mfano hii itatumika kukamilisha kiotomatiki akaunti za nje kwa ushiriki wa shirikisho.",
+ "External documentation for Federated Cloud Sharing" : "Hati za nje za Ushirikiano wa Nextcloud Ulioshirikishwa",
+ "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." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti. Kwa mfano hii itatumika kukamilisha kiotomatiki akaunti za nje kwa kushiriki kwa shirikisho. Sio lazima kuongeza seva kama seva inayoaminika ili kuunda sehemu iliyoshirikishwa.",
+ "Each server must validate the other. This process may require a few cron cycles." : " Kila seva lazima ithibitishe nyingine. Mchakato huu unaweza kuhitaji mizunguko michache ya cron.",
+ "+ Add trusted server" : "+ ongeza seva inayoaminiwa",
+ "Trusted server" : "Seva inayoaminiwa",
+ "Add" : "Ongeza"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/federation/l10n/sw.json b/apps/federation/l10n/sw.json
new file mode 100644
index 00000000000..6f9abc85cbc
--- /dev/null
+++ b/apps/federation/l10n/sw.json
@@ -0,0 +1,19 @@
+{ "translations": {
+ "Added to the list of trusted servers" : " Imeongezwa kwenye orodha ya seva zinazoaminika",
+ "No server found with ID: %s" : "Hakuna seva iliyopatikana na kitambulisho: %s",
+ "Could not remove server" : "Isingeweza kuondoa seva",
+ "Server is already in the list of trusted servers." : "Seva tayari iko kwenye orodha ya seva zinazoaminika.",
+ "No server to federate with found" : "Hakuna seva ya kushirikiana na, iliyopatikana",
+ "Could not add server" : "Isingeweza kuongeza seva",
+ "Trusted servers" : "Seva zinazoaminiwa",
+ "Federation" : "Shirikisho",
+ "Federation allows you to connect with other trusted servers to exchange the account directory." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti.",
+ "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." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti. Kwa mfano hii itatumika kukamilisha kiotomatiki akaunti za nje kwa ushiriki wa shirikisho.",
+ "External documentation for Federated Cloud Sharing" : "Hati za nje za Ushirikiano wa Nextcloud Ulioshirikishwa",
+ "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." : "Shirikisho hukuruhusu kuunganishwa na seva zingine zinazoaminika ili kubadilishana saraka ya akaunti. Kwa mfano hii itatumika kukamilisha kiotomatiki akaunti za nje kwa kushiriki kwa shirikisho. Sio lazima kuongeza seva kama seva inayoaminika ili kuunda sehemu iliyoshirikishwa.",
+ "Each server must validate the other. This process may require a few cron cycles." : " Kila seva lazima ithibitishe nyingine. Mchakato huu unaweza kuhitaji mizunguko michache ya cron.",
+ "+ Add trusted server" : "+ ongeza seva inayoaminiwa",
+ "Trusted server" : "Seva inayoaminiwa",
+ "Add" : "Ongeza"
+},"pluralForm" :"nplurals=2; plural=(n != 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..dc57db9fd62 100644
--- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php
+++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php
@@ -99,12 +99,11 @@ class GetSharedSecret extends Job {
$result = $this->httpClient->get(
$url,
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => !$this->config->getSystemValue('sharing.federation.allowSelfSignedCertificates', false),
@@ -115,9 +114,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 +148,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/Settings/Admin.php b/apps/federation/lib/Settings/Admin.php
index f9630c4b557..5cf5346bb85 100644
--- a/apps/federation/lib/Settings/Admin.php
+++ b/apps/federation/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/templates/settings-admin.php b/apps/federation/templates/settings-admin.php
index 02110ebfdd3..857a8b23e37 100644
--- a/apps/federation/templates/settings-admin.php
+++ b/apps/federation/templates/settings-admin.php
@@ -37,8 +37,8 @@ $documentationLabel = $l->t('External documentation for Federated Cloud Sharing'
<span class="status success"></span>
<?php
} elseif (
- (int)$trustedServer['status'] === TrustedServers::STATUS_PENDING ||
- (int)$trustedServer['status'] === TrustedServers::STATUS_ACCESS_REVOKED
+ (int)$trustedServer['status'] === TrustedServers::STATUS_PENDING
+ || (int)$trustedServer['status'] === TrustedServers::STATUS_ACCESS_REVOKED
) { ?>
<span class="status indeterminate"></span>
<?php } else {?>
diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
index 3da2e2e15e4..943bdf352de 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.
@@ -75,14 +76,9 @@ class GetSharedSecretTest extends TestCase {
);
}
- /**
- * @dataProvider dataTestExecute
- *
- * @param bool $isTrustedServer
- * @param bool $retainBackgroundJob
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestExecute')]
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 +91,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 +103,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 +126,7 @@ class GetSharedSecretTest extends TestCase {
$getSharedSecret->start($this->jobList);
}
- public function dataTestExecute() {
+ public static function dataTestExecute(): array {
return [
[true, true],
[true, false],
@@ -136,12 +134,8 @@ class GetSharedSecretTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestRun
- *
- * @param int $statusCode
- */
- public function testRun($statusCode): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRun')]
+ public function testRun(int $statusCode): void {
$target = 'targetURL';
$source = 'sourceURL';
$token = 'token';
@@ -157,12 +151,11 @@ class GetSharedSecretTest extends TestCase {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/shared-secret',
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
@@ -181,18 +174,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 +220,7 @@ class GetSharedSecretTest extends TestCase {
TrustedServers::STATUS_FAILURE
);
- $this->invokePrivate($this->getSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->getSharedSecret, 'run', [$argument]);
}
public function testRunConnectionError(): void {
@@ -249,12 +242,11 @@ class GetSharedSecretTest extends TestCase {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/shared-secret',
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
@@ -263,8 +255,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..6ef579c7483 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);
@@ -87,15 +66,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')
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestStart')]
+ public function testStart(bool $isTrustedServer, bool $retainBackgroundJob): void {
+ /** @var RequestSharedSecret&MockObject $requestSharedSecret */
+ $requestSharedSecret = $this->getMockBuilder(RequestSharedSecret::class)
->setConstructorArgs(
[
$this->httpClientService,
@@ -107,8 +81,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 +93,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 +117,7 @@ class RequestSharedSecretTest extends TestCase {
$requestSharedSecret->start($this->jobList);
}
- public function dataTestStart() {
+ public static function dataTestStart(): array {
return [
[true, true],
[true, false],
@@ -149,11 +125,7 @@ class RequestSharedSecretTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestRun
- *
- * @param int $statusCode
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRun')]
public function testRun(int $statusCode, int $attempt = 0): void {
$target = 'targetURL';
$source = 'sourceURL';
@@ -169,12 +141,11 @@ class RequestSharedSecretTest extends TestCase {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret',
[
- 'body' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'body' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
@@ -184,18 +155,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 +202,7 @@ class RequestSharedSecretTest extends TestCase {
TrustedServers::STATUS_FAILURE
);
- $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->requestSharedSecret, 'run', [$argument]);
}
public function testRunConnectionError(): void {
@@ -255,19 +226,18 @@ class RequestSharedSecretTest extends TestCase {
->with(
$target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret',
[
- 'body' =>
- [
- 'url' => $source,
- 'token' => $token,
- 'format' => 'json',
- ],
+ 'body' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json',
+ ],
'timeout' => 3,
'connect_timeout' => 3,
'verify' => true,
]
)->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..a054277c5cd 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 */
@@ -77,9 +64,7 @@ class OCSAuthAPIControllerTest extends TestCase {
->willReturn($this->currentTime);
}
- /**
- * @dataProvider dataTestRequestSharedSecret
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRequestSharedSecret')]
public function testRequestSharedSecret(string $token, string $localToken, bool $isTrustedServer, bool $ok): void {
$url = 'url';
@@ -91,7 +76,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 +96,7 @@ class OCSAuthAPIControllerTest extends TestCase {
}
}
- public function dataTestRequestSharedSecret() {
+ public static function dataTestRequestSharedSecret(): array {
return [
['token2', 'token1', true, true],
['token1', 'token2', false, false],
@@ -119,15 +104,13 @@ class OCSAuthAPIControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestGetSharedSecret
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetSharedSecret')]
public function testGetSharedSecret(bool $isTrustedServer, bool $isValidToken, bool $ok): void {
$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 +123,9 @@ class OCSAuthAPIControllerTest extends TestCase {
$this->timeFactory,
$this->throttler
]
- )->setMethods(['isValidToken'])->getMock();
+ )
+ ->onlyMethods(['isValidToken'])
+ ->getMock();
$this->trustedServers
->expects($this->any())
@@ -171,7 +156,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..b0a7a5e30c9 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());
@@ -64,9 +65,7 @@ class SettingsControllerTest extends TestCase {
$this->assertArrayHasKey('id', $data);
}
- /**
- * @dataProvider checkServerFails
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('checkServerFails')]
public function testAddServerFail(bool $isTrustedServer, bool $isNextcloud): void {
$this->trustedServers
->expects($this->any())
@@ -110,13 +109,11 @@ class SettingsControllerTest extends TestCase {
->willReturn(true);
$this->assertNull(
- $this->invokePrivate($this->controller, 'checkServer', ['url'])
+ self::invokePrivate($this->controller, 'checkServer', ['url'])
);
}
- /**
- * @dataProvider checkServerFails
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('checkServerFails')]
public function testCheckServerFail(bool $isTrustedServer, bool $isNextcloud): void {
$this->trustedServers
->expects($this->any())
@@ -136,14 +133,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..c95d3852b48 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,22 @@ 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();
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesUser')]
+ 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..5452a48fc4a 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,26 +38,27 @@ 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();
}
/**
- * @dataProvider dataTestAddServer
*
* @param string $url passed to the method
* @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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestAddServer')]
+ 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']);
}
@@ -133,21 +128,15 @@ class DbHandlerTest extends TestCase {
$this->assertSame($id2, (int)$result[1]['id']);
}
- /**
- * @dataProvider dataTestServerExists
- *
- * @param string $serverInTable
- * @param string $checkForServer
- * @param bool $expected
- */
- public function testServerExists($serverInTable, $checkForServer, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestServerExists')]
+ 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 +148,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 +178,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 +186,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 +202,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']);
}
@@ -243,19 +232,15 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestHash')]
+ 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')],
@@ -264,19 +249,14 @@ class DbHandlerTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestNormalizeUrl
- *
- * @param string $url
- * @param string $expected
- */
- public function testNormalizeUrl($url, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestNormalizeUrl')]
+ 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'],
@@ -286,10 +266,8 @@ class DbHandlerTest extends TestCase {
];
}
- /**
- * @dataProvider providesAuth
- */
- public function testAuth($expectedResult, $user, $password): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesAuth')]
+ public function testAuth(bool $expectedResult, string $user, string $password): void {
if ($expectedResult) {
$this->dbHandler->addServer('url1');
$this->dbHandler->addSharedSecret('url1', $password);
@@ -298,7 +276,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..b879547a8cd 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(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..8b075204859 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,44 +17,33 @@ 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([
[
- 'url' => 'https://cloud.drop.box',
+ 'url' => 'https://cloud.example.org',
'url_hash' => 'sha1',
- 'shared_secret' => 'iloveowncloud',
+ 'shared_secret' => 'ilovenextcloud',
'sync_token' => '0'
]
]);
- $dbHandler->expects($this->once())->method('setServerStatus')->
- with('https://cloud.drop.box', 1, '1');
- $syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
- ->disableOriginalConstructor()
- ->getMock();
+ $dbHandler->expects($this->once())->method('setServerStatus')
+ ->with('https://cloud.example.org', 1, '1');
+ $syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willReturn('1');
@@ -62,26 +52,22 @@ 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();
- $dbHandler->method('getAllServer')->
- willReturn([
- [
- 'url' => 'https://cloud.drop.box',
- 'url_hash' => 'sha1',
- 'shared_secret' => 'iloveowncloud',
- 'sync_token' => '0'
- ]
- ]);
- $syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var DbHandler&MockObject $dbHandler */
+ $dbHandler = $this->createMock(DbHandler::class);
+ $dbHandler->method('getAllServer')
+ ->willReturn([
+ [
+ 'url' => 'https://cloud.example.org',
+ 'url_hash' => 'sha1',
+ 'shared_secret' => 'ilovenextcloud',
+ 'sync_token' => '0'
+ ]
+ ]);
+ $syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willThrowException(new \Exception('something did not work out'));
@@ -90,29 +76,25 @@ 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([
[
- 'url' => 'https://cloud.drop.box',
+ 'url' => 'https://cloud.example.org',
'url_hash' => 'sha1',
'shared_secret' => 'ilovenextcloud',
'sync_token' => '0'
]
]);
$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();
+ $dbHandler->expects($this->once())->method('setServerStatus')
+ ->with('https://cloud.example.org', 1);
+ $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..c8477f637cb 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')
);
}
@@ -190,14 +170,12 @@ class TrustedServersTest extends TestCase {
);
}
- /**
- * @dataProvider dataTestIsNextcloudServer
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsNextcloudServer')]
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 +188,7 @@ class TrustedServersTest extends TestCase {
$this->timeFactory
]
)
- ->setMethods(['checkNextcloudVersion'])
+ ->onlyMethods(['checkNextcloudVersion'])
->getMock();
$this->httpClientService->expects($this->once())->method('newClient')
@@ -236,7 +214,7 @@ class TrustedServersTest extends TestCase {
);
}
- public function dataTestIsNextcloudServer(): array {
+ public static function dataTestIsNextcloudServer(): array {
return [
[200, true, true],
[200, false, false],
@@ -244,63 +222,55 @@ 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));
}
- /**
- * @dataProvider dataTestCheckNextcloudVersion
- */
- public function testCheckNextcloudVersion($status): void {
- $this->assertTrue($this->invokePrivate($this->trustedServers, 'checkNextcloudVersion', [$status]));
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCheckNextcloudVersion')]
+ 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"}']
];
}
- /**
- * @dataProvider dataTestCheckNextcloudVersionTooLow
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCheckNextcloudVersionTooLow')]
public function testCheckNextcloudVersionTooLow(string $status): void {
$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"}'],
];
}
- /**
- * @dataProvider dataTestUpdateProtocol
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUpdateProtocol')]
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/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/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 59a1b312fa6..9e77e81e154 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" : "إدارة الملفات",
@@ -96,16 +97,19 @@ OC.L10N.register(
"Renamed \"{oldName}\" to \"{newName}\"" : "تمت إعادة تسمية \"{oldName}\" إلى \"{newName}\"",
"Rename file" : "إعادة تسمية الملف",
"Folder" : "مجلد",
+ "Unknown file type" : "نوع ملف غير معروف",
"Pending" : "قيد الانتظار",
"Unknown date" : "تاريخ غير معروف",
"Clear filter" : "إزالة التصفية",
"Modified" : "التعديل",
+ "Search everywhere" : "البحث الشامل",
"Type" : "النوع",
"Active filters" : "فلاتر نشطة",
"Remove filter" : "إزالة عامل التصفية ",
"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}\" حزمة الأوامر تم تنفيذها بنجاح",
@@ -117,7 +121,10 @@ 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} تمّ تحديده"],
+ "Filter file names …" : "فلترة أسماء الملفات ...",
+ "Filter in current view" : "تصفية في المنظور الحالي",
+ "Search globally" : "بحث عام",
"{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{relative}% used" : "{relative}% مستخدمة",
@@ -172,7 +179,6 @@ OC.L10N.register(
"No files in here" : "لا توجد ملفات هنا ",
"Upload some content or sync with your devices!" : "ارفع بعض المحتوى أو قم بالمزامنة مع أجهزتك!",
"Go back" : "العودة",
- "Filter file names …" : "فلترة أسماء الملفات ...",
"Views" : "مشاهدات",
"Files settings" : "إعدادات الملفات",
"Your files" : "ملفاتك",
@@ -181,9 +187,12 @@ OC.L10N.register(
"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" : "تم نسخ WebDAV URL إلى الحافظة",
+ "All files" : "كل الملفات",
+ "Personal files" : "ملفات شخصية",
"Sort favorites first" : "فرز المفضلة أولا",
"Sort folders before files" : "فرز المجلدات قبل الملفات",
"Show hidden files" : "عرض الملفات المخفية",
+ "Show file type column" : "عرض عمود نوع الملف",
"Crop image previews" : "اقتصاص صورة العروض",
"Enable the grid view" : "تمكين العرض الشبكي",
"Enable folder tree" : "تمكين شجرة المجلدات",
@@ -220,6 +229,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" : "إزالة من المفضلة",
@@ -260,8 +270,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)",
@@ -280,12 +293,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" : "عرض في المجلد",
@@ -323,6 +336,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" : "وحدة التخزين غير متوفرة",
@@ -337,10 +353,8 @@ OC.L10N.register(
"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." : "قائمة بملفاتك و مجلداتك",
"All folders" : "كل المجلدات",
- "Personal files" : "ملفات شخصية",
"List of your files and folders that are not shared." : "قائمة بالملفات و المجلدات التي لم تتم مشاركتها.",
"No personal files found" : "لا توجد أي ملفات شخصية",
"Files that are not shared will show up here." : "الملفات التي لم تتم مشاركتها يتم عرضها هنا",
@@ -348,12 +362,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "قائمة بالملفات والمجلدات التي تمّ تعديلها مؤخراً.",
"No recently modified files" : "لا توجد أي ملفات تمّ تعديلها مؤخراً",
"Files and folders you recently modified will show up here." : "الملفات و المجلدات التي تمّ تعديلها مؤخراً ستظهر هنا.",
+ "Search" : "بحث",
"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" : "إغلاق",
@@ -392,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}\" فهو موجود بالفعل",
@@ -427,35 +438,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 36243f82425..cce36fbba88 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" : "إدارة الملفات",
@@ -94,16 +95,19 @@
"Renamed \"{oldName}\" to \"{newName}\"" : "تمت إعادة تسمية \"{oldName}\" إلى \"{newName}\"",
"Rename file" : "إعادة تسمية الملف",
"Folder" : "مجلد",
+ "Unknown file type" : "نوع ملف غير معروف",
"Pending" : "قيد الانتظار",
"Unknown date" : "تاريخ غير معروف",
"Clear filter" : "إزالة التصفية",
"Modified" : "التعديل",
+ "Search everywhere" : "البحث الشامل",
"Type" : "النوع",
"Active filters" : "فلاتر نشطة",
"Remove filter" : "إزالة عامل التصفية ",
"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}\" حزمة الأوامر تم تنفيذها بنجاح",
@@ -115,7 +119,10 @@
"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} تمّ تحديده"],
+ "Filter file names …" : "فلترة أسماء الملفات ...",
+ "Filter in current view" : "تصفية في المنظور الحالي",
+ "Search globally" : "بحث عام",
"{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{relative}% used" : "{relative}% مستخدمة",
@@ -170,7 +177,6 @@
"No files in here" : "لا توجد ملفات هنا ",
"Upload some content or sync with your devices!" : "ارفع بعض المحتوى أو قم بالمزامنة مع أجهزتك!",
"Go back" : "العودة",
- "Filter file names …" : "فلترة أسماء الملفات ...",
"Views" : "مشاهدات",
"Files settings" : "إعدادات الملفات",
"Your files" : "ملفاتك",
@@ -179,9 +185,12 @@
"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" : "تم نسخ WebDAV URL إلى الحافظة",
+ "All files" : "كل الملفات",
+ "Personal files" : "ملفات شخصية",
"Sort favorites first" : "فرز المفضلة أولا",
"Sort folders before files" : "فرز المجلدات قبل الملفات",
"Show hidden files" : "عرض الملفات المخفية",
+ "Show file type column" : "عرض عمود نوع الملف",
"Crop image previews" : "اقتصاص صورة العروض",
"Enable the grid view" : "تمكين العرض الشبكي",
"Enable folder tree" : "تمكين شجرة المجلدات",
@@ -218,6 +227,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" : "إزالة من المفضلة",
@@ -258,8 +268,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)",
@@ -278,12 +291,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" : "عرض في المجلد",
@@ -321,6 +334,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" : "وحدة التخزين غير متوفرة",
@@ -335,10 +351,8 @@
"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." : "قائمة بملفاتك و مجلداتك",
"All folders" : "كل المجلدات",
- "Personal files" : "ملفات شخصية",
"List of your files and folders that are not shared." : "قائمة بالملفات و المجلدات التي لم تتم مشاركتها.",
"No personal files found" : "لا توجد أي ملفات شخصية",
"Files that are not shared will show up here." : "الملفات التي لم تتم مشاركتها يتم عرضها هنا",
@@ -346,12 +360,12 @@
"List of recently modified files and folders." : "قائمة بالملفات والمجلدات التي تمّ تعديلها مؤخراً.",
"No recently modified files" : "لا توجد أي ملفات تمّ تعديلها مؤخراً",
"Files and folders you recently modified will show up here." : "الملفات و المجلدات التي تمّ تعديلها مؤخراً ستظهر هنا.",
+ "Search" : "بحث",
"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" : "إغلاق",
@@ -390,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}\" فهو موجود بالفعل",
@@ -425,35 +436,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 c16944eac33..33ade7d39bd 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}",
@@ -91,7 +90,8 @@ 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",
+ "Filter in current view" : "Peñerar na vista actual",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} n'usu",
"{used} of {quota} used" : "{used} de {quota} n'usu",
"{relative}% used" : "{relative}% n'usu",
@@ -139,6 +139,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nun se pudo atopar el ficheru o nun tienes permisu pa velu. Pidi al remitente que lu comparta.",
"Clipboard is not available" : "El cartafueyu nun ta disponible",
"WebDAV URL copied to clipboard" : "La URL de WebDAV copióse nel cartafueyu",
+ "All files" : "Tolos ficheros",
+ "Personal files" : "Ficheros personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar les carpetes enantes que los ficheros",
"Show hidden files" : "Amosar los ficheros anubríos",
@@ -180,6 +182,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)",
@@ -197,8 +202,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",
@@ -228,6 +233,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",
@@ -235,10 +243,8 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"],
"No favorites yet" : "Entá nun hai nengún elementu favoritu",
"Files and folders you mark as favorite will show up here" : "Equí apaecen los ficheros y carpetes que metas en Favoritos",
- "All files" : "Tolos ficheros",
"List of your files and folders." : "Una llista de los ficheros y les carpetes de to.",
"All folders" : "Toles carpetes",
- "Personal files" : "Ficheros personales",
"List of your files and folders that are not shared." : "Una llista de ficheros y carpetes que nun se compartieron.",
"No personal files found" : "Nun s'atopó nengún ficheru personal",
"Files that are not shared will show up here." : "Equí apaecen los ficheros que nun se compartan.",
@@ -246,12 +252,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Una llista de ficheros y carpetes modificaos de recién.",
"No recently modified files" : "Nun hai nengún ficheru modificáu de recién",
"Files and folders you recently modified will show up here." : "Equí apaecen los ficheros y les carpetes modificaes de recién.",
+ "Search" : "Buscar",
"No entries found in this folder" : "Nun s'atopó nenguna entrada nesta carpeta",
"Select all" : "Seleicionar too",
"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",
@@ -290,9 +296,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",
@@ -325,23 +328,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 5a2aa7d692d..ee87b9da2aa 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}",
@@ -89,7 +88,8 @@
"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",
+ "Filter in current view" : "Peñerar na vista actual",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} n'usu",
"{used} of {quota} used" : "{used} de {quota} n'usu",
"{relative}% used" : "{relative}% n'usu",
@@ -137,6 +137,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nun se pudo atopar el ficheru o nun tienes permisu pa velu. Pidi al remitente que lu comparta.",
"Clipboard is not available" : "El cartafueyu nun ta disponible",
"WebDAV URL copied to clipboard" : "La URL de WebDAV copióse nel cartafueyu",
+ "All files" : "Tolos ficheros",
+ "Personal files" : "Ficheros personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar les carpetes enantes que los ficheros",
"Show hidden files" : "Amosar los ficheros anubríos",
@@ -178,6 +180,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)",
@@ -195,8 +200,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",
@@ -226,6 +231,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",
@@ -233,10 +241,8 @@
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"],
"No favorites yet" : "Entá nun hai nengún elementu favoritu",
"Files and folders you mark as favorite will show up here" : "Equí apaecen los ficheros y carpetes que metas en Favoritos",
- "All files" : "Tolos ficheros",
"List of your files and folders." : "Una llista de los ficheros y les carpetes de to.",
"All folders" : "Toles carpetes",
- "Personal files" : "Ficheros personales",
"List of your files and folders that are not shared." : "Una llista de ficheros y carpetes que nun se compartieron.",
"No personal files found" : "Nun s'atopó nengún ficheru personal",
"Files that are not shared will show up here." : "Equí apaecen los ficheros que nun se compartan.",
@@ -244,12 +250,12 @@
"List of recently modified files and folders." : "Una llista de ficheros y carpetes modificaos de recién.",
"No recently modified files" : "Nun hai nengún ficheru modificáu de recién",
"Files and folders you recently modified will show up here." : "Equí apaecen los ficheros y les carpetes modificaes de recién.",
+ "Search" : "Buscar",
"No entries found in this folder" : "Nun s'atopó nenguna entrada nesta carpeta",
"Select all" : "Seleicionar too",
"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",
@@ -288,9 +294,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",
@@ -323,23 +326,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 164f4523d76..cc551b51909 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}",
@@ -67,8 +68,10 @@ OC.L10N.register(
"Pending" : "Чакащо",
"Clear filter" : "Изчстиване на филтър",
"Modified" : "Промяна",
+ "Search everywhere" : "Търси навсякъде",
"Type" : "Тип",
"Active filters" : "Актижни филтри",
+ "Remove filter" : "Премахни филтър",
"Total rows summary" : "Обобщение на общия брой редове",
"Name" : "Име",
"Size" : "Размер",
@@ -76,6 +79,8 @@ OC.L10N.register(
"\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно",
"Actions" : "Действия",
"File not found" : "Файлът не е намерен",
+ "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"],
+ "Search globally" : "Глобално търсене ",
"{usedQuotaByte} used" : "{usedQuotaByte} използвано",
"{used} of {quota} used" : "{used} от {quota} използвани",
"{relative}% used" : "{relative}% използвано",
@@ -114,6 +119,8 @@ OC.L10N.register(
"File cannot be accessed" : "Файлът не е достъпен",
"Clipboard is not available" : "Клипбордът не е достъпен",
"WebDAV URL copied to clipboard" : "WebDAV URL адрес е копиран в клипборда",
+ "All files" : "Всички файлове",
+ "Personal files" : "Лични файлове",
"Show hidden files" : "Показвай и скрити файлове",
"Crop image previews" : "Изрязване на визуализациите на изображение",
"Additional settings" : "Допълнителни настройки",
@@ -135,6 +142,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" : "Изтриване на файлове",
@@ -142,38 +152,49 @@ 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" : "Всички файлове",
+ "No personal files found" : "Не са открити лични файлове",
"Recent" : "Последни",
+ "Search" : "Търсене",
"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" : "Затвори",
@@ -209,9 +230,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}\" не може да бъде създадена защото вече съществува",
@@ -241,17 +259,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 d653ef6c367..7df72584461 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}",
@@ -65,8 +66,10 @@
"Pending" : "Чакащо",
"Clear filter" : "Изчстиване на филтър",
"Modified" : "Промяна",
+ "Search everywhere" : "Търси навсякъде",
"Type" : "Тип",
"Active filters" : "Актижни филтри",
+ "Remove filter" : "Премахни филтър",
"Total rows summary" : "Обобщение на общия брой редове",
"Name" : "Име",
"Size" : "Размер",
@@ -74,6 +77,8 @@
"\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно",
"Actions" : "Действия",
"File not found" : "Файлът не е намерен",
+ "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"],
+ "Search globally" : "Глобално търсене ",
"{usedQuotaByte} used" : "{usedQuotaByte} използвано",
"{used} of {quota} used" : "{used} от {quota} използвани",
"{relative}% used" : "{relative}% използвано",
@@ -112,6 +117,8 @@
"File cannot be accessed" : "Файлът не е достъпен",
"Clipboard is not available" : "Клипбордът не е достъпен",
"WebDAV URL copied to clipboard" : "WebDAV URL адрес е копиран в клипборда",
+ "All files" : "Всички файлове",
+ "Personal files" : "Лични файлове",
"Show hidden files" : "Показвай и скрити файлове",
"Crop image previews" : "Изрязване на визуализациите на изображение",
"Additional settings" : "Допълнителни настройки",
@@ -133,6 +140,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" : "Изтриване на файлове",
@@ -140,38 +150,49 @@
"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" : "Всички файлове",
+ "No personal files found" : "Не са открити лични файлове",
"Recent" : "Последни",
+ "Search" : "Търсене",
"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" : "Затвори",
@@ -207,9 +228,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}\" не може да бъде създадена защото вече съществува",
@@ -239,17 +257,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 c68e0c6de8e..c36545ad58c 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",
@@ -100,6 +99,7 @@ OC.L10N.register(
"Unknown date" : "Data desconeguda",
"Clear filter" : "Esborra el filtre",
"Modified" : "Darrera modificació",
+ "Search everywhere" : "Cerca a tot arreu",
"Type" : "Tipus",
"Active filters" : "Filtres actius",
"Remove filter" : "Suprimeix el filtre",
@@ -117,7 +117,9 @@ 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}",
+ "Filter file names …" : "Filtra els noms dels fitxers …",
+ "Filter in current view" : "Filtra a la vista actual",
+ "Search globally" : "Cerca globalment",
"{usedQuotaByte} used" : "{usedQuotaByte} en ús",
"{used} of {quota} used" : "{used} de {quota} en ús",
"{relative}% used" : "{relative}% en ús",
@@ -172,7 +174,6 @@ OC.L10N.register(
"No files in here" : "No hi ha cap fitxer aquí",
"Upload some content or sync with your devices!" : "Pugeu contingut o sincronitzeu els vostres dispositius!",
"Go back" : "Torna",
- "Filter file names …" : "Filtra els noms dels fitxers …",
"Views" : "Vistes",
"Files settings" : "Paràmetres de Fitxers",
"Your files" : "Els vostres fitxers",
@@ -181,6 +182,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "No s'ha trobat el fitxer o no teniu permisos per a visualitzar-lo. Demaneu al remitent que el comparteixi.",
"Clipboard is not available" : "El porta-retalls no està disponible",
"WebDAV URL copied to clipboard" : "S'ha copiat l'URL de WebDAV al porta-retalls",
+ "All files" : "Tots els fitxers",
+ "Personal files" : "Fitxers personals",
"Sort favorites first" : "Ordena primer els preferits",
"Sort folders before files" : "Ordena les carpetes abans dels fitxers",
"Show hidden files" : "Mostra els fitxers ocults",
@@ -220,6 +223,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",
@@ -260,8 +264,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)",
@@ -280,12 +287,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",
@@ -323,6 +330,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",
@@ -337,10 +347,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Llista de fitxers i carpetes preferits.",
"No favorites yet" : "Encara no teniu preferits",
"Files and folders you mark as favorite will show up here" : "Els fitxers i les carpetes que marqueu com a preferits es mostraran aquí",
- "All files" : "Tots els fitxers",
"List of your files and folders." : "Llista dels vostres fitxers i carpetes.",
"All folders" : "Totes les carpetes",
- "Personal files" : "Fitxers personals",
"List of your files and folders that are not shared." : "Llista dels vostres fitxers i carpetes que no compartiu.",
"No personal files found" : "No s'ha trobat cap fitxer personal",
"Files that are not shared will show up here." : "Els fitxers que no compartiu es mostraran aquí.",
@@ -348,12 +356,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Llista de fitxers i carpetes modificats recentment.",
"No recently modified files" : "No hi ha cap fitxer modificat recentment",
"Files and folders you recently modified will show up here." : "Els fitxers i les carpetes que heu modificat recentment es mostraran aquí.",
+ "Search" : "Cercar",
"No entries found in this folder" : "No s'ha trobat cap entrada en aquesta carpeta",
"Select all" : "Selecciona-ho tot",
"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",
@@ -392,9 +400,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",
@@ -427,35 +432,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 64c9ce4052f..49d2dfe9c28 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",
@@ -98,6 +97,7 @@
"Unknown date" : "Data desconeguda",
"Clear filter" : "Esborra el filtre",
"Modified" : "Darrera modificació",
+ "Search everywhere" : "Cerca a tot arreu",
"Type" : "Tipus",
"Active filters" : "Filtres actius",
"Remove filter" : "Suprimeix el filtre",
@@ -115,7 +115,9 @@
"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}",
+ "Filter file names …" : "Filtra els noms dels fitxers …",
+ "Filter in current view" : "Filtra a la vista actual",
+ "Search globally" : "Cerca globalment",
"{usedQuotaByte} used" : "{usedQuotaByte} en ús",
"{used} of {quota} used" : "{used} de {quota} en ús",
"{relative}% used" : "{relative}% en ús",
@@ -170,7 +172,6 @@
"No files in here" : "No hi ha cap fitxer aquí",
"Upload some content or sync with your devices!" : "Pugeu contingut o sincronitzeu els vostres dispositius!",
"Go back" : "Torna",
- "Filter file names …" : "Filtra els noms dels fitxers …",
"Views" : "Vistes",
"Files settings" : "Paràmetres de Fitxers",
"Your files" : "Els vostres fitxers",
@@ -179,6 +180,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "No s'ha trobat el fitxer o no teniu permisos per a visualitzar-lo. Demaneu al remitent que el comparteixi.",
"Clipboard is not available" : "El porta-retalls no està disponible",
"WebDAV URL copied to clipboard" : "S'ha copiat l'URL de WebDAV al porta-retalls",
+ "All files" : "Tots els fitxers",
+ "Personal files" : "Fitxers personals",
"Sort favorites first" : "Ordena primer els preferits",
"Sort folders before files" : "Ordena les carpetes abans dels fitxers",
"Show hidden files" : "Mostra els fitxers ocults",
@@ -218,6 +221,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",
@@ -258,8 +262,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)",
@@ -278,12 +285,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",
@@ -321,6 +328,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",
@@ -335,10 +345,8 @@
"List of favorite files and folders." : "Llista de fitxers i carpetes preferits.",
"No favorites yet" : "Encara no teniu preferits",
"Files and folders you mark as favorite will show up here" : "Els fitxers i les carpetes que marqueu com a preferits es mostraran aquí",
- "All files" : "Tots els fitxers",
"List of your files and folders." : "Llista dels vostres fitxers i carpetes.",
"All folders" : "Totes les carpetes",
- "Personal files" : "Fitxers personals",
"List of your files and folders that are not shared." : "Llista dels vostres fitxers i carpetes que no compartiu.",
"No personal files found" : "No s'ha trobat cap fitxer personal",
"Files that are not shared will show up here." : "Els fitxers que no compartiu es mostraran aquí.",
@@ -346,12 +354,12 @@
"List of recently modified files and folders." : "Llista de fitxers i carpetes modificats recentment.",
"No recently modified files" : "No hi ha cap fitxer modificat recentment",
"Files and folders you recently modified will show up here." : "Els fitxers i les carpetes que heu modificat recentment es mostraran aquí.",
+ "Search" : "Cercar",
"No entries found in this folder" : "No s'ha trobat cap entrada en aquesta carpeta",
"Select all" : "Selecciona-ho tot",
"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",
@@ -390,9 +398,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",
@@ -425,35 +430,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 b6c83a08aee..35c1278b58b 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,7 @@ 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.",
@@ -96,19 +96,27 @@ 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",
"Modified" : "Změněno",
+ "Search everywhere" : "Hledat všude",
"Type" : "Typ",
"Active filters" : "Zapnuté filtry",
"Remove filter" : "Odebrat filtr",
"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)",
@@ -117,7 +125,14 @@ 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}"],
+ "Search globally by filename …" : "Hledat všude podle názvu souboru…",
+ "Search here by filename …" : "Hledat zde podle názvu souboru…",
+ "Filter file names …" : "Filtrovat názvy souborů…",
+ "Search scope options" : "Předvolby rozsahu prohledávaného",
+ "Filter in current view" : "Filtrovat ve stávajícím pohledu",
+ "Search from this location" : "Hledat z tohoto umístění",
+ "Search globally" : "Hledat všude",
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{relative}% used" : "{relative}% využito",
@@ -172,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Žádné soubory",
"Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo proveďte synchronizaci se svými zařízeními!",
"Go back" : "Jít zpět",
- "Filter file names …" : "Filtrovat názvy souborů…",
"Views" : "Zobrazení",
"Files settings" : "Nastavení pro Soubory",
"Your files" : "Vaše soubory",
"Open in files" : "Otevřít v aplikaci Soubory",
"File cannot be accessed" : "K souboru se nedaří přistoupit",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Soubor se nepodařilo nalézt nebo nemáte oprávnění pro jeho zobrazení – požádejte odesilatele, aby vám ho nasdílel.",
+ "No search results for “{query}”" : "Nic nenalezeno pro „{query}“",
+ "Search for files" : "Hledat soubory",
"Clipboard is not available" : "Schránka není k dispozici",
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
+ "Default view" : "Výchozí pohled",
+ "All files" : "Všechny soubory",
+ "Personal files" : "Osobní soubory",
"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",
@@ -220,6 +240,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",
@@ -260,8 +281,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)",
@@ -280,12 +304,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",
@@ -323,6 +347,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é",
@@ -338,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Seznam oblíbených souborů a složek.",
"No favorites yet" : "Zatím nic oblíbeného",
"Files and folders you mark as favorite will show up here" : "Zde budou zobrazeny soubory a složky, které označíte jako oblíbené",
- "All files" : "Všechny soubory",
"List of your files and folders." : "Seznam vašich souborů a složek.",
"All folders" : "Všechny složky",
- "Personal files" : "Osobní soubory",
"List of your files and folders that are not shared." : "Seznam vašich souborů a složek, které nejsou sdíleny.",
"No personal files found" : "Nenalezeny žádné osobní soubory",
"Files that are not shared will show up here." : "Soubory, které nejsou nikomu sdíleny se zobrazí zde.",
@@ -349,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Seznam nedávno změněných souborů a složek.",
"No recently modified files" : "Žádné nedávno změněné soubory.",
"Files and folders you recently modified will show up here." : "Zde budou zobrazeny soubory a složky, které jste nedávno změnili.",
+ "Search" : "Hledat",
+ "Search results within your files." : "Výsledky hledání ve vašich souborech.",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Select all" : "Vybrat vše",
"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",
@@ -393,9 +419,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",
@@ -428,35 +451,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 1ee66b0e9c8..d0f8735cbc3 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,7 @@
"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.",
@@ -94,19 +94,27 @@
"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",
"Modified" : "Změněno",
+ "Search everywhere" : "Hledat všude",
"Type" : "Typ",
"Active filters" : "Zapnuté filtry",
"Remove filter" : "Odebrat filtr",
"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)",
@@ -115,7 +123,14 @@
"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}"],
+ "Search globally by filename …" : "Hledat všude podle názvu souboru…",
+ "Search here by filename …" : "Hledat zde podle názvu souboru…",
+ "Filter file names …" : "Filtrovat názvy souborů…",
+ "Search scope options" : "Předvolby rozsahu prohledávaného",
+ "Filter in current view" : "Filtrovat ve stávajícím pohledu",
+ "Search from this location" : "Hledat z tohoto umístění",
+ "Search globally" : "Hledat všude",
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{relative}% used" : "{relative}% využito",
@@ -170,18 +185,23 @@
"No files in here" : "Žádné soubory",
"Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo proveďte synchronizaci se svými zařízeními!",
"Go back" : "Jít zpět",
- "Filter file names …" : "Filtrovat názvy souborů…",
"Views" : "Zobrazení",
"Files settings" : "Nastavení pro Soubory",
"Your files" : "Vaše soubory",
"Open in files" : "Otevřít v aplikaci Soubory",
"File cannot be accessed" : "K souboru se nedaří přistoupit",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Soubor se nepodařilo nalézt nebo nemáte oprávnění pro jeho zobrazení – požádejte odesilatele, aby vám ho nasdílel.",
+ "No search results for “{query}”" : "Nic nenalezeno pro „{query}“",
+ "Search for files" : "Hledat soubory",
"Clipboard is not available" : "Schránka není k dispozici",
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
+ "Default view" : "Výchozí pohled",
+ "All files" : "Všechny soubory",
+ "Personal files" : "Osobní soubory",
"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",
@@ -218,6 +238,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",
@@ -258,8 +279,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)",
@@ -278,12 +302,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",
@@ -321,6 +345,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é",
@@ -336,10 +363,8 @@
"List of favorite files and folders." : "Seznam oblíbených souborů a složek.",
"No favorites yet" : "Zatím nic oblíbeného",
"Files and folders you mark as favorite will show up here" : "Zde budou zobrazeny soubory a složky, které označíte jako oblíbené",
- "All files" : "Všechny soubory",
"List of your files and folders." : "Seznam vašich souborů a složek.",
"All folders" : "Všechny složky",
- "Personal files" : "Osobní soubory",
"List of your files and folders that are not shared." : "Seznam vašich souborů a složek, které nejsou sdíleny.",
"No personal files found" : "Nenalezeny žádné osobní soubory",
"Files that are not shared will show up here." : "Soubory, které nejsou nikomu sdíleny se zobrazí zde.",
@@ -347,12 +372,13 @@
"List of recently modified files and folders." : "Seznam nedávno změněných souborů a složek.",
"No recently modified files" : "Žádné nedávno změněné soubory.",
"Files and folders you recently modified will show up here." : "Zde budou zobrazeny soubory a složky, které jste nedávno změnili.",
+ "Search" : "Hledat",
+ "Search results within your files." : "Výsledky hledání ve vašich souborech.",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Select all" : "Vybrat vše",
"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",
@@ -391,9 +417,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",
@@ -426,35 +449,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 929d5ad55f2..df99903f405 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}",
@@ -100,6 +99,7 @@ OC.L10N.register(
"Unknown date" : "Ukendt dato",
"Clear filter" : "Ryd filter",
"Modified" : "Ændret",
+ "Search everywhere" : "Søg overalt",
"Type" : "Type",
"Active filters" : "Aktive filtre",
"Remove filter" : "Fjern filter",
@@ -117,7 +117,9 @@ 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",
+ "Filter file names …" : "Filtrer filnavne ...",
+ "Filter in current view" : "Filtrer i den aktuelle visning",
+ "Search globally" : "Søg globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} brugt",
"{used} of {quota} used" : "{used} af {quota} brugt",
"{relative}% used" : "{relative}% brugt",
@@ -172,7 +174,6 @@ OC.L10N.register(
"No files in here" : "Her er ingen filer",
"Upload some content or sync with your devices!" : "Upload indhold eller synkroniser med dine enheder!",
"Go back" : "Gå tilbage",
- "Filter file names …" : "Filtrer filnavne ...",
"Views" : "Visninger",
"Files settings" : "indstillinger for filer",
"Your files" : "Dine filer",
@@ -181,6 +182,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen kunne ikke findes eller du har ikke tilladelser til at se den. Bed afsenderen om at dele den.",
"Clipboard is not available" : "Udklipsholderen er ikke tilgængelig",
"WebDAV URL copied to clipboard" : "WebDAV URL kopieret til udklipsholder",
+ "All files" : "Alle filer",
+ "Personal files" : "Personlige filer",
"Sort favorites first" : "Vis favoritter først",
"Sort folders before files" : "Sorter mapper før filer",
"Show hidden files" : "Vis skjulte filer",
@@ -220,6 +223,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",
@@ -260,8 +264,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)",
@@ -280,12 +287,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",
@@ -323,6 +330,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",
@@ -337,10 +347,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liste med favoritfiler og -mapper.",
"No favorites yet" : "Ingen foretrukne endnu",
"Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her",
- "All files" : "Alle filer",
"List of your files and folders." : "Liste med dine filer og mapper.",
"All folders" : "Alle mapper",
- "Personal files" : "Personlige filer",
"List of your files and folders that are not shared." : "Liste med dine filer og mapper, der ikke er delt.",
"No personal files found" : "Ingen personlige filer fundet",
"Files that are not shared will show up here." : "Filer der ikke er delt vil blive vist her.",
@@ -348,12 +356,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liste med nyligt ændrede filer og mapper.",
"No recently modified files" : "Ingen filer er ændret for nyligt",
"Files and folders you recently modified will show up here." : "Filer og mapper som du har ændret for nyligt, vil blive vist her.",
+ "Search" : "Søg",
"No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
"Select all" : "Vælg alle",
"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",
@@ -392,9 +400,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",
@@ -427,35 +432,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 0d031b957c0..b7c088c363b 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}",
@@ -98,6 +97,7 @@
"Unknown date" : "Ukendt dato",
"Clear filter" : "Ryd filter",
"Modified" : "Ændret",
+ "Search everywhere" : "Søg overalt",
"Type" : "Type",
"Active filters" : "Aktive filtre",
"Remove filter" : "Fjern filter",
@@ -115,7 +115,9 @@
"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",
+ "Filter file names …" : "Filtrer filnavne ...",
+ "Filter in current view" : "Filtrer i den aktuelle visning",
+ "Search globally" : "Søg globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} brugt",
"{used} of {quota} used" : "{used} af {quota} brugt",
"{relative}% used" : "{relative}% brugt",
@@ -170,7 +172,6 @@
"No files in here" : "Her er ingen filer",
"Upload some content or sync with your devices!" : "Upload indhold eller synkroniser med dine enheder!",
"Go back" : "Gå tilbage",
- "Filter file names …" : "Filtrer filnavne ...",
"Views" : "Visninger",
"Files settings" : "indstillinger for filer",
"Your files" : "Dine filer",
@@ -179,6 +180,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen kunne ikke findes eller du har ikke tilladelser til at se den. Bed afsenderen om at dele den.",
"Clipboard is not available" : "Udklipsholderen er ikke tilgængelig",
"WebDAV URL copied to clipboard" : "WebDAV URL kopieret til udklipsholder",
+ "All files" : "Alle filer",
+ "Personal files" : "Personlige filer",
"Sort favorites first" : "Vis favoritter først",
"Sort folders before files" : "Sorter mapper før filer",
"Show hidden files" : "Vis skjulte filer",
@@ -218,6 +221,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",
@@ -258,8 +262,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)",
@@ -278,12 +285,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",
@@ -321,6 +328,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",
@@ -335,10 +345,8 @@
"List of favorite files and folders." : "Liste med favoritfiler og -mapper.",
"No favorites yet" : "Ingen foretrukne endnu",
"Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her",
- "All files" : "Alle filer",
"List of your files and folders." : "Liste med dine filer og mapper.",
"All folders" : "Alle mapper",
- "Personal files" : "Personlige filer",
"List of your files and folders that are not shared." : "Liste med dine filer og mapper, der ikke er delt.",
"No personal files found" : "Ingen personlige filer fundet",
"Files that are not shared will show up here." : "Filer der ikke er delt vil blive vist her.",
@@ -346,12 +354,12 @@
"List of recently modified files and folders." : "Liste med nyligt ændrede filer og mapper.",
"No recently modified files" : "Ingen filer er ændret for nyligt",
"Files and folders you recently modified will show up here." : "Filer og mapper som du har ændret for nyligt, vil blive vist her.",
+ "Search" : "Søg",
"No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
"Select all" : "Vælg alle",
"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",
@@ -390,9 +398,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",
@@ -425,35 +430,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 a4a71d0087f..80dd30e45c3 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Geändert",
+ "Search everywhere" : "Überall suchen",
"Type" : "Typ",
"Active filters" : "Aktive Filter",
"Remove filter" : "Filter entfernen",
"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}\" ausgeführt",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Global nach Dateinamen suchen …",
+ "Search here by filename …" : "Hier nach Dateinamen suchen …",
+ "Filter file names …" : "Dateinamen filtern …",
+ "Search scope options" : "Suchbereichsoptionen",
+ "Filter in current view" : "Filter in aktueller Ansicht",
+ "Search from this location" : "Von diesem Ort aus suchen",
+ "Search globally" : "Global suchen",
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
"{relative}% used" : "{relative} % verwendet",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Lade Inhalte hoch oder synchronisiere sie mit deinen Geräten!",
"Go back" : "Zurückgehen",
- "Filter file names …" : "Dateinamen filtern …",
"Views" : "Ansichten",
"Files settings" : "Dateien-Einstellungen",
"Your files" : "Deine Dateien",
"Open in files" : "In Dateien öffnen",
"File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Die Datei konnte nicht gefunden werden oder Du hast keine Berechtigung, um sie anzuzeigen. Bitte den Absender, die Datei zu teilen.",
+ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"",
+ "Search for files" : "Nach Dateien suchen",
"Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
"WebDAV URL copied to clipboard" : "WebDAV-URL in die Zwischenablage kopiert",
+ "Default view" : "Standardansicht",
+ "All files" : "Alle Dateien",
+ "Personal files" : "Persönliche Dateien",
"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",
@@ -193,7 +211,7 @@ 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" : "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.",
@@ -211,7 +229,7 @@ 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)",
@@ -222,6 +240,7 @@ OC.L10N.register(
"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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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",
@@ -325,6 +347,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",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liste der favorisierten Ordner und Dateien.",
"No favorites yet" : "Noch keine Favoriten vorhanden",
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier",
- "All files" : "Alle Dateien",
"List of your files and folders." : "Liste deiner Dateien und Ordner",
"All folders" : "Alle Ordner",
- "Personal files" : "Persönliche Dateien",
"List of your files and folders that are not shared." : "Liste deiner Dateien und Ordner, die nicht geteilt wurden.",
"No personal files found" : "Keine persönlichen Dateien gefunden",
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liste der zuletzt geänderten Dateien und Ordner",
"No recently modified files" : "Keine kürzlich geänderten Dateien",
"Files and folders you recently modified will show up here." : "Die von dir kürzlich geänderten Dateien und Ordner werden hier angezeigt.",
+ "Search" : "Suche",
+ "Search results within your files." : "Suchergebnisse innerhalb deiner Dateien.",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"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",
@@ -395,9 +419,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",
@@ -430,35 +451,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 8c460f60c44..07a16b2f6c8 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Geändert",
+ "Search everywhere" : "Überall suchen",
"Type" : "Typ",
"Active filters" : "Aktive Filter",
"Remove filter" : "Filter entfernen",
"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}\" ausgeführt",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Global nach Dateinamen suchen …",
+ "Search here by filename …" : "Hier nach Dateinamen suchen …",
+ "Filter file names …" : "Dateinamen filtern …",
+ "Search scope options" : "Suchbereichsoptionen",
+ "Filter in current view" : "Filter in aktueller Ansicht",
+ "Search from this location" : "Von diesem Ort aus suchen",
+ "Search globally" : "Global suchen",
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
"{relative}% used" : "{relative} % verwendet",
@@ -172,18 +185,23 @@
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Lade Inhalte hoch oder synchronisiere sie mit deinen Geräten!",
"Go back" : "Zurückgehen",
- "Filter file names …" : "Dateinamen filtern …",
"Views" : "Ansichten",
"Files settings" : "Dateien-Einstellungen",
"Your files" : "Deine Dateien",
"Open in files" : "In Dateien öffnen",
"File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Die Datei konnte nicht gefunden werden oder Du hast keine Berechtigung, um sie anzuzeigen. Bitte den Absender, die Datei zu teilen.",
+ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"",
+ "Search for files" : "Nach Dateien suchen",
"Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
"WebDAV URL copied to clipboard" : "WebDAV-URL in die Zwischenablage kopiert",
+ "Default view" : "Standardansicht",
+ "All files" : "Alle Dateien",
+ "Personal files" : "Persönliche Dateien",
"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",
@@ -191,7 +209,7 @@
"WebDAV" : "WebDAV",
"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.",
@@ -209,7 +227,7 @@
"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)",
@@ -220,6 +238,7 @@
"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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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",
@@ -323,6 +345,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",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "Liste der favorisierten Ordner und Dateien.",
"No favorites yet" : "Noch keine Favoriten vorhanden",
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier",
- "All files" : "Alle Dateien",
"List of your files and folders." : "Liste deiner Dateien und Ordner",
"All folders" : "Alle Ordner",
- "Personal files" : "Persönliche Dateien",
"List of your files and folders that are not shared." : "Liste deiner Dateien und Ordner, die nicht geteilt wurden.",
"No personal files found" : "Keine persönlichen Dateien gefunden",
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "Liste der zuletzt geänderten Dateien und Ordner",
"No recently modified files" : "Keine kürzlich geänderten Dateien",
"Files and folders you recently modified will show up here." : "Die von dir kürzlich geänderten Dateien und Ordner werden hier angezeigt.",
+ "Search" : "Suche",
+ "Search results within your files." : "Suchergebnisse innerhalb deiner Dateien.",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"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",
@@ -393,9 +417,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",
@@ -428,35 +449,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 b65015e0f68..822d552bd6c 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Geändert",
+ "Search everywhere" : "Überall suchen",
"Type" : "Typ",
"Active filters" : "Aktive Filter",
"Remove filter" : "Filter entfernen",
"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}\" ausgeführt",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Global nach Dateinamen suchen …",
+ "Search here by filename …" : "Hier nach Dateinamen suchen …",
+ "Filter file names …" : "Dateinamen filtern …",
+ "Search scope options" : "Suchbereichsoptionen",
+ "Filter in current view" : "Filter in aktueller Ansicht",
+ "Search from this location" : "Von diesem Ort aus suchen",
+ "Search globally" : "Global suchen",
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
"{relative}% used" : "{relative} % verwendet",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie Ihre Geräte!",
"Go back" : "Zurückgehen",
- "Filter file names …" : "Dateinamen filtern …",
"Views" : "Ansichten",
"Files settings" : "Dateien-Einstellungen",
"Your files" : "Ihre Dateien",
"Open in files" : "In Dateien öffnen",
"File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Die Datei konnte nicht gefunden werden oder Sie haben keine Berechtigungen, um sie anzuzeigen. Bitten Sie den Absender, die Datei zu teilen.",
+ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"",
+ "Search for files" : "Nach Dateien suchen",
"Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
"WebDAV URL copied to clipboard" : "WebDAV-URL in die Zwischenablage kopiert",
+ "Default view" : "Standardansicht",
+ "All files" : "Alle Dateien",
+ "Personal files" : "Persönliche Dateien",
"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",
@@ -193,14 +211,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",
@@ -211,7 +229,7 @@ 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)",
@@ -222,6 +240,7 @@ OC.L10N.register(
"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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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",
@@ -325,6 +347,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",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liste der favorisierten Ordner und Dateien.",
"No favorites yet" : "Noch keine Favoriten vorhanden",
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
- "All files" : "Alle Dateien",
"List of your files and folders." : "Liste Ihrer Dateien und Ordner.",
"All folders" : "Alle Ordner",
- "Personal files" : "Persönliche Dateien",
"List of your files and folders that are not shared." : "Liste Ihrer Dateien und Ordner, die nicht geteilt wurden.",
"No personal files found" : "Keine persönlichen Dateien gefunden",
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liste der zuletzt geänderten Dateien und Ordner.",
"No recently modified files" : "Keine kürzlich geänderten Dateien",
"Files and folders you recently modified will show up here." : "Die von Ihnen kürzlich geänderten Dateien und Ordner werden hier angezeigt.",
+ "Search" : "Suche",
+ "Search results within your files." : "Suchergebnisse innerhalb Ihrer Dateien.",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"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",
@@ -395,9 +419,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",
@@ -430,35 +451,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 3818398effb..ffc13476d68 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Geändert",
+ "Search everywhere" : "Überall suchen",
"Type" : "Typ",
"Active filters" : "Aktive Filter",
"Remove filter" : "Filter entfernen",
"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}\" ausgeführt",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Global nach Dateinamen suchen …",
+ "Search here by filename …" : "Hier nach Dateinamen suchen …",
+ "Filter file names …" : "Dateinamen filtern …",
+ "Search scope options" : "Suchbereichsoptionen",
+ "Filter in current view" : "Filter in aktueller Ansicht",
+ "Search from this location" : "Von diesem Ort aus suchen",
+ "Search globally" : "Global suchen",
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
"{relative}% used" : "{relative} % verwendet",
@@ -172,18 +185,23 @@
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie Ihre Geräte!",
"Go back" : "Zurückgehen",
- "Filter file names …" : "Dateinamen filtern …",
"Views" : "Ansichten",
"Files settings" : "Dateien-Einstellungen",
"Your files" : "Ihre Dateien",
"Open in files" : "In Dateien öffnen",
"File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Die Datei konnte nicht gefunden werden oder Sie haben keine Berechtigungen, um sie anzuzeigen. Bitten Sie den Absender, die Datei zu teilen.",
+ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"",
+ "Search for files" : "Nach Dateien suchen",
"Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
"WebDAV URL copied to clipboard" : "WebDAV-URL in die Zwischenablage kopiert",
+ "Default view" : "Standardansicht",
+ "All files" : "Alle Dateien",
+ "Personal files" : "Persönliche Dateien",
"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",
@@ -191,14 +209,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",
@@ -209,7 +227,7 @@
"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)",
@@ -220,6 +238,7 @@
"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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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",
@@ -323,6 +345,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",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "Liste der favorisierten Ordner und Dateien.",
"No favorites yet" : "Noch keine Favoriten vorhanden",
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
- "All files" : "Alle Dateien",
"List of your files and folders." : "Liste Ihrer Dateien und Ordner.",
"All folders" : "Alle Ordner",
- "Personal files" : "Persönliche Dateien",
"List of your files and folders that are not shared." : "Liste Ihrer Dateien und Ordner, die nicht geteilt wurden.",
"No personal files found" : "Keine persönlichen Dateien gefunden",
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "Liste der zuletzt geänderten Dateien und Ordner.",
"No recently modified files" : "Keine kürzlich geänderten Dateien",
"Files and folders you recently modified will show up here." : "Die von Ihnen kürzlich geänderten Dateien und Ordner werden hier angezeigt.",
+ "Search" : "Suche",
+ "Search results within your files." : "Suchergebnisse innerhalb Ihrer Dateien.",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"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",
@@ -393,9 +417,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",
@@ -428,35 +449,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 e7660c639ba..a2d6752c92f 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}",
@@ -83,6 +82,7 @@ OC.L10N.register(
"Pending" : "Εκκρεμεί",
"Clear filter" : "Εκκαθάριση φίλτρου",
"Modified" : "Τροποποιήθηκε",
+ "Search everywhere" : "Αναζητήστε παντού",
"Type" : "Τύπος",
"Active filters" : "Ενεργά φίλτρα",
"Remove filter" : "Αφαίρεση φίλτρου",
@@ -97,7 +97,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} έχουν επιλεγεί",
+ "Search globally" : "Γενική αναζήτηση",
"{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται",
"{used} of {quota} used" : "Χρήση {used} από {quota} ",
"{relative}% used" : "{relative}% χρησιμοποιείται",
@@ -147,6 +147,8 @@ OC.L10N.register(
"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" : "Ο σύνδεσμος WebDAV αντιγράφηκε στο πρόχειρο",
+ "All files" : "Όλα τα αρχεία",
+ "Personal files" : "Προσωπικά αρχεία",
"Sort favorites first" : "Ταξινόμηση των αγαπημένων πρώτα",
"Sort folders before files" : "Ταξινόμηση φακέλων πριν από τα αρχεία",
"Show hidden files" : "Εμφάνιση κρυφών αρχείων",
@@ -185,6 +187,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)",
@@ -230,6 +235,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" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά",
@@ -242,9 +250,7 @@ OC.L10N.register(
"Filenames must not end with \"{extension}\"." : "Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{extension}\".",
"No favorites yet" : "Κανένα αγαπημένο ακόμα",
"Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ",
- "All files" : "Όλα τα αρχεία",
"List of your files and folders." : "Λίστα των αρχείων και φακέλων σας.",
- "Personal files" : "Προσωπικά αρχεία",
"List of your files and folders that are not shared." : "Λίστα αρχείων και φακέλων που δεν είναι κοινόχρηστα.",
"No personal files found" : "Δε βρέθηκαν προσωπικά αρχεία",
"Files that are not shared will show up here." : "Τα αρχεία που δεν είναι κοινόχρηστα θα εμφανίζονται εδώ.",
@@ -252,12 +258,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Λίστα των πρόσφατα τροποποιημένων αρχείων και φακέλων.",
"No recently modified files" : "Δεν υπάρχουν πρόσφατα τροποποιημένα αρχεία",
"Files and folders you recently modified will show up here." : "Εδώ θα εμφανίζονται τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα.",
+ "Search" : "Αναζήτηση",
"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" : "Κλείσιμο",
@@ -296,9 +302,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}\" επειδή υπάρχει ήδη",
@@ -331,27 +334,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 08140644385..d5e186294e9 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}",
@@ -81,6 +80,7 @@
"Pending" : "Εκκρεμεί",
"Clear filter" : "Εκκαθάριση φίλτρου",
"Modified" : "Τροποποιήθηκε",
+ "Search everywhere" : "Αναζητήστε παντού",
"Type" : "Τύπος",
"Active filters" : "Ενεργά φίλτρα",
"Remove filter" : "Αφαίρεση φίλτρου",
@@ -95,7 +95,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} έχουν επιλεγεί",
+ "Search globally" : "Γενική αναζήτηση",
"{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται",
"{used} of {quota} used" : "Χρήση {used} από {quota} ",
"{relative}% used" : "{relative}% χρησιμοποιείται",
@@ -145,6 +145,8 @@
"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" : "Ο σύνδεσμος WebDAV αντιγράφηκε στο πρόχειρο",
+ "All files" : "Όλα τα αρχεία",
+ "Personal files" : "Προσωπικά αρχεία",
"Sort favorites first" : "Ταξινόμηση των αγαπημένων πρώτα",
"Sort folders before files" : "Ταξινόμηση φακέλων πριν από τα αρχεία",
"Show hidden files" : "Εμφάνιση κρυφών αρχείων",
@@ -183,6 +185,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)",
@@ -228,6 +233,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" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά",
@@ -240,9 +248,7 @@
"Filenames must not end with \"{extension}\"." : "Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{extension}\".",
"No favorites yet" : "Κανένα αγαπημένο ακόμα",
"Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ",
- "All files" : "Όλα τα αρχεία",
"List of your files and folders." : "Λίστα των αρχείων και φακέλων σας.",
- "Personal files" : "Προσωπικά αρχεία",
"List of your files and folders that are not shared." : "Λίστα αρχείων και φακέλων που δεν είναι κοινόχρηστα.",
"No personal files found" : "Δε βρέθηκαν προσωπικά αρχεία",
"Files that are not shared will show up here." : "Τα αρχεία που δεν είναι κοινόχρηστα θα εμφανίζονται εδώ.",
@@ -250,12 +256,12 @@
"List of recently modified files and folders." : "Λίστα των πρόσφατα τροποποιημένων αρχείων και φακέλων.",
"No recently modified files" : "Δεν υπάρχουν πρόσφατα τροποποιημένα αρχεία",
"Files and folders you recently modified will show up here." : "Εδώ θα εμφανίζονται τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα.",
+ "Search" : "Αναζήτηση",
"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" : "Κλείσιμο",
@@ -294,9 +300,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}\" επειδή υπάρχει ήδη",
@@ -329,27 +332,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 fd8ec312af7..5acca57454f 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Modified",
+ "Search everywhere" : "Search everywhere",
"Type" : "Type",
"Active filters" : "Active filters",
"Remove filter" : "Remove filter",
"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",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Search globally by filename …",
+ "Search here by filename …" : "Search here by filename …",
+ "Filter file names …" : "Filter file names …",
+ "Search scope options" : "Search scope options",
+ "Filter in current view" : "Filter in current view",
+ "Search from this location" : "Search from this location",
+ "Search globally" : "Search globally",
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "No files in here",
"Upload some content or sync with your devices!" : "Upload some content or sync with your devices!",
"Go back" : "Go back",
- "Filter file names …" : "Filter file names …",
"Views" : "Views",
"Files settings" : "Files settings",
"Your files" : "Your files",
"Open in files" : "Open in files",
"File cannot be accessed" : "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.",
+ "No search results for “{query}”" : "No search results for “{query}”",
+ "Search for files" : "Search for files",
"Clipboard is not available" : "Clipboard is not available",
"WebDAV URL copied to clipboard" : "WebDAV URL copied to clipboard",
+ "Default view" : "Default view",
+ "All files" : "All files",
+ "Personal files" : "Personal files",
"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",
@@ -222,6 +240,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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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",
@@ -325,6 +347,9 @@ 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",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "List of favourite files and folders.",
"No favorites yet" : "No favourites yet",
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
- "All files" : "All files",
"List of your files and folders." : "List of your files and folders.",
"All folders" : "All folders",
- "Personal files" : "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.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "List of recently modified files and folders.",
"No recently modified files" : "No recently modified files",
"Files and folders you recently modified will show up here." : "Files and folders you recently modified will show up here.",
+ "Search" : "Search",
+ "Search results within your files." : "Search results within your files.",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"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",
@@ -395,9 +419,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",
@@ -430,35 +451,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 912befe3b81..75a82581504 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Modified",
+ "Search everywhere" : "Search everywhere",
"Type" : "Type",
"Active filters" : "Active filters",
"Remove filter" : "Remove filter",
"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",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Search globally by filename …",
+ "Search here by filename …" : "Search here by filename …",
+ "Filter file names …" : "Filter file names …",
+ "Search scope options" : "Search scope options",
+ "Filter in current view" : "Filter in current view",
+ "Search from this location" : "Search from this location",
+ "Search globally" : "Search globally",
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -172,18 +185,23 @@
"No files in here" : "No files in here",
"Upload some content or sync with your devices!" : "Upload some content or sync with your devices!",
"Go back" : "Go back",
- "Filter file names …" : "Filter file names …",
"Views" : "Views",
"Files settings" : "Files settings",
"Your files" : "Your files",
"Open in files" : "Open in files",
"File cannot be accessed" : "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.",
+ "No search results for “{query}”" : "No search results for “{query}”",
+ "Search for files" : "Search for files",
"Clipboard is not available" : "Clipboard is not available",
"WebDAV URL copied to clipboard" : "WebDAV URL copied to clipboard",
+ "Default view" : "Default view",
+ "All files" : "All files",
+ "Personal files" : "Personal files",
"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",
@@ -220,6 +238,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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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",
@@ -323,6 +345,9 @@
"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",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "List of favourite files and folders.",
"No favorites yet" : "No favourites yet",
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
- "All files" : "All files",
"List of your files and folders." : "List of your files and folders.",
"All folders" : "All folders",
- "Personal files" : "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.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "List of recently modified files and folders.",
"No recently modified files" : "No recently modified files",
"Files and folders you recently modified will show up here." : "Files and folders you recently modified will show up here.",
+ "Search" : "Search",
+ "Search results within your files." : "Search results within your files.",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"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",
@@ -393,9 +417,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",
@@ -428,35 +449,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 6a81757f167..d74b1824a9f 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -49,12 +49,11 @@ OC.L10N.register(
"The file cannot be found" : "El archivo no se puede encontrar",
"The destination path does not exist: %1$s" : "La ruta de destino no existe: %1$s",
"You do not have permission to create a file at the specified location" : "No tienes permiso para crear un archivo en la ubicación especificada",
- "The file could not be converted." : "El archivo no se pudo convertir.",
- "Could not get relative path to converted file" : "No se pudo obtener la ruta relativa al archivo convertido",
+ "The file could not be converted." : "No se ha podido convertir el archivo.",
+ "Could not get relative path to converted file" : "No se ha podido obtener la ruta relativa al archivo convertido",
"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}",
@@ -81,7 +80,7 @@ OC.L10N.register(
"Go to the \"{dir}\" directory" : "Ir a la carpeta \"{dir}\"",
"Current directory path" : "Dirección de la carpeta actual",
"Your have used your space quota and cannot upload files anymore" : "Ha utilizado su cuota de espacio y ya no puede subir más archivos",
- "You do not have permission to upload or create files here." : "No tiene permiso para subir o crear archivos aquí",
+ "You do not have permission to upload or create files here." : "No tienes permiso para subir o crear archivos aquí",
"Drag and drop files here to upload" : "Arrastre y suelte archivos aquí para subirlos",
"Favorite" : "Favorito",
"Back" : "Atrás",
@@ -97,16 +96,23 @@ OC.L10N.register(
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
"Folder" : "Carpeta",
+ "Unknown file type" : "Tipo de archivo desconocido",
+ "{ext} image" : "imagen {ext}",
+ "{ext} video" : "vídeo {ext}",
+ "{ext} audio" : "audio {ext}",
+ "{ext} text" : "texto {ext}",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Borrar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar en todas partes",
"Type" : "Tipo",
"Active filters" : "Filtros activos",
"Remove filter" : "Quitar filtro",
"Total rows summary" : "Resumen de filas totales",
"Toggle selection for all files and folders" : "Seleccionar/deseleccionar todos los archivos y carpetas",
"Name" : "Nombre",
+ "File type" : "Tipo de archivo",
"Size" : "Tamaño",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" fallo en algunos elementos",
"\"{displayName}\" batch action executed successfully" : "la acción en lotes \"{displayName}\" se ejecutó exitósamente",
@@ -118,7 +124,14 @@ 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"],
+ "Search globally by filename …" : "Búsqueda global por nombre de archivo...",
+ "Search here by filename …" : "Buscar aquí por nombre de archivo...",
+ "Filter file names …" : "Filtrar nombres de archivo…",
+ "Search scope options" : "Opciones de alcance de la búsqueda",
+ "Filter in current view" : "Filtrar en la vista actual",
+ "Search from this location" : "Buscar desde esta ubicación",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} usados de {quota}",
"{relative}% used" : "{relative}% utilizado",
@@ -161,7 +174,7 @@ OC.L10N.register(
"Switch to list view" : "Cambiar a vista de lista",
"Switch to grid view" : "Cambiar a vista de cuadrícula",
"The file could not be found" : "El archivo no se pudo encontrar",
- "Upload was cancelled by user" : "La carga fue cancelada por el usuario",
+ "Upload was cancelled by user" : "La subida ha sido cancelada por el usuario",
"Not enough free space" : "No hay espacio libre suficiente",
"Operation is blocked by access control" : "Esta operación está bloqueada por el control de accesos",
"Error during upload: {message}" : "Error durante la subida: {message}",
@@ -173,18 +186,23 @@ OC.L10N.register(
"No files in here" : "Aquí no hay archivos",
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
"Go back" : "Ir atrás",
- "Filter file names …" : "Filtrar nombres de archivo…",
"Views" : "Vistas",
"Files settings" : "Configuración de archivos",
"Your files" : "Sus archivos",
"Open in files" : "Abrir en archivos",
"File cannot be accessed" : "No se ha podido acceder al archivo",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "El archivo no fue encontrado o no tiene permisos para verlo. Solicite al remitente que lo comparta.",
+ "No search results for “{query}”" : "No hay resultados para “{query}”",
+ "Search for files" : "Buscar archivos",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "El URL Webdav URL fue copiado al portapapeles",
+ "Default view" : "Vista predeterminada",
+ "All files" : "Todos los archivos",
+ "Personal files" : "Archivos personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar carpetas antes que archivos",
"Show hidden files" : "Mostrar archivos ocultos",
+ "Show file type column" : "Mostrar la columna de tipo de archivo",
"Crop image previews" : "Recortar la previsualización de las imágenes",
"Enable the grid view" : "Habilitar vista de cuadrícula",
"Enable folder tree" : "Habilitar el árbol de carpetas",
@@ -194,7 +212,7 @@ OC.L10N.register(
"Copy to clipboard" : "Copiar al portapapeles",
"Use this address to access your Files via WebDAV" : "Use esta dirección para acceder a tus archivos vía WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Si ha habilitado 2FA, debe crear y utilizar una nueva contraseña de aplicación haciendo clic aquí.",
- "Warnings" : "Avisos",
+ "Warnings" : "Advertencias",
"Prevent warning dialogs from open or reenable them." : "Evitar que se abran los diálogos de advertencia o volver a habilitarlos.",
"Show a warning dialog when changing a file extension." : "Mostrar un diálogo de advertencia cuando se cambia la extensión de un archivo.",
"Keyboard shortcuts" : "Atajos de teclado",
@@ -219,8 +237,9 @@ OC.L10N.register(
"Toggle the grid view" : "Alternar vista en cuadrícula",
"Open the sidebar for a file" : "Abrir la barra lateral de un archivo",
"Show those shortcuts" : "Mostrar estos atajos de teclado",
- "You" : "Usted",
+ "You" : "Tú",
"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",
@@ -261,8 +280,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)",
@@ -281,12 +303,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",
@@ -318,12 +340,15 @@ OC.L10N.register(
"Some files could not be uploaded" : "No se pudieron subir algunos archivos",
"Files uploaded successfully" : "Se subieron los archivos exitosamente",
"No files to process" : "No hay archivos para procesar",
- "Some files could not be copied" : "Algunos archivos no se pudieron copiar",
- "Some files could not be moved" : "No se ha podido mover algunos archivos",
- "Files copied successfully" : "Archivos copiados exitosamente",
- "Files moved successfully" : "Archivos movidos exitosamente",
+ "Some files could not be copied" : "Algunos archivos no se han podido copiar",
+ "Some files could not be moved" : "No se han podido mover algunos archivos",
+ "Files copied successfully" : "Archivos copiados con éxito",
+ "Files moved successfully" : "Archivos movidos con éxito",
"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",
@@ -339,10 +364,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista de archivos y carpetas favoritos.",
"No favorites yet" : "Aún no hay favoritos",
"Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que has marcado como favoritos",
- "All files" : "Todos los archivos",
"List of your files and folders." : "Lista de sus archivos y carpetas.",
"All folders" : "Todas las carpetas",
- "Personal files" : "Archivos personales",
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
"No personal files found" : "No se encontraron archivos personales",
"Files that are not shared will show up here." : "Los archivos y carpetas que no ha compartido aparecerán aquí.",
@@ -350,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista de archivos y carpetas modificados recientemente.",
"No recently modified files" : "No hay archivos modificados recientemente.",
"Files and folders you recently modified will show up here." : "Los archivos y carpetas que ha modificado recientemente aparecerán aquí.",
+ "Search" : "Buscar",
+ "Search results within your files." : "Resultados de búsqueda dentro de tus archivos.",
"No entries found in this folder" : "No hay entradas en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -394,9 +418,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",
@@ -429,35 +450,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." : "Una vez activados los nombres de archivo compatibles con Windows, los archivos existentes ya no se podrán modificar, pero su propietario podrá renombrarlos a otros nombres válidos de archivo."
},
"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 1fc8796f0c8..2f805e201e9 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -47,12 +47,11 @@
"The file cannot be found" : "El archivo no se puede encontrar",
"The destination path does not exist: %1$s" : "La ruta de destino no existe: %1$s",
"You do not have permission to create a file at the specified location" : "No tienes permiso para crear un archivo en la ubicación especificada",
- "The file could not be converted." : "El archivo no se pudo convertir.",
- "Could not get relative path to converted file" : "No se pudo obtener la ruta relativa al archivo convertido",
+ "The file could not be converted." : "No se ha podido convertir el archivo.",
+ "Could not get relative path to converted file" : "No se ha podido obtener la ruta relativa al archivo convertido",
"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}",
@@ -79,7 +78,7 @@
"Go to the \"{dir}\" directory" : "Ir a la carpeta \"{dir}\"",
"Current directory path" : "Dirección de la carpeta actual",
"Your have used your space quota and cannot upload files anymore" : "Ha utilizado su cuota de espacio y ya no puede subir más archivos",
- "You do not have permission to upload or create files here." : "No tiene permiso para subir o crear archivos aquí",
+ "You do not have permission to upload or create files here." : "No tienes permiso para subir o crear archivos aquí",
"Drag and drop files here to upload" : "Arrastre y suelte archivos aquí para subirlos",
"Favorite" : "Favorito",
"Back" : "Atrás",
@@ -95,16 +94,23 @@
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
"Folder" : "Carpeta",
+ "Unknown file type" : "Tipo de archivo desconocido",
+ "{ext} image" : "imagen {ext}",
+ "{ext} video" : "vídeo {ext}",
+ "{ext} audio" : "audio {ext}",
+ "{ext} text" : "texto {ext}",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Borrar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar en todas partes",
"Type" : "Tipo",
"Active filters" : "Filtros activos",
"Remove filter" : "Quitar filtro",
"Total rows summary" : "Resumen de filas totales",
"Toggle selection for all files and folders" : "Seleccionar/deseleccionar todos los archivos y carpetas",
"Name" : "Nombre",
+ "File type" : "Tipo de archivo",
"Size" : "Tamaño",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" fallo en algunos elementos",
"\"{displayName}\" batch action executed successfully" : "la acción en lotes \"{displayName}\" se ejecutó exitósamente",
@@ -116,7 +122,14 @@
"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"],
+ "Search globally by filename …" : "Búsqueda global por nombre de archivo...",
+ "Search here by filename …" : "Buscar aquí por nombre de archivo...",
+ "Filter file names …" : "Filtrar nombres de archivo…",
+ "Search scope options" : "Opciones de alcance de la búsqueda",
+ "Filter in current view" : "Filtrar en la vista actual",
+ "Search from this location" : "Buscar desde esta ubicación",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} usados de {quota}",
"{relative}% used" : "{relative}% utilizado",
@@ -159,7 +172,7 @@
"Switch to list view" : "Cambiar a vista de lista",
"Switch to grid view" : "Cambiar a vista de cuadrícula",
"The file could not be found" : "El archivo no se pudo encontrar",
- "Upload was cancelled by user" : "La carga fue cancelada por el usuario",
+ "Upload was cancelled by user" : "La subida ha sido cancelada por el usuario",
"Not enough free space" : "No hay espacio libre suficiente",
"Operation is blocked by access control" : "Esta operación está bloqueada por el control de accesos",
"Error during upload: {message}" : "Error durante la subida: {message}",
@@ -171,18 +184,23 @@
"No files in here" : "Aquí no hay archivos",
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
"Go back" : "Ir atrás",
- "Filter file names …" : "Filtrar nombres de archivo…",
"Views" : "Vistas",
"Files settings" : "Configuración de archivos",
"Your files" : "Sus archivos",
"Open in files" : "Abrir en archivos",
"File cannot be accessed" : "No se ha podido acceder al archivo",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "El archivo no fue encontrado o no tiene permisos para verlo. Solicite al remitente que lo comparta.",
+ "No search results for “{query}”" : "No hay resultados para “{query}”",
+ "Search for files" : "Buscar archivos",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "El URL Webdav URL fue copiado al portapapeles",
+ "Default view" : "Vista predeterminada",
+ "All files" : "Todos los archivos",
+ "Personal files" : "Archivos personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar carpetas antes que archivos",
"Show hidden files" : "Mostrar archivos ocultos",
+ "Show file type column" : "Mostrar la columna de tipo de archivo",
"Crop image previews" : "Recortar la previsualización de las imágenes",
"Enable the grid view" : "Habilitar vista de cuadrícula",
"Enable folder tree" : "Habilitar el árbol de carpetas",
@@ -192,7 +210,7 @@
"Copy to clipboard" : "Copiar al portapapeles",
"Use this address to access your Files via WebDAV" : "Use esta dirección para acceder a tus archivos vía WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Si ha habilitado 2FA, debe crear y utilizar una nueva contraseña de aplicación haciendo clic aquí.",
- "Warnings" : "Avisos",
+ "Warnings" : "Advertencias",
"Prevent warning dialogs from open or reenable them." : "Evitar que se abran los diálogos de advertencia o volver a habilitarlos.",
"Show a warning dialog when changing a file extension." : "Mostrar un diálogo de advertencia cuando se cambia la extensión de un archivo.",
"Keyboard shortcuts" : "Atajos de teclado",
@@ -217,8 +235,9 @@
"Toggle the grid view" : "Alternar vista en cuadrícula",
"Open the sidebar for a file" : "Abrir la barra lateral de un archivo",
"Show those shortcuts" : "Mostrar estos atajos de teclado",
- "You" : "Usted",
+ "You" : "Tú",
"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 +278,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)",
@@ -279,12 +301,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",
@@ -316,12 +338,15 @@
"Some files could not be uploaded" : "No se pudieron subir algunos archivos",
"Files uploaded successfully" : "Se subieron los archivos exitosamente",
"No files to process" : "No hay archivos para procesar",
- "Some files could not be copied" : "Algunos archivos no se pudieron copiar",
- "Some files could not be moved" : "No se ha podido mover algunos archivos",
- "Files copied successfully" : "Archivos copiados exitosamente",
- "Files moved successfully" : "Archivos movidos exitosamente",
+ "Some files could not be copied" : "Algunos archivos no se han podido copiar",
+ "Some files could not be moved" : "No se han podido mover algunos archivos",
+ "Files copied successfully" : "Archivos copiados con éxito",
+ "Files moved successfully" : "Archivos movidos con éxito",
"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",
@@ -337,10 +362,8 @@
"List of favorite files and folders." : "Lista de archivos y carpetas favoritos.",
"No favorites yet" : "Aún no hay favoritos",
"Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que has marcado como favoritos",
- "All files" : "Todos los archivos",
"List of your files and folders." : "Lista de sus archivos y carpetas.",
"All folders" : "Todas las carpetas",
- "Personal files" : "Archivos personales",
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
"No personal files found" : "No se encontraron archivos personales",
"Files that are not shared will show up here." : "Los archivos y carpetas que no ha compartido aparecerán aquí.",
@@ -348,12 +371,13 @@
"List of recently modified files and folders." : "Lista de archivos y carpetas modificados recientemente.",
"No recently modified files" : "No hay archivos modificados recientemente.",
"Files and folders you recently modified will show up here." : "Los archivos y carpetas que ha modificado recientemente aparecerán aquí.",
+ "Search" : "Buscar",
+ "Search results within your files." : "Resultados de búsqueda dentro de tus archivos.",
"No entries found in this folder" : "No hay entradas en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -392,9 +416,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",
@@ -427,35 +448,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." : "Una vez activados los nombres de archivo compatibles con Windows, los archivos existentes ya no se podrán modificar, pero su propietario podrá renombrarlos a otros nombres válidos de 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/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 aeeba4b15d5..37412a96b67 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}.",
@@ -79,6 +78,8 @@ 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"],
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usados.",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usados.",
@@ -117,6 +118,7 @@ OC.L10N.register(
"File cannot be accessed" : "No se puede acceder al archivo.",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "URL de WebDAV copiada al portapapeles.",
+ "All files" : "Todos los archivos",
"Sort favorites first" : "Ordenar primero los favoritos.",
"Show hidden files" : "Mostrar archivos ocultos",
"Crop image previews" : "Recortar vistas previas de imágenes.",
@@ -146,13 +148,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",
@@ -163,6 +166,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 ",
@@ -170,14 +176,13 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
"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",
"Recent" : "Reciente",
+ "Search" : "Buscar",
"No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -213,9 +218,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",
@@ -247,16 +249,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 cab16362f3b..1aab3813846 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}.",
@@ -77,6 +76,8 @@
"\"{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"],
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usados.",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usados.",
@@ -115,6 +116,7 @@
"File cannot be accessed" : "No se puede acceder al archivo.",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "URL de WebDAV copiada al portapapeles.",
+ "All files" : "Todos los archivos",
"Sort favorites first" : "Ordenar primero los favoritos.",
"Show hidden files" : "Mostrar archivos ocultos",
"Crop image previews" : "Recortar vistas previas de imágenes.",
@@ -144,13 +146,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",
@@ -161,6 +164,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 ",
@@ -168,14 +174,13 @@
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
"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",
"Recent" : "Reciente",
+ "Search" : "Buscar",
"No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -211,9 +216,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",
@@ -245,16 +247,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 d57707ff578..d0de73f2bdb 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}",
@@ -92,6 +91,7 @@ OC.L10N.register(
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Limpiar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar en todas partes",
"Type" : "Tipo",
"Active filters" : "Filtros activos",
"Remove filter" : "Quitar filtro",
@@ -107,7 +107,8 @@ 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",
+ "Filter in current view" : "Filtrar en la vista actual",
+ "Search globally" : "Búsqueda global",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% utilizado",
@@ -164,6 +165,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "El archivo no fue encontrado o no tiene permisos para verlo. Solicite al remitente que lo comparta.",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "WebDAV URL copiada al portapapeles",
+ "All files" : "Todos los archivos",
+ "Personal files" : "Archivos personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar carpetas antes que archivos",
"Show hidden files" : "Mostrar archivos ocultos",
@@ -208,8 +211,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)",
@@ -228,9 +234,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",
@@ -268,6 +274,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 ",
@@ -282,10 +291,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista de archivos y carpetas favoritos",
"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",
"List of your files and folders." : "Lista de sus archivos y carpetas.",
"All folders" : "Todas las carpetas",
- "Personal files" : "Archivos personales",
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
"No personal files found" : "No se encontraron archivos personales",
"Files that are not shared will show up here." : "Aquí aparecerán los archivos y carpetas que no ha compartido.",
@@ -293,12 +300,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista de archivos y carpetas modificados recientemente.",
"No recently modified files" : "No hay archivos modificados recientemente",
"Files and folders you recently modified will show up here." : "Los archivos y carpetas que ha modificado recientemente aparecerán aquí.",
+ "Search" : "Buscar",
"No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -337,9 +344,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",
@@ -372,32 +376,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 900561d5fb7..f0a6c76052a 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}",
@@ -90,6 +89,7 @@
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Limpiar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar en todas partes",
"Type" : "Tipo",
"Active filters" : "Filtros activos",
"Remove filter" : "Quitar filtro",
@@ -105,7 +105,8 @@
"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",
+ "Filter in current view" : "Filtrar en la vista actual",
+ "Search globally" : "Búsqueda global",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% utilizado",
@@ -162,6 +163,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "El archivo no fue encontrado o no tiene permisos para verlo. Solicite al remitente que lo comparta.",
"Clipboard is not available" : "El portapapeles no está disponible",
"WebDAV URL copied to clipboard" : "WebDAV URL copiada al portapapeles",
+ "All files" : "Todos los archivos",
+ "Personal files" : "Archivos personales",
"Sort favorites first" : "Ordenar los favoritos primero",
"Sort folders before files" : "Ordenar carpetas antes que archivos",
"Show hidden files" : "Mostrar archivos ocultos",
@@ -206,8 +209,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)",
@@ -226,9 +232,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",
@@ -266,6 +272,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 ",
@@ -280,10 +289,8 @@
"List of favorite files and folders." : "Lista de archivos y carpetas favoritos",
"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",
"List of your files and folders." : "Lista de sus archivos y carpetas.",
"All folders" : "Todas las carpetas",
- "Personal files" : "Archivos personales",
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
"No personal files found" : "No se encontraron archivos personales",
"Files that are not shared will show up here." : "Aquí aparecerán los archivos y carpetas que no ha compartido.",
@@ -291,12 +298,12 @@
"List of recently modified files and folders." : "Lista de archivos y carpetas modificados recientemente.",
"No recently modified files" : "No hay archivos modificados recientemente",
"Files and folders you recently modified will show up here." : "Los archivos y carpetas que ha modificado recientemente aparecerán aquí.",
+ "Search" : "Buscar",
"No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Select all" : "Seleccionar todo",
"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",
@@ -335,9 +342,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",
@@ -370,32 +374,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 78db65694c1..5b72cf9ae12 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Muudetud",
+ "Search everywhere" : "Otsi kõikjalt",
"Type" : "Tüüp",
"Active filters" : "Aktiivsed filtrid",
"Remove filter" : "Eemalda filter",
"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}“",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Otsi failinime alusel kõikjalt…",
+ "Search here by filename …" : "Otsi failinime alusel siit…",
+ "Filter file names …" : "Otsi failinimesid…",
+ "Search scope options" : "Otsinguulatuse valikud",
+ "Filter in current view" : "Filtreeri selles vaates",
+ "Search from this location" : "Otsi siit asukohast",
+ "Search globally" : "Otsi kõikjalt",
"{usedQuotaByte} used" : "{usedQuotaByte} kasutusel",
"{used} of {quota} used" : "{used} / {quota} kasutusel",
"{relative}% used" : "{relative}% kasutusel",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Siin ei ole faile",
"Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!",
"Go back" : "Mine tagasi",
- "Filter file names …" : "Otsi failinimesid…",
"Views" : "Vaated",
"Files settings" : "Failide seadistused",
"Your files" : "Sinu failid",
"Open in files" : "Ava failirakenduses",
"File cannot be accessed" : "Failile ligipääs puudub",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili kas ei leidu või sul puudub õigus selle vaatamiseks. Palu saatjat, et ta jagaks antud faili sulle.",
+ "No search results for “{query}”" : "„{query}“ otsingul pole tulemusi",
+ "Search for files" : "Otsi faile",
"Clipboard is not available" : "Lõikelaud ei ole saadaval",
"WebDAV URL copied to clipboard" : "WebDAV-i võrguaadress on kopeeritud lõikelauale",
+ "Default view" : "Vaikimisi vaade",
+ "All files" : "Kõik failid",
+ "Personal files" : "Isiklikud failid",
"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",
@@ -222,6 +240,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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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 ei õnnestunud",
- "Open locally" : "Ava kohalikust andmeruumist",
"Rename" : "Muuda nime",
"Open details" : "Ava üksikasjad",
"View in folder" : "Vaata kaustas",
@@ -325,6 +347,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",
@@ -340,23 +365,22 @@ OC.L10N.register(
"List of favorite files and folders." : "Sinu lemmikfailide ja -kaustade loend.",
"No favorites yet" : "Lemmikuid veel pole",
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
- "All files" : "Kõik failid",
"List of your files and folders." : "Sinu failide ja kaustade loend.",
"All folders" : "Kõik kaustad",
- "Personal files" : "Isiklikud failid",
"List of your files and folders that are not shared." : "Sinu mittejagatud failide ja kaustade loend",
"No personal files found" : "Isiklikke faile ei leitud",
"Files that are not shared will show up here." : "Siin kuvatakse faile ja kaustu, mida sa pole teistega jaganud.",
"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.",
+ "Search" : "Otsi",
+ "Search results within your files." : "Otsingutulemusd sinu failide seast.",
"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",
@@ -395,9 +419,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}“ faili nime muutmine ei õnnestunud, 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}“ faili nime muutmine ei õnnestunud",
"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",
@@ -430,35 +451,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 428758f0287..7ebc0c4d891 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Muudetud",
+ "Search everywhere" : "Otsi kõikjalt",
"Type" : "Tüüp",
"Active filters" : "Aktiivsed filtrid",
"Remove filter" : "Eemalda filter",
"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}“",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Otsi failinime alusel kõikjalt…",
+ "Search here by filename …" : "Otsi failinime alusel siit…",
+ "Filter file names …" : "Otsi failinimesid…",
+ "Search scope options" : "Otsinguulatuse valikud",
+ "Filter in current view" : "Filtreeri selles vaates",
+ "Search from this location" : "Otsi siit asukohast",
+ "Search globally" : "Otsi kõikjalt",
"{usedQuotaByte} used" : "{usedQuotaByte} kasutusel",
"{used} of {quota} used" : "{used} / {quota} kasutusel",
"{relative}% used" : "{relative}% kasutusel",
@@ -172,18 +185,23 @@
"No files in here" : "Siin ei ole faile",
"Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!",
"Go back" : "Mine tagasi",
- "Filter file names …" : "Otsi failinimesid…",
"Views" : "Vaated",
"Files settings" : "Failide seadistused",
"Your files" : "Sinu failid",
"Open in files" : "Ava failirakenduses",
"File cannot be accessed" : "Failile ligipääs puudub",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili kas ei leidu või sul puudub õigus selle vaatamiseks. Palu saatjat, et ta jagaks antud faili sulle.",
+ "No search results for “{query}”" : "„{query}“ otsingul pole tulemusi",
+ "Search for files" : "Otsi faile",
"Clipboard is not available" : "Lõikelaud ei ole saadaval",
"WebDAV URL copied to clipboard" : "WebDAV-i võrguaadress on kopeeritud lõikelauale",
+ "Default view" : "Vaikimisi vaade",
+ "All files" : "Kõik failid",
+ "Personal files" : "Isiklikud failid",
"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",
@@ -220,6 +238,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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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 ei õnnestunud",
- "Open locally" : "Ava kohalikust andmeruumist",
"Rename" : "Muuda nime",
"Open details" : "Ava üksikasjad",
"View in folder" : "Vaata kaustas",
@@ -323,6 +345,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",
@@ -338,23 +363,22 @@
"List of favorite files and folders." : "Sinu lemmikfailide ja -kaustade loend.",
"No favorites yet" : "Lemmikuid veel pole",
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
- "All files" : "Kõik failid",
"List of your files and folders." : "Sinu failide ja kaustade loend.",
"All folders" : "Kõik kaustad",
- "Personal files" : "Isiklikud failid",
"List of your files and folders that are not shared." : "Sinu mittejagatud failide ja kaustade loend",
"No personal files found" : "Isiklikke faile ei leitud",
"Files that are not shared will show up here." : "Siin kuvatakse faile ja kaustu, mida sa pole teistega jaganud.",
"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.",
+ "Search" : "Otsi",
+ "Search results within your files." : "Otsingutulemusd sinu failide seast.",
"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",
@@ -393,9 +417,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}“ faili nime muutmine ei õnnestunud, 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}“ faili nime muutmine ei õnnestunud",
"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",
@@ -428,35 +449,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 2cabb2838b0..6942169a0b5 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",
@@ -96,6 +95,7 @@ OC.L10N.register(
"Unknown date" : "Data ezezaguna",
"Clear filter" : "Garbitu iragazkia",
"Modified" : "Aldatuta",
+ "Search everywhere" : "Bilatu nonahi",
"Type" : "Mota",
"Active filters" : "Iragazki aktiboak",
"Remove filter" : "Kendu iragazkia",
@@ -112,7 +112,9 @@ 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"],
+ "Filter in current view" : "Iragazi uneko ikuspegian",
+ "Search globally" : "Bilatu globalki",
"{usedQuotaByte} used" : "{usedQuotaByte} erabilita",
"{used} of {quota} used" : "{used} / {quota} erabilita",
"{relative}% used" : "%{relative} erabilita",
@@ -170,6 +172,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Ezin izan da fitxategia aurkitu edo ez duzu ikusteko baimenik. Eskatu bidaltzaileari partekatzeko.",
"Clipboard is not available" : "Arbela ez dago erabilgarri",
"WebDAV URL copied to clipboard" : "WebDAV URLa arbelean kopiatu da",
+ "All files" : "Fitxategi guztiak",
+ "Personal files" : "Fitxategi pertsonalak",
"Sort favorites first" : "Ordenatu gogokoak lehenengo",
"Sort folders before files" : "Ordenatu karpetak fitxategien aurretik",
"Show hidden files" : "Erakutsi ezkutuko fitxategiak",
@@ -232,8 +236,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)",
@@ -252,11 +259,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",
@@ -294,6 +301,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",
@@ -308,10 +318,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Gogoko fitxategi eta karpeten zerrenda.",
"No favorites yet" : "Gogokorik ez oraindik",
"Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpetak hemen agertuko dira",
- "All files" : "Fitxategi guztiak",
"List of your files and folders." : "Zure fitxategi eta karpeten zerrenda.",
"All folders" : "Karpeta guztiak",
- "Personal files" : "Fitxategi pertsonalak",
"List of your files and folders that are not shared." : "Partekatu ez diren zure fitxategi eta karpeten zerrenda.",
"No personal files found" : "Ez dago fitxategi pertsonalik",
"Files that are not shared will show up here." : "Partekatu ez dituzun fitxategiak hemen agertuko dira",
@@ -319,12 +327,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Azkenaldian aldatutako fitxategi eta karpeten zerrenda.",
"No recently modified files" : "Ez dago azkenaldian aldatutako fitxategirik",
"Files and folders you recently modified will show up here." : "Azkenaldian aldatu dituzun fitxategi eta karpetak hemen agertuko dira.",
+ "Search" : "Bilatu",
"No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan",
"Select all" : "Hautatu dena",
"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",
@@ -363,9 +371,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",
@@ -398,32 +403,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 e684f2741d7..4fe8989208e 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",
@@ -94,6 +93,7 @@
"Unknown date" : "Data ezezaguna",
"Clear filter" : "Garbitu iragazkia",
"Modified" : "Aldatuta",
+ "Search everywhere" : "Bilatu nonahi",
"Type" : "Mota",
"Active filters" : "Iragazki aktiboak",
"Remove filter" : "Kendu iragazkia",
@@ -110,7 +110,9 @@
"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"],
+ "Filter in current view" : "Iragazi uneko ikuspegian",
+ "Search globally" : "Bilatu globalki",
"{usedQuotaByte} used" : "{usedQuotaByte} erabilita",
"{used} of {quota} used" : "{used} / {quota} erabilita",
"{relative}% used" : "%{relative} erabilita",
@@ -168,6 +170,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Ezin izan da fitxategia aurkitu edo ez duzu ikusteko baimenik. Eskatu bidaltzaileari partekatzeko.",
"Clipboard is not available" : "Arbela ez dago erabilgarri",
"WebDAV URL copied to clipboard" : "WebDAV URLa arbelean kopiatu da",
+ "All files" : "Fitxategi guztiak",
+ "Personal files" : "Fitxategi pertsonalak",
"Sort favorites first" : "Ordenatu gogokoak lehenengo",
"Sort folders before files" : "Ordenatu karpetak fitxategien aurretik",
"Show hidden files" : "Erakutsi ezkutuko fitxategiak",
@@ -230,8 +234,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)",
@@ -250,11 +257,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",
@@ -292,6 +299,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",
@@ -306,10 +316,8 @@
"List of favorite files and folders." : "Gogoko fitxategi eta karpeten zerrenda.",
"No favorites yet" : "Gogokorik ez oraindik",
"Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpetak hemen agertuko dira",
- "All files" : "Fitxategi guztiak",
"List of your files and folders." : "Zure fitxategi eta karpeten zerrenda.",
"All folders" : "Karpeta guztiak",
- "Personal files" : "Fitxategi pertsonalak",
"List of your files and folders that are not shared." : "Partekatu ez diren zure fitxategi eta karpeten zerrenda.",
"No personal files found" : "Ez dago fitxategi pertsonalik",
"Files that are not shared will show up here." : "Partekatu ez dituzun fitxategiak hemen agertuko dira",
@@ -317,12 +325,12 @@
"List of recently modified files and folders." : "Azkenaldian aldatutako fitxategi eta karpeten zerrenda.",
"No recently modified files" : "Ez dago azkenaldian aldatutako fitxategirik",
"Files and folders you recently modified will show up here." : "Azkenaldian aldatu dituzun fitxategi eta karpetak hemen agertuko dira.",
+ "Search" : "Bilatu",
"No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan",
"Select all" : "Hautatu dena",
"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",
@@ -361,9 +369,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",
@@ -396,32 +401,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 c71a442bcc6..32c164b5081 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,42 +67,80 @@ 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" : "تاریخ",
+ "Search everywhere" : "جستجو در هر کجا.",
"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" : "فایل یافت نشد",
+ "Filter file names …" : "Filter file names …",
+ "Filter in current view" : "فیلتر در نمای فعلی.",
+ "Search globally" : "در سطح جهان جستجو کنید",
"{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" : "انتقال",
@@ -103,15 +153,29 @@ 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" : "تلاش دوباره",
@@ -120,22 +184,54 @@ OC.L10N.register(
"Go back" : "برگرد",
"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 در کلیپ بورد کپی شد",
+ "All files" : "تمامی فایل‌ها",
+ "Personal files" : "فایل‌های شخصی",
"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" : "حذف کردن از برگزیده ها",
@@ -146,55 +242,133 @@ 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" : "تمامی فایل‌ها",
- "Personal files" : "فایل‌های شخصی",
+ "List of your files and folders." : "List of your files and folders.",
+ "All folders" : "All folders",
+ "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" : "هیچ فایلی که اخیراً اصلاح شده است",
"Files and folders you recently modified will show up here." : "فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند.",
+ "Search" : "جستجو",
"No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Select all" : "انتخاب همه",
"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" : "بستن",
@@ -209,13 +383,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}\"",
@@ -228,11 +402,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}\" به علت موجود بودن ساخته نشد",
@@ -262,21 +436,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 bdc6488c9e8..311f1e29bd8 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,42 +65,80 @@
"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" : "تاریخ",
+ "Search everywhere" : "جستجو در هر کجا.",
"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" : "فایل یافت نشد",
+ "Filter file names …" : "Filter file names …",
+ "Filter in current view" : "فیلتر در نمای فعلی.",
+ "Search globally" : "در سطح جهان جستجو کنید",
"{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" : "انتقال",
@@ -101,15 +151,29 @@
"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" : "تلاش دوباره",
@@ -118,22 +182,54 @@
"Go back" : "برگرد",
"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 در کلیپ بورد کپی شد",
+ "All files" : "تمامی فایل‌ها",
+ "Personal files" : "فایل‌های شخصی",
"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" : "حذف کردن از برگزیده ها",
@@ -144,55 +240,133 @@
"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" : "تمامی فایل‌ها",
- "Personal files" : "فایل‌های شخصی",
+ "List of your files and folders." : "List of your files and folders.",
+ "All folders" : "All folders",
+ "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" : "هیچ فایلی که اخیراً اصلاح شده است",
"Files and folders you recently modified will show up here." : "فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند.",
+ "Search" : "جستجو",
"No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Select all" : "انتخاب همه",
"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" : "بستن",
@@ -207,13 +381,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}\"",
@@ -226,11 +400,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}\" به علت موجود بودن ساخته نشد",
@@ -260,21 +434,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 a207528e026..852c0418ea8 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}",
@@ -88,14 +87,21 @@ OC.L10N.register(
"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",
"Modified" : "Muokattu",
+ "Search everywhere" : "Etsi kaikkialta",
"Type" : "Tyyppi",
"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",
@@ -105,7 +111,9 @@ 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",
+ "Filter file names …" : "Suodata tiedostonimiä…",
+ "Filter in current view" : "Suodata nykyisessä näkymässä",
+ "Search globally" : "Hae globaalisti",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{used} of {quota} used" : "{used}/{quota} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -153,7 +161,6 @@ OC.L10N.register(
"No files in here" : "Täällä ei ole tiedostoja",
"Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!",
"Go back" : "Mene takaisin",
- "Filter file names …" : "Suodata tiedostonimiä…",
"Views" : "Näkymät",
"Files settings" : "Tiedostojen asetukset",
"Your files" : "Tiedostot",
@@ -162,9 +169,12 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Tiedostoa ei löytynyt tai oikeutesi eivät riitä sen katseluun. Pyydä lähettäjää jakamaan se.",
"Clipboard is not available" : "Leikepöytä ei ole käytettävissä",
"WebDAV URL copied to clipboard" : "WebDAV-osoite kopioitu leikepöydälle",
+ "All files" : "Kaikki tiedostot",
+ "Personal files" : "Henkilökohtaiset tiedostot",
"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",
@@ -228,8 +238,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",
@@ -245,10 +258,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",
@@ -285,12 +298,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.",
@@ -298,10 +315,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.",
"No favorites yet" : "Ei vielä suosikkeja",
"Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä",
- "All files" : "Kaikki tiedostot",
"List of your files and folders." : "Luettelo tiedostoistasi ja kansioistasi.",
"All folders" : "Kaikki kansiot",
- "Personal files" : "Henkilökohtaiset tiedostot",
"List of your files and folders that are not shared." : "Luettelo tiedostoistasi ja kansioistasi, joita ei ole jaettu.",
"No personal files found" : "Henkilökohtaisia tiedostoja ei löytynyt",
"Files that are not shared will show up here." : "Tiedostot, joita ei ole jasettu, näkyvät täällä.",
@@ -309,12 +324,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Luettelo äskettäin muokatuista tiedostoista ja kansioista.",
"No recently modified files" : "Ei äskettäin muokattuja tiedostoja",
"Files and folders you recently modified will show up here." : "Äskettäin muokkaamasi tiedostot ja kansiot näkyvät täällä.",
+ "Search" : "Etsi",
"No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Select all" : "Valitse kaikki",
"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",
@@ -353,9 +368,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",
@@ -388,31 +400,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 b9b238376e3..a3d5d7a223e 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}",
@@ -86,14 +85,21 @@
"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",
"Modified" : "Muokattu",
+ "Search everywhere" : "Etsi kaikkialta",
"Type" : "Tyyppi",
"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",
@@ -103,7 +109,9 @@
"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",
+ "Filter file names …" : "Suodata tiedostonimiä…",
+ "Filter in current view" : "Suodata nykyisessä näkymässä",
+ "Search globally" : "Hae globaalisti",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{used} of {quota} used" : "{used}/{quota} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -151,7 +159,6 @@
"No files in here" : "Täällä ei ole tiedostoja",
"Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!",
"Go back" : "Mene takaisin",
- "Filter file names …" : "Suodata tiedostonimiä…",
"Views" : "Näkymät",
"Files settings" : "Tiedostojen asetukset",
"Your files" : "Tiedostot",
@@ -160,9 +167,12 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Tiedostoa ei löytynyt tai oikeutesi eivät riitä sen katseluun. Pyydä lähettäjää jakamaan se.",
"Clipboard is not available" : "Leikepöytä ei ole käytettävissä",
"WebDAV URL copied to clipboard" : "WebDAV-osoite kopioitu leikepöydälle",
+ "All files" : "Kaikki tiedostot",
+ "Personal files" : "Henkilökohtaiset tiedostot",
"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",
@@ -226,8 +236,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",
@@ -243,10 +256,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",
@@ -283,12 +296,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.",
@@ -296,10 +313,8 @@
"List of favorite files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.",
"No favorites yet" : "Ei vielä suosikkeja",
"Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä",
- "All files" : "Kaikki tiedostot",
"List of your files and folders." : "Luettelo tiedostoistasi ja kansioistasi.",
"All folders" : "Kaikki kansiot",
- "Personal files" : "Henkilökohtaiset tiedostot",
"List of your files and folders that are not shared." : "Luettelo tiedostoistasi ja kansioistasi, joita ei ole jaettu.",
"No personal files found" : "Henkilökohtaisia tiedostoja ei löytynyt",
"Files that are not shared will show up here." : "Tiedostot, joita ei ole jasettu, näkyvät täällä.",
@@ -307,12 +322,12 @@
"List of recently modified files and folders." : "Luettelo äskettäin muokatuista tiedostoista ja kansioista.",
"No recently modified files" : "Ei äskettäin muokattuja tiedostoja",
"Files and folders you recently modified will show up here." : "Äskettäin muokkaamasi tiedostot ja kansiot näkyvät täällä.",
+ "Search" : "Etsi",
"No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Select all" : "Valitse kaikki",
"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",
@@ -351,9 +366,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",
@@ -386,31 +398,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 6e5809bbed8..9c5e1ebb112 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",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Modifié",
+ "Search everywhere" : "Chercher partout",
"Type" : "Type",
"Active filters" : "Filtres actifs",
"Remove filter" : "Retirer le filtre",
"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",
@@ -117,7 +125,13 @@ 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)"],
+ "Search globally by filename …" : "Rechercher globalement par nom de fichier…",
+ "Search here by filename …" : "Recherchez ici par nom de fichier…",
+ "Filter file names …" : "Filtrer les noms de fichier…",
+ "Filter in current view" : "Filtrer dans la vue actuelle",
+ "Search from this location" : "Rechercher à partir de cet emplacement",
+ "Search globally" : "Rechercher partout",
"{usedQuotaByte} used" : "{usedQuotaByte} utilisés",
"{used} of {quota} used" : "{used} utilisés sur {quota}",
"{relative}% used" : "{relative}% utilisés",
@@ -172,18 +186,21 @@ OC.L10N.register(
"No files in here" : "Aucun fichier",
"Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !",
"Go back" : "Revenir en arrière",
- "Filter file names …" : "Filtrer les noms de fichier…",
"Views" : "Vues",
"Files settings" : "Paramètres de Fichiers",
"Your files" : "Vos fichiers",
"Open in files" : "Ouvrir dans Fichiers",
"File cannot be accessed" : "Impossible d'accéder au fichier",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Le fichier n'a pas été trouv ou vous n'avez pas les permissions pour le voir. Demandez à l'expéditeur de le partager.",
+ "No search results for “{query}”" : "Aucun résultat de recherche pour “{query}”",
"Clipboard is not available" : "Le presse-papiers n'est pas disponible",
"WebDAV URL copied to clipboard" : "URL WebDAV copiée dans le presse-papier",
+ "All files" : "Tous les fichiers",
+ "Personal files" : "Fichiers personnels",
"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",
@@ -194,6 +211,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.",
@@ -219,6 +237,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",
@@ -235,6 +254,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...",
@@ -257,8 +278,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)",
@@ -277,11 +301,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",
@@ -319,12 +344,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.",
@@ -333,10 +362,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liste des fichiers et dossiers favoris.",
"No favorites yet" : "Aucun favori pour l'instant",
"Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici",
- "All files" : "Tous les fichiers",
"List of your files and folders." : "Liste de vos fichiers et dossiers.",
"All folders" : "Tous les dossiers",
- "Personal files" : "Fichiers personnels",
"List of your files and folders that are not shared." : "Liste de vos fichiers et dossiers non partagés.",
"No personal files found" : "Aucun fichier personnel trouvé",
"Files that are not shared will show up here." : "Les fichiers qui ne sont pas partagés apparaîtront ici.",
@@ -344,12 +371,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liste des fichiers et dossiers récemment modifiés.",
"No recently modified files" : "Pas de fichiers récemment modifiés",
"Files and folders you recently modified will show up here." : "Les fichiers et dossiers que vous avez récemment modifiés apparaîtront ici",
+ "Search" : "Rechercher",
+ "Search results within your files." : "Résultats de recherche dans vos fichiers.",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Select all" : "Tout sélectionner",
"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",
@@ -388,9 +416,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à",
@@ -423,35 +448,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 6d03efc424b..ddad83f434b 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",
@@ -94,16 +95,23 @@
"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",
"Modified" : "Modifié",
+ "Search everywhere" : "Chercher partout",
"Type" : "Type",
"Active filters" : "Filtres actifs",
"Remove filter" : "Retirer le filtre",
"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",
@@ -115,7 +123,13 @@
"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)"],
+ "Search globally by filename …" : "Rechercher globalement par nom de fichier…",
+ "Search here by filename …" : "Recherchez ici par nom de fichier…",
+ "Filter file names …" : "Filtrer les noms de fichier…",
+ "Filter in current view" : "Filtrer dans la vue actuelle",
+ "Search from this location" : "Rechercher à partir de cet emplacement",
+ "Search globally" : "Rechercher partout",
"{usedQuotaByte} used" : "{usedQuotaByte} utilisés",
"{used} of {quota} used" : "{used} utilisés sur {quota}",
"{relative}% used" : "{relative}% utilisés",
@@ -170,18 +184,21 @@
"No files in here" : "Aucun fichier",
"Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !",
"Go back" : "Revenir en arrière",
- "Filter file names …" : "Filtrer les noms de fichier…",
"Views" : "Vues",
"Files settings" : "Paramètres de Fichiers",
"Your files" : "Vos fichiers",
"Open in files" : "Ouvrir dans Fichiers",
"File cannot be accessed" : "Impossible d'accéder au fichier",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Le fichier n'a pas été trouv ou vous n'avez pas les permissions pour le voir. Demandez à l'expéditeur de le partager.",
+ "No search results for “{query}”" : "Aucun résultat de recherche pour “{query}”",
"Clipboard is not available" : "Le presse-papiers n'est pas disponible",
"WebDAV URL copied to clipboard" : "URL WebDAV copiée dans le presse-papier",
+ "All files" : "Tous les fichiers",
+ "Personal files" : "Fichiers personnels",
"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",
@@ -192,6 +209,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.",
@@ -217,6 +235,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",
@@ -233,6 +252,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...",
@@ -255,8 +276,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)",
@@ -275,11 +299,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",
@@ -317,12 +342,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.",
@@ -331,10 +360,8 @@
"List of favorite files and folders." : "Liste des fichiers et dossiers favoris.",
"No favorites yet" : "Aucun favori pour l'instant",
"Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici",
- "All files" : "Tous les fichiers",
"List of your files and folders." : "Liste de vos fichiers et dossiers.",
"All folders" : "Tous les dossiers",
- "Personal files" : "Fichiers personnels",
"List of your files and folders that are not shared." : "Liste de vos fichiers et dossiers non partagés.",
"No personal files found" : "Aucun fichier personnel trouvé",
"Files that are not shared will show up here." : "Les fichiers qui ne sont pas partagés apparaîtront ici.",
@@ -342,12 +369,13 @@
"List of recently modified files and folders." : "Liste des fichiers et dossiers récemment modifiés.",
"No recently modified files" : "Pas de fichiers récemment modifiés",
"Files and folders you recently modified will show up here." : "Les fichiers et dossiers que vous avez récemment modifiés apparaîtront ici",
+ "Search" : "Rechercher",
+ "Search results within your files." : "Résultats de recherche dans vos fichiers.",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Select all" : "Tout sélectionner",
"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",
@@ -386,9 +414,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à",
@@ -421,35 +446,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 232c98146f3..c7e0d47ceb9 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Athraithe",
+ "Search everywhere" : "Cuardaigh i ngach áit",
"Type" : "Cineál",
"Active filters" : "Scagairí gníomhacha",
"Remove filter" : "Bain an scagaire",
"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",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Cuardaigh go domhanda de réir ainm comhaid …",
+ "Search here by filename …" : "Cuardaigh anseo de réir ainm comhaid …",
+ "Filter file names …" : "Scag ainmneacha na gcomhad…",
+ "Search scope options" : "Roghanna raon feidhme cuardaigh",
+ "Filter in current view" : "Scag san amharc reatha",
+ "Search from this location" : "Cuardaigh ón suíomh seo",
+ "Search globally" : "Cuardaigh go domhanda",
"{usedQuotaByte} used" : "{usedQuotaByte} úsáidte",
"{used} of {quota} used" : "{used} de {quota} in úsáid",
"{relative}% used" : "{relative}% in úsáid",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Níl aon chomhaid istigh anseo",
"Upload some content or sync with your devices!" : "Uaslódáil roinnt inneachair nó sioncronaigh le do ghléasanna!",
"Go back" : "Dul ar ais",
- "Filter file names …" : "Scag ainmneacha na gcomhad…",
"Views" : "Radhairc",
"Files settings" : "Socruithe comhaid",
"Your files" : "Do chuid comhad",
"Open in files" : "Oscail i gcomhaid",
"File cannot be accessed" : "Ní féidir an comhad a rochtain",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Níorbh fhéidir an comhad a aimsiú nó níl cead agat féachaint air. Iarr ar an seoltóir é a roinnt.",
+ "No search results for “{query}”" : "Gan aon torthaí cuardaigh le haghaidh ”{query}”",
+ "Search for files" : "Cuardaigh comhaid",
"Clipboard is not available" : "Níl fáil ar an ngearrthaisce",
"WebDAV URL copied to clipboard" : "URL WebDAV cóipeáilte chuig an ngearrthaisce",
+ "Default view" : "Amharc réamhshocraithe",
+ "All files" : "Gach comhad",
+ "Personal files" : "Comhaid phearsanta",
"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",
@@ -222,6 +240,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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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",
@@ -325,6 +347,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",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liosta de na comhaid agus na fillteáin is fearr leat.",
"No favorites yet" : "Níl aon cheanáin go fóill",
"Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo",
- "All files" : "Gach comhad",
"List of your files and folders." : "Liosta de do chuid comhad agus fillteáin.",
"All folders" : "Gach fillteáin",
- "Personal files" : "Comhaid phearsanta",
"List of your files and folders that are not shared." : "Liosta de do chuid comhad agus fillteáin nach bhfuil roinnte.",
"No personal files found" : "Níor aimsíodh aon chomhaid phearsanta",
"Files that are not shared will show up here." : "Taispeánfar comhaid nach bhfuil roinnte anseo.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liosta de chomhaid agus de fhillteáin a athraíodh le déanaí.",
"No recently modified files" : "Níl aon chomhaid athraithe le déanaí",
"Files and folders you recently modified will show up here." : "Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo.",
+ "Search" : "Cuardach",
+ "Search results within your files." : "Torthaí cuardaigh laistigh de do chuid comhad.",
"No entries found in this folder" : "Níor aimsíodh aon iontrálacha san fhillteán seo",
"Select all" : "Roghnú go léir",
"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",
@@ -395,9 +419,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",
@@ -430,35 +451,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 db09fb79b39..8493eecf174 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Athraithe",
+ "Search everywhere" : "Cuardaigh i ngach áit",
"Type" : "Cineál",
"Active filters" : "Scagairí gníomhacha",
"Remove filter" : "Bain an scagaire",
"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",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Cuardaigh go domhanda de réir ainm comhaid …",
+ "Search here by filename …" : "Cuardaigh anseo de réir ainm comhaid …",
+ "Filter file names …" : "Scag ainmneacha na gcomhad…",
+ "Search scope options" : "Roghanna raon feidhme cuardaigh",
+ "Filter in current view" : "Scag san amharc reatha",
+ "Search from this location" : "Cuardaigh ón suíomh seo",
+ "Search globally" : "Cuardaigh go domhanda",
"{usedQuotaByte} used" : "{usedQuotaByte} úsáidte",
"{used} of {quota} used" : "{used} de {quota} in úsáid",
"{relative}% used" : "{relative}% in úsáid",
@@ -172,18 +185,23 @@
"No files in here" : "Níl aon chomhaid istigh anseo",
"Upload some content or sync with your devices!" : "Uaslódáil roinnt inneachair nó sioncronaigh le do ghléasanna!",
"Go back" : "Dul ar ais",
- "Filter file names …" : "Scag ainmneacha na gcomhad…",
"Views" : "Radhairc",
"Files settings" : "Socruithe comhaid",
"Your files" : "Do chuid comhad",
"Open in files" : "Oscail i gcomhaid",
"File cannot be accessed" : "Ní féidir an comhad a rochtain",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Níorbh fhéidir an comhad a aimsiú nó níl cead agat féachaint air. Iarr ar an seoltóir é a roinnt.",
+ "No search results for “{query}”" : "Gan aon torthaí cuardaigh le haghaidh ”{query}”",
+ "Search for files" : "Cuardaigh comhaid",
"Clipboard is not available" : "Níl fáil ar an ngearrthaisce",
"WebDAV URL copied to clipboard" : "URL WebDAV cóipeáilte chuig an ngearrthaisce",
+ "Default view" : "Amharc réamhshocraithe",
+ "All files" : "Gach comhad",
+ "Personal files" : "Comhaid phearsanta",
"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",
@@ -220,6 +238,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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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",
@@ -323,6 +345,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",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "Liosta de na comhaid agus na fillteáin is fearr leat.",
"No favorites yet" : "Níl aon cheanáin go fóill",
"Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo",
- "All files" : "Gach comhad",
"List of your files and folders." : "Liosta de do chuid comhad agus fillteáin.",
"All folders" : "Gach fillteáin",
- "Personal files" : "Comhaid phearsanta",
"List of your files and folders that are not shared." : "Liosta de do chuid comhad agus fillteáin nach bhfuil roinnte.",
"No personal files found" : "Níor aimsíodh aon chomhaid phearsanta",
"Files that are not shared will show up here." : "Taispeánfar comhaid nach bhfuil roinnte anseo.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "Liosta de chomhaid agus de fhillteáin a athraíodh le déanaí.",
"No recently modified files" : "Níl aon chomhaid athraithe le déanaí",
"Files and folders you recently modified will show up here." : "Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo.",
+ "Search" : "Cuardach",
+ "Search results within your files." : "Torthaí cuardaigh laistigh de do chuid comhad.",
"No entries found in this folder" : "Níor aimsíodh aon iontrálacha san fhillteán seo",
"Select all" : "Roghnú go léir",
"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",
@@ -393,9 +417,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",
@@ -428,35 +449,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 8262941c787..00f9d82f544 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}",
@@ -100,6 +99,7 @@ OC.L10N.register(
"Unknown date" : "Data descoñecida",
"Clear filter" : "Limpar o filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar por todas partes",
"Type" : "Escribir",
"Active filters" : "Filtros activos",
"Remove filter" : "Retirar o filtro",
@@ -117,7 +117,10 @@ 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"],
+ "Filter file names …" : "Filtrar os nomes de ficheiro…",
+ "Filter in current view" : "Filtrar na vista actual",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "Usados {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -153,7 +156,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",
@@ -172,7 +175,6 @@ OC.L10N.register(
"No files in here" : "Aquí non hai ficheiros",
"Upload some content or sync with your devices!" : "Envíe algún contido ou sincronice cos seus dispositivos!",
"Go back" : "Volver",
- "Filter file names …" : "Filtrar os nomes de ficheiro…",
"Views" : "Vistas",
"Files settings" : "Axustes de Ficheiros",
"Your files" : "Os seus ficheiros",
@@ -181,6 +183,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Non foi posíbel atopar o ficheiro ou non ten permiso para velo. Pídalle ao remitente que o comparta.",
"Clipboard is not available" : "O portapapeis non está dispoñíbel",
"WebDAV URL copied to clipboard" : "O URL de WebDAV foi copiado no portapapeis",
+ "All files" : "Todos os ficheiros",
+ "Personal files" : "Ficheiros persoais",
"Sort favorites first" : "Ordene antes os favoritos",
"Sort folders before files" : "Ordenar os cartafoles diante dos ficheiros",
"Show hidden files" : "Amosar os ficheiros agochados",
@@ -220,6 +224,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",
@@ -258,8 +263,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)",
@@ -278,12 +286,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",
@@ -321,6 +329,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",
@@ -335,10 +346,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista de ficheiros e cartafoles favoritos.",
"No favorites yet" : "Aínda non hai favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí",
- "All files" : "Todos os ficheiros",
"List of your files and folders." : "Lista dos seus ficheiros e cartafoles",
"All folders" : "Todos os cartafoles",
- "Personal files" : "Ficheiros persoais",
"List of your files and folders that are not shared." : "Lista dos seus ficheiros e cartafoles que non están a seren compartidos.",
"No personal files found" : "Non se atopou ningún ficheiro persoal",
"Files that are not shared will show up here." : "Os ficheiros que non se comparten amosaranse aquí.",
@@ -346,12 +355,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista de ficheiros e cartafoles modificados recentemente.",
"No recently modified files" : "Non hai ficheiros modificados recentemente",
"Files and folders you recently modified will show up here." : "Os ficheiros e cartafoles que modificou recentemente amosaranse aquí.",
+ "Search" : "Buscar",
"No entries found in this folder" : "Non se atopou ningunha entrada neste cartafol",
"Select all" : "Seleccionar todo",
"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",
@@ -390,9 +399,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",
@@ -425,35 +431,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 2e7c5c6a531..c1c014bc060 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}",
@@ -98,6 +97,7 @@
"Unknown date" : "Data descoñecida",
"Clear filter" : "Limpar o filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Buscar por todas partes",
"Type" : "Escribir",
"Active filters" : "Filtros activos",
"Remove filter" : "Retirar o filtro",
@@ -115,7 +115,10 @@
"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"],
+ "Filter file names …" : "Filtrar os nomes de ficheiro…",
+ "Filter in current view" : "Filtrar na vista actual",
+ "Search globally" : "Buscar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "Usados {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -151,7 +154,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",
@@ -170,7 +173,6 @@
"No files in here" : "Aquí non hai ficheiros",
"Upload some content or sync with your devices!" : "Envíe algún contido ou sincronice cos seus dispositivos!",
"Go back" : "Volver",
- "Filter file names …" : "Filtrar os nomes de ficheiro…",
"Views" : "Vistas",
"Files settings" : "Axustes de Ficheiros",
"Your files" : "Os seus ficheiros",
@@ -179,6 +181,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Non foi posíbel atopar o ficheiro ou non ten permiso para velo. Pídalle ao remitente que o comparta.",
"Clipboard is not available" : "O portapapeis non está dispoñíbel",
"WebDAV URL copied to clipboard" : "O URL de WebDAV foi copiado no portapapeis",
+ "All files" : "Todos os ficheiros",
+ "Personal files" : "Ficheiros persoais",
"Sort favorites first" : "Ordene antes os favoritos",
"Sort folders before files" : "Ordenar os cartafoles diante dos ficheiros",
"Show hidden files" : "Amosar os ficheiros agochados",
@@ -218,6 +222,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",
@@ -256,8 +261,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)",
@@ -276,12 +284,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",
@@ -319,6 +327,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",
@@ -333,10 +344,8 @@
"List of favorite files and folders." : "Lista de ficheiros e cartafoles favoritos.",
"No favorites yet" : "Aínda non hai favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí",
- "All files" : "Todos os ficheiros",
"List of your files and folders." : "Lista dos seus ficheiros e cartafoles",
"All folders" : "Todos os cartafoles",
- "Personal files" : "Ficheiros persoais",
"List of your files and folders that are not shared." : "Lista dos seus ficheiros e cartafoles que non están a seren compartidos.",
"No personal files found" : "Non se atopou ningún ficheiro persoal",
"Files that are not shared will show up here." : "Os ficheiros que non se comparten amosaranse aquí.",
@@ -344,12 +353,12 @@
"List of recently modified files and folders." : "Lista de ficheiros e cartafoles modificados recentemente.",
"No recently modified files" : "Non hai ficheiros modificados recentemente",
"Files and folders you recently modified will show up here." : "Os ficheiros e cartafoles que modificou recentemente amosaranse aquí.",
+ "Search" : "Buscar",
"No entries found in this folder" : "Non se atopou ningunha entrada neste cartafol",
"Select all" : "Seleccionar todo",
"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",
@@ -388,9 +397,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",
@@ -423,35 +429,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 10ab2b1a997..e24ea96bb42 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",
@@ -95,17 +97,25 @@ OC.L10N.register(
"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",
"Modified" : "Módosítva",
+ "Search everywhere" : "Keresés mindenhol",
"Type" : "Típus",
"Active filters" : "Aktív szűrők",
"Remove filter" : "Szűrő eltávolítása",
"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",
@@ -115,7 +125,10 @@ 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"],
+ "Filter file names …" : "Fájlnevek szűrése…",
+ "Filter in current view" : "Jelenlegi nézet szűrése",
+ "Search globally" : "Globális keresés",
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
"{used} of {quota} used" : "{used} / {quota} felhasználva",
"{relative}% used" : "{relative}% felhasználva",
@@ -128,6 +141,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",
@@ -141,11 +155,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",
@@ -153,6 +170,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",
@@ -173,9 +191,12 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "A fájl nem található, vagy nincs jogosultsága a megtekintéséhez. Kérje meg a feladót, hogy ossza meg.",
"Clipboard is not available" : "A vágólap nem érhető el",
"WebDAV URL copied to clipboard" : "A WebDAV-cím a vágólapra másolva",
+ "All files" : "Az összes fájl",
+ "Personal files" : "Személyes fájlok",
"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",
@@ -185,8 +206,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",
@@ -209,6 +233,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",
@@ -221,14 +246,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",
@@ -245,8 +274,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)",
@@ -265,11 +297,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",
@@ -295,24 +328,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.",
@@ -321,10 +358,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Kedvenc fájlok és mappák felsorolása.",
"No favorites yet" : "Még nincsenek kedvencek",
"Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találja meg",
- "All files" : "Az összes fájl",
"List of your files and folders." : "Saját fájlok és mappák felsorolása.",
"All folders" : "Összes mappa",
- "Personal files" : "Személyes fájlok",
"List of your files and folders that are not shared." : "Meg nem osztott fájlok és mappák felsorolása.",
"No personal files found" : "Nem találhatóak személyes fájlok",
"Files that are not shared will show up here." : "A meg nem osztott fájlok itt fognak megjelenni.",
@@ -332,12 +367,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Közelmúltban módosított fájlok és mappák felsorolása.",
"No recently modified files" : "Nincs a közelmúltban módosított fájl",
"Files and folders you recently modified will show up here." : "Az Ön által módosított fájlok és mappák itt jelennek meg.",
+ "Search" : "Keresés",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
"Select all" : "Összes kijelölése",
"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",
@@ -376,9 +411,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",
@@ -399,7 +431,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.",
@@ -411,34 +443,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 999670b9d3a..acee94780e1 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",
@@ -93,17 +95,25 @@
"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",
"Modified" : "Módosítva",
+ "Search everywhere" : "Keresés mindenhol",
"Type" : "Típus",
"Active filters" : "Aktív szűrők",
"Remove filter" : "Szűrő eltávolítása",
"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",
@@ -113,7 +123,10 @@
"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"],
+ "Filter file names …" : "Fájlnevek szűrése…",
+ "Filter in current view" : "Jelenlegi nézet szűrése",
+ "Search globally" : "Globális keresés",
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
"{used} of {quota} used" : "{used} / {quota} felhasználva",
"{relative}% used" : "{relative}% felhasználva",
@@ -126,6 +139,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",
@@ -139,11 +153,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",
@@ -151,6 +168,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",
@@ -171,9 +189,12 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "A fájl nem található, vagy nincs jogosultsága a megtekintéséhez. Kérje meg a feladót, hogy ossza meg.",
"Clipboard is not available" : "A vágólap nem érhető el",
"WebDAV URL copied to clipboard" : "A WebDAV-cím a vágólapra másolva",
+ "All files" : "Az összes fájl",
+ "Personal files" : "Személyes fájlok",
"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",
@@ -183,8 +204,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",
@@ -207,6 +231,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",
@@ -219,14 +244,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",
@@ -243,8 +272,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)",
@@ -263,11 +295,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",
@@ -293,24 +326,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.",
@@ -319,10 +356,8 @@
"List of favorite files and folders." : "Kedvenc fájlok és mappák felsorolása.",
"No favorites yet" : "Még nincsenek kedvencek",
"Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találja meg",
- "All files" : "Az összes fájl",
"List of your files and folders." : "Saját fájlok és mappák felsorolása.",
"All folders" : "Összes mappa",
- "Personal files" : "Személyes fájlok",
"List of your files and folders that are not shared." : "Meg nem osztott fájlok és mappák felsorolása.",
"No personal files found" : "Nem találhatóak személyes fájlok",
"Files that are not shared will show up here." : "A meg nem osztott fájlok itt fognak megjelenni.",
@@ -330,12 +365,12 @@
"List of recently modified files and folders." : "Közelmúltban módosított fájlok és mappák felsorolása.",
"No recently modified files" : "Nincs a közelmúltban módosított fájl",
"Files and folders you recently modified will show up here." : "Az Ön által módosított fájlok és mappák itt jelennek meg.",
+ "Search" : "Keresés",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
"Select all" : "Összes kijelölése",
"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",
@@ -374,9 +409,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",
@@ -397,7 +429,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.",
@@ -409,34 +441,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
deleted file mode 100644
index 26b58d44082..00000000000
--- a/apps/files/l10n/id.js
+++ /dev/null
@@ -1,239 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Added to favorites" : "Tambah ke favorit",
- "Removed from favorites" : "Terbuang dari favorit",
- "You added {file} to your favorites" : "Anda menambahkan {file} ke favorit",
- "You removed {file} from your favorites" : "Anda membuang {file} dari favorit",
- "Favorites" : "Favorit",
- "File changes" : "Berkas berubah",
- "Created by {user}" : "Dibuat oleh {user}",
- "Changed by {user}" : "Diubah oleh {user}",
- "Deleted by {user}" : "Dihapus oleh {user}",
- "Restored by {user}" : "Dipulihkan oleh {user}",
- "Renamed by {user}" : "Diganti nama oleh {user}",
- "Moved by {user}" : "Dipindahkan oleh {user}",
- "You created {file}" : "Anda membuat {file}",
- "You created an encrypted file in {file}" : "Anda membuat berkas terenkripsi pada {file}",
- "{user} created {file}" : "{user} membuat {file}",
- "{user} created an encrypted file in {file}" : "{user} membuat berkas terenkripsi pada {file}",
- "{file} was created in a public folder" : "{file} dibuat pada folder publik",
- "You changed {file}" : "Anda mengubah {file}",
- "You changed an encrypted file in {file}" : "Anda mengubah berkas terenkripsi pada {file}",
- "{user} changed {file}" : "{user} mengubah {file}",
- "{user} changed an encrypted file in {file}" : "{user} mengubah berkas terenkripsi pada {file}",
- "You deleted {file}" : "Anda menghapus {file}",
- "You deleted an encrypted file in {file}" : "Anda menghapus berkas terenkripsi pada {file}",
- "{user} deleted {file}" : "{user} menghapus {file}",
- "{user} deleted an encrypted file in {file}" : "{user} menghapus berkas terenkripsi pada {file}",
- "You restored {file}" : "Anda memulihkan {file}",
- "{user} restored {file}" : "{user} memulihkan {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Anda mengubah nama {oldfile} (tersembunyi) ke {newfile} (tersembunyi)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Anda mengubah nama {oldfile} (tersembunyi) ke {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Anda mengubah nama {oldfile} ke {newfile} (tersembunyi)",
- "You renamed {oldfile} to {newfile}" : "Anda mengganti nama {oldfile} menjadi {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} mengubah nama {oldfile} (tersembunyi) ke {newfile} (tersembunyi)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} mengubah nama {oldfile} (tersembunyi) ke {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} mengubah nama {oldfile} ke {newfile} (tersebunyi)",
- "{user} renamed {oldfile} to {newfile}" : "{user} mengganti nama {oldfile} menjadi {newfile}",
- "You moved {oldfile} to {newfile}" : "Anda memindahkan {oldfile} menjadi {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} memindahkan {oldfile} menjadi {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Suatu berkas telah ditambahkan atau dibuang dari <strong>favorit</strong>",
- "Files" : "Berkas",
- "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}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Apakah Anda ingin menerima {path}?\n\nCatatan: Setelah diterima, proses transfer butuh kurang lebih 1 jam.",
- "Ownership transfer failed" : "Transfer kepemilikan gagal",
- "Your ownership transfer of {path} to {user} failed." : "Transfer kepemilikan Anda pada {path} ke {user} gagal.",
- "The ownership transfer of {path} from {user} failed." : "Transfer kepemilikan pada {path} dari {user} gagal.",
- "Ownership transfer done" : "Transfer kepemilikan selesai",
- "Your ownership transfer of {path} to {user} has completed." : "Transfer kepemilikan Anda pada {path} ke {user} selesai.",
- "The ownership transfer of {path} from {user} has completed." : "Transfer kepemilikan pada {path} dari {user} selesai.",
- "in %s" : "dalam %s",
- "File Management" : "Pengelolaan Berkas",
- "Home" : "Beranda",
- "Target folder does not exist any more" : "Folder target sudah tidak ada lagi",
- "Favorite" : "Favorit",
- "Filename" : "Nama berkas",
- "Folder name" : "Nama folder",
- "Folder" : "Folder",
- "Pending" : "Tertunda",
- "Clear filter" : "Bersihkan filter",
- "Modified" : "Dimodifikasi",
- "Type" : "tipe",
- "Name" : "Nama",
- "Size" : "Ukuran",
- "Actions" : "Tindakan",
- "File not found" : "Berkas tidak ditemukan",
- "{usedQuotaByte} used" : "{usedQuotaByte} digunakan",
- "{used} of {quota} used" : "{used} dari {quota} terpakai",
- "{relative}% used" : "{relative}% digunakan",
- "Could not refresh storage stats" : "Tidak dapat memuat ulang statistik penyimpanan",
- "Your storage is full, files can not be updated or synced anymore!" : "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!",
- "New folder" : "Folder baru",
- "Create new folder" : "Buat direktori baru",
- "Create" : "Buat",
- "Choose a file or folder to transfer" : "Pilih berkas atau folder untuk ditransfer",
- "Transfer" : "Transfer",
- "Transfer {path} to {userid}" : "Transfer {path} ke {userid}",
- "Invalid path selected" : "Jalur terpilih invalid",
- "Unknown error" : "Kesalahan tidak diketahui",
- "Ownership transfer request sent" : "Permintaan transfer kepemilikan terkirim",
- "Cannot transfer ownership of a file or folder you do not own" : "Tidak dapat mentransfer pemilik berkas atau folder yang Anda tidak miliki",
- "Transfer ownership of a file or folder" : "Transfer kepemilikan dari berkas atau folder",
- "Choose file or folder to transfer" : "Pilih berkas atau folder untuk transfer",
- "Change" : "Ubah",
- "New owner" : "Pemilik baru",
- "Select file or folder to link to" : "Pilih berkas atau folder untuk ditautkan",
- "Shared by link" : "Dibagikan dengan tautan",
- "Shared" : "Dibagikan",
- "Not enough free space" : "Ruang kosong tidak cukup",
- "Operation is blocked by access control" : "Tindakan diblokir oleh kontrol akses",
- "Retry" : "Ulangi",
- "No files in here" : "Tidak ada berkas di sini",
- "Upload some content or sync with your devices!" : "Unggah beberapa konten dan sinkronisasikan dengan perangkat Anda!",
- "Go back" : "Kembali",
- "Views" : "Tampilan",
- "Files settings" : "Setelan berkas",
- "File cannot be accessed" : "Berkas tidak dapat diakses",
- "Clipboard is not available" : "Papan klip tidak tersedia",
- "WebDAV URL copied to clipboard" : "URL WebDAV disalin ke papan klip",
- "Show hidden files" : "Lihat berkas tersembunyi",
- "Crop image previews" : "Pangkas pratinjau gambar",
- "Additional settings" : "Setelan tambahan",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Salin ke papan klip",
- "Use this address to access your Files via WebDAV" : "Gunakan alamat ini untuk mengakses Berkas Anda via WebDAV",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Jika Anda telah mengaktifkan 2FA, Anda harus membuat dan menggunakan sebuah kata sandi aplikasi baru dengan mengeklik di sini.",
- "Keyboard shortcuts" : "Pintasan keyboard",
- "Navigation" : "Navigasi",
- "View" : "Tampilan",
- "Error while loading the file data" : "Galat pemuatan data berkas",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Tambah ke favorit",
- "Tags" : "Tag",
- "Blank" : "Kosong",
- "Unable to create new file from template" : "Tidak dapat membuat berkas baru dari templat",
- "Pick a template for {name}" : "Pilih templat untuk {name}",
- "Create a new file with the selected template" : "Buat sebuah berkas baru dengan templat yang dipilih",
- "Creating file" : "Membuat berkas",
- "Leave this share" : "Tinggalkan pembagian ini",
- "Disconnect storage" : "Memutuskan penyimpaan",
- "Delete permanently" : "Hapus secara permanen",
- "Delete" : "Hapus",
- "Cancel" : "Membatalkan",
- "Copy" : "Salin",
- "Move" : "Pindah",
- "Move or copy" : "Pindah atau salin",
- "Failed to redirect to client" : "Gagal mengarahkan ke klien",
- "Rename" : "Ubah nama",
- "View in folder" : "Lihat dalam folder",
- "Today" : "Hari ini",
- "Documents" : "Dokumen",
- "Folders" : "Folder",
- "Audio" : "Audio",
- "Videos" : "Video",
- "Unable to initialize the templates directory" : "Tidak dapat membuat direktori templat",
- "Templates" : "Templat",
- "Some files could not be moved" : "Beberapa berkas tidak dapat dipindahkan",
- "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",
- "_%n file_::_%n files_" : ["%n berkas"],
- "_%n folder_::_%n folders_" : ["%n folder"],
- "No favorites yet" : "Belum memiliki favorit",
- "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan di sini.",
- "All files" : "Semua berkas",
- "Personal files" : "Berkas pribadi",
- "Recent" : "Terbaru",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Select all" : "Pilih Semua",
- "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",
- "Could not create folder \"{dir}\"" : "Tidak dapat membuat folder \"{dir}\"",
- "This will stop your current uploads." : "Ini akan menghentikan proses pengunggahan.",
- "Upload cancelled." : "Pengunggahan dibatalkan.",
- "Processing files …" : "Memproses berkas ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 bita",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa",
- "Target folder \"{dir}\" does not exist any more" : "Folder target \"{dir}\" sudah tidak ada lagi",
- "An unknown error has occurred" : "Terjadi galat yang tak diketahui",
- "File could not be uploaded" : "Berkas tidak dapat diunggah",
- "Uploading …" : "Mengunggah …",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} dari {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Pengunggahan itu tidak didukung",
- "Error when assembling chunks, status code {status}" : "Galat saat merakit potongan, kode status {status}",
- "Choose target folder" : "Pilih folder target",
- "Edit locally" : "Sunting secara lokal",
- "Open" : "Buka",
- "Could not load info for file \"{file}\"" : "Tidak dapat menampilkan info berkas \"{file}\"",
- "Details" : "Rincian",
- "Please select tag(s) to add to the selection" : "Silakan pilih tag untuk ditambahkan ke pilihan",
- "Apply tag(s) to selection" : "Tetapkan tag ke pilihan",
- "Select directory \"{dirName}\"" : "Pilih direktori \"{dirName}\"",
- "Select file \"{fileName}\"" : "Pilih berkas \"{fileName}\"",
- "Unable to determine date" : "Tidak dapat menentukan tanggal",
- "Could not move \"{file}\", target exists" : "Tidak dapat memindahkan \"{file}\", sudah ada",
- "Could not move \"{file}\"" : "Tidak dapat memindahkan \"{file}\"",
- "copy" : "salin",
- "Could not copy \"{file}\", target exists" : "Tidak dapat menyalin \"{file}\", target eksis",
- "Could not copy \"{file}\"" : "Tidak dapat menyalin \"{file}\"",
- "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",
- "Could not fetch file details \"{file}\"" : "Tidak dapat memperoleh detail berkas \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Terjadi kesalahan saat menghapus berkas \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Hasil pencarian tidak ditemukan di folder lainnya untuk '{tag}{filter}{endtag}'",
- "Enter more than two characters to search in other folders" : "Masukkan lebih dari dua karakter untuk mencari di folder lain",
- "{dirs} and {files}" : "{dirs} dan {files}",
- "_including %n hidden_::_including %n hidden_" : ["Termasuk %n tersembunyi"],
- "You do not have permission to upload or create files here" : "Anda tidak memiliki izin untuk mengunggah atau membuat berkas di sini",
- "_Uploading %n file_::_Uploading %n files_" : ["Mengunggah %n berkas"],
- "New" : "Baru",
- "New file/folder menu" : "Menu berkas/folder baru",
- "Select file range" : "Pilih rentang berkas",
- "{used}%" : "{used}%",
- "{used} used" : "{used} terpakai",
- "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.",
- "File name cannot be empty." : "Nama berkas tidak boleh kosong.",
- "\"/\" is not allowed inside a file name." : "\"/\" tidak diizinkan pada nama berkas.",
- "\"{name}\" is not an allowed filetype" : "Tipe berkas \"{name}\" tidak diizinkan",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Penyimpanan {owner} penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Folder grup \"{mountPoint}\" penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Penyimpanan eksternal \"{mountPoint}\" penuh, berkas tidak dapat diperbarui atau disinkronisasi lagi!",
- "Your storage is full, files cannot be updated or synced anymore!" : "Penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Penyimpanan {owner} hampir penuh ({usedSpacePercent}%).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Folder grup \"{mountPoint}\" hampir penuh ({usedSpacePercent}%).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Penyimpanan eksternal \"{mountPoint}\" hampir penuh ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Penyimpanan Anda hampir penuh ({usedSpacePercent}%).",
- "_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",
- "Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
deleted file mode 100644
index 124d61723c6..00000000000
--- a/apps/files/l10n/id.json
+++ /dev/null
@@ -1,237 +0,0 @@
-{ "translations": {
- "Added to favorites" : "Tambah ke favorit",
- "Removed from favorites" : "Terbuang dari favorit",
- "You added {file} to your favorites" : "Anda menambahkan {file} ke favorit",
- "You removed {file} from your favorites" : "Anda membuang {file} dari favorit",
- "Favorites" : "Favorit",
- "File changes" : "Berkas berubah",
- "Created by {user}" : "Dibuat oleh {user}",
- "Changed by {user}" : "Diubah oleh {user}",
- "Deleted by {user}" : "Dihapus oleh {user}",
- "Restored by {user}" : "Dipulihkan oleh {user}",
- "Renamed by {user}" : "Diganti nama oleh {user}",
- "Moved by {user}" : "Dipindahkan oleh {user}",
- "You created {file}" : "Anda membuat {file}",
- "You created an encrypted file in {file}" : "Anda membuat berkas terenkripsi pada {file}",
- "{user} created {file}" : "{user} membuat {file}",
- "{user} created an encrypted file in {file}" : "{user} membuat berkas terenkripsi pada {file}",
- "{file} was created in a public folder" : "{file} dibuat pada folder publik",
- "You changed {file}" : "Anda mengubah {file}",
- "You changed an encrypted file in {file}" : "Anda mengubah berkas terenkripsi pada {file}",
- "{user} changed {file}" : "{user} mengubah {file}",
- "{user} changed an encrypted file in {file}" : "{user} mengubah berkas terenkripsi pada {file}",
- "You deleted {file}" : "Anda menghapus {file}",
- "You deleted an encrypted file in {file}" : "Anda menghapus berkas terenkripsi pada {file}",
- "{user} deleted {file}" : "{user} menghapus {file}",
- "{user} deleted an encrypted file in {file}" : "{user} menghapus berkas terenkripsi pada {file}",
- "You restored {file}" : "Anda memulihkan {file}",
- "{user} restored {file}" : "{user} memulihkan {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Anda mengubah nama {oldfile} (tersembunyi) ke {newfile} (tersembunyi)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Anda mengubah nama {oldfile} (tersembunyi) ke {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Anda mengubah nama {oldfile} ke {newfile} (tersembunyi)",
- "You renamed {oldfile} to {newfile}" : "Anda mengganti nama {oldfile} menjadi {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} mengubah nama {oldfile} (tersembunyi) ke {newfile} (tersembunyi)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} mengubah nama {oldfile} (tersembunyi) ke {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} mengubah nama {oldfile} ke {newfile} (tersebunyi)",
- "{user} renamed {oldfile} to {newfile}" : "{user} mengganti nama {oldfile} menjadi {newfile}",
- "You moved {oldfile} to {newfile}" : "Anda memindahkan {oldfile} menjadi {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} memindahkan {oldfile} menjadi {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Suatu berkas telah ditambahkan atau dibuang dari <strong>favorit</strong>",
- "Files" : "Berkas",
- "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}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Apakah Anda ingin menerima {path}?\n\nCatatan: Setelah diterima, proses transfer butuh kurang lebih 1 jam.",
- "Ownership transfer failed" : "Transfer kepemilikan gagal",
- "Your ownership transfer of {path} to {user} failed." : "Transfer kepemilikan Anda pada {path} ke {user} gagal.",
- "The ownership transfer of {path} from {user} failed." : "Transfer kepemilikan pada {path} dari {user} gagal.",
- "Ownership transfer done" : "Transfer kepemilikan selesai",
- "Your ownership transfer of {path} to {user} has completed." : "Transfer kepemilikan Anda pada {path} ke {user} selesai.",
- "The ownership transfer of {path} from {user} has completed." : "Transfer kepemilikan pada {path} dari {user} selesai.",
- "in %s" : "dalam %s",
- "File Management" : "Pengelolaan Berkas",
- "Home" : "Beranda",
- "Target folder does not exist any more" : "Folder target sudah tidak ada lagi",
- "Favorite" : "Favorit",
- "Filename" : "Nama berkas",
- "Folder name" : "Nama folder",
- "Folder" : "Folder",
- "Pending" : "Tertunda",
- "Clear filter" : "Bersihkan filter",
- "Modified" : "Dimodifikasi",
- "Type" : "tipe",
- "Name" : "Nama",
- "Size" : "Ukuran",
- "Actions" : "Tindakan",
- "File not found" : "Berkas tidak ditemukan",
- "{usedQuotaByte} used" : "{usedQuotaByte} digunakan",
- "{used} of {quota} used" : "{used} dari {quota} terpakai",
- "{relative}% used" : "{relative}% digunakan",
- "Could not refresh storage stats" : "Tidak dapat memuat ulang statistik penyimpanan",
- "Your storage is full, files can not be updated or synced anymore!" : "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!",
- "New folder" : "Folder baru",
- "Create new folder" : "Buat direktori baru",
- "Create" : "Buat",
- "Choose a file or folder to transfer" : "Pilih berkas atau folder untuk ditransfer",
- "Transfer" : "Transfer",
- "Transfer {path} to {userid}" : "Transfer {path} ke {userid}",
- "Invalid path selected" : "Jalur terpilih invalid",
- "Unknown error" : "Kesalahan tidak diketahui",
- "Ownership transfer request sent" : "Permintaan transfer kepemilikan terkirim",
- "Cannot transfer ownership of a file or folder you do not own" : "Tidak dapat mentransfer pemilik berkas atau folder yang Anda tidak miliki",
- "Transfer ownership of a file or folder" : "Transfer kepemilikan dari berkas atau folder",
- "Choose file or folder to transfer" : "Pilih berkas atau folder untuk transfer",
- "Change" : "Ubah",
- "New owner" : "Pemilik baru",
- "Select file or folder to link to" : "Pilih berkas atau folder untuk ditautkan",
- "Shared by link" : "Dibagikan dengan tautan",
- "Shared" : "Dibagikan",
- "Not enough free space" : "Ruang kosong tidak cukup",
- "Operation is blocked by access control" : "Tindakan diblokir oleh kontrol akses",
- "Retry" : "Ulangi",
- "No files in here" : "Tidak ada berkas di sini",
- "Upload some content or sync with your devices!" : "Unggah beberapa konten dan sinkronisasikan dengan perangkat Anda!",
- "Go back" : "Kembali",
- "Views" : "Tampilan",
- "Files settings" : "Setelan berkas",
- "File cannot be accessed" : "Berkas tidak dapat diakses",
- "Clipboard is not available" : "Papan klip tidak tersedia",
- "WebDAV URL copied to clipboard" : "URL WebDAV disalin ke papan klip",
- "Show hidden files" : "Lihat berkas tersembunyi",
- "Crop image previews" : "Pangkas pratinjau gambar",
- "Additional settings" : "Setelan tambahan",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Salin ke papan klip",
- "Use this address to access your Files via WebDAV" : "Gunakan alamat ini untuk mengakses Berkas Anda via WebDAV",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Jika Anda telah mengaktifkan 2FA, Anda harus membuat dan menggunakan sebuah kata sandi aplikasi baru dengan mengeklik di sini.",
- "Keyboard shortcuts" : "Pintasan keyboard",
- "Navigation" : "Navigasi",
- "View" : "Tampilan",
- "Error while loading the file data" : "Galat pemuatan data berkas",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Tambah ke favorit",
- "Tags" : "Tag",
- "Blank" : "Kosong",
- "Unable to create new file from template" : "Tidak dapat membuat berkas baru dari templat",
- "Pick a template for {name}" : "Pilih templat untuk {name}",
- "Create a new file with the selected template" : "Buat sebuah berkas baru dengan templat yang dipilih",
- "Creating file" : "Membuat berkas",
- "Leave this share" : "Tinggalkan pembagian ini",
- "Disconnect storage" : "Memutuskan penyimpaan",
- "Delete permanently" : "Hapus secara permanen",
- "Delete" : "Hapus",
- "Cancel" : "Membatalkan",
- "Copy" : "Salin",
- "Move" : "Pindah",
- "Move or copy" : "Pindah atau salin",
- "Failed to redirect to client" : "Gagal mengarahkan ke klien",
- "Rename" : "Ubah nama",
- "View in folder" : "Lihat dalam folder",
- "Today" : "Hari ini",
- "Documents" : "Dokumen",
- "Folders" : "Folder",
- "Audio" : "Audio",
- "Videos" : "Video",
- "Unable to initialize the templates directory" : "Tidak dapat membuat direktori templat",
- "Templates" : "Templat",
- "Some files could not be moved" : "Beberapa berkas tidak dapat dipindahkan",
- "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",
- "_%n file_::_%n files_" : ["%n berkas"],
- "_%n folder_::_%n folders_" : ["%n folder"],
- "No favorites yet" : "Belum memiliki favorit",
- "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan di sini.",
- "All files" : "Semua berkas",
- "Personal files" : "Berkas pribadi",
- "Recent" : "Terbaru",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Select all" : "Pilih Semua",
- "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",
- "Could not create folder \"{dir}\"" : "Tidak dapat membuat folder \"{dir}\"",
- "This will stop your current uploads." : "Ini akan menghentikan proses pengunggahan.",
- "Upload cancelled." : "Pengunggahan dibatalkan.",
- "Processing files …" : "Memproses berkas ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 bita",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa",
- "Target folder \"{dir}\" does not exist any more" : "Folder target \"{dir}\" sudah tidak ada lagi",
- "An unknown error has occurred" : "Terjadi galat yang tak diketahui",
- "File could not be uploaded" : "Berkas tidak dapat diunggah",
- "Uploading …" : "Mengunggah …",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} dari {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Pengunggahan itu tidak didukung",
- "Error when assembling chunks, status code {status}" : "Galat saat merakit potongan, kode status {status}",
- "Choose target folder" : "Pilih folder target",
- "Edit locally" : "Sunting secara lokal",
- "Open" : "Buka",
- "Could not load info for file \"{file}\"" : "Tidak dapat menampilkan info berkas \"{file}\"",
- "Details" : "Rincian",
- "Please select tag(s) to add to the selection" : "Silakan pilih tag untuk ditambahkan ke pilihan",
- "Apply tag(s) to selection" : "Tetapkan tag ke pilihan",
- "Select directory \"{dirName}\"" : "Pilih direktori \"{dirName}\"",
- "Select file \"{fileName}\"" : "Pilih berkas \"{fileName}\"",
- "Unable to determine date" : "Tidak dapat menentukan tanggal",
- "Could not move \"{file}\", target exists" : "Tidak dapat memindahkan \"{file}\", sudah ada",
- "Could not move \"{file}\"" : "Tidak dapat memindahkan \"{file}\"",
- "copy" : "salin",
- "Could not copy \"{file}\", target exists" : "Tidak dapat menyalin \"{file}\", target eksis",
- "Could not copy \"{file}\"" : "Tidak dapat menyalin \"{file}\"",
- "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",
- "Could not fetch file details \"{file}\"" : "Tidak dapat memperoleh detail berkas \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Terjadi kesalahan saat menghapus berkas \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Hasil pencarian tidak ditemukan di folder lainnya untuk '{tag}{filter}{endtag}'",
- "Enter more than two characters to search in other folders" : "Masukkan lebih dari dua karakter untuk mencari di folder lain",
- "{dirs} and {files}" : "{dirs} dan {files}",
- "_including %n hidden_::_including %n hidden_" : ["Termasuk %n tersembunyi"],
- "You do not have permission to upload or create files here" : "Anda tidak memiliki izin untuk mengunggah atau membuat berkas di sini",
- "_Uploading %n file_::_Uploading %n files_" : ["Mengunggah %n berkas"],
- "New" : "Baru",
- "New file/folder menu" : "Menu berkas/folder baru",
- "Select file range" : "Pilih rentang berkas",
- "{used}%" : "{used}%",
- "{used} used" : "{used} terpakai",
- "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.",
- "File name cannot be empty." : "Nama berkas tidak boleh kosong.",
- "\"/\" is not allowed inside a file name." : "\"/\" tidak diizinkan pada nama berkas.",
- "\"{name}\" is not an allowed filetype" : "Tipe berkas \"{name}\" tidak diizinkan",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Penyimpanan {owner} penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Folder grup \"{mountPoint}\" penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Penyimpanan eksternal \"{mountPoint}\" penuh, berkas tidak dapat diperbarui atau disinkronisasi lagi!",
- "Your storage is full, files cannot be updated or synced anymore!" : "Penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronisasikan lagi!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Penyimpanan {owner} hampir penuh ({usedSpacePercent}%).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Folder grup \"{mountPoint}\" hampir penuh ({usedSpacePercent}%).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Penyimpanan eksternal \"{mountPoint}\" hampir penuh ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Penyimpanan Anda hampir penuh ({usedSpacePercent}%).",
- "_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",
- "Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
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 ee87ac2320d..8c4e8a0ff47 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}",
@@ -99,6 +98,7 @@ OC.L10N.register(
"Unknown date" : "Óþekkt dagsetning",
"Clear filter" : "Hreinsa síu",
"Modified" : "Breytt",
+ "Search everywhere" : "Leita allsstaðar",
"Type" : "Tegund",
"Active filters" : "Virkar síur",
"Remove filter" : "Fjarlægja síu",
@@ -115,7 +115,8 @@ 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ð",
+ "Filter in current view" : "Sía í núverandi sýn",
+ "Search globally" : "Leita allstaðar",
"{usedQuotaByte} used" : "{usedQuotaByte} notað",
"{used} of {quota} used" : "{used} af {quota} notað",
"{relative}% used" : "{relative}% notað",
@@ -172,6 +173,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Skráin fannst ekki eða að þú hefur ekki heimildir til að skoða hana. Biddu sendandann um að deila henni.",
"Clipboard is not available" : "Klippispjald er ekki tiltækt",
"WebDAV URL copied to clipboard" : "WebDAV-slóð afrituð á klippispjaldið",
+ "All files" : "Allar skrár",
+ "Personal files" : "Einkaskrár",
"Sort favorites first" : "Raða eftirlætum fremst",
"Sort folders before files" : "Raða möppum á undan skrám",
"Show hidden files" : "Sýna faldar skrár",
@@ -208,6 +211,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",
@@ -244,8 +248,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)",
@@ -264,9 +271,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",
@@ -304,6 +311,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",
@@ -318,10 +328,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Listi yfir eftirlætisskrár og möppur.",
"No favorites yet" : "Engin eftirlæti ennþá",
"Files and folders you mark as favorite will show up here" : "Skrár og möppur sem þú merkir sem eftirlæti birtast hér",
- "All files" : "Allar skrár",
"List of your files and folders." : "Listi yfir skrárnar þínar og möppur.",
"All folders" : "Allar möppur",
- "Personal files" : "Einkaskrár",
"List of your files and folders that are not shared." : "Listi yfir skrárnar þínar og möppur sem ekki er deilt.",
"No personal files found" : "Engar einkaskrár fundust",
"Files that are not shared will show up here." : "Skrár sem ekki er deilt birtast hér.",
@@ -329,12 +337,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Listi yfir nýlega breyttar skrár og möppur.",
"No recently modified files" : "Engar nýlega breyttar skrár",
"Files and folders you recently modified will show up here." : "Skrár og möppur sem þú breyttir nýlega birtast hér.",
+ "Search" : "Search",
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
"Select all" : "Velja allt",
"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",
@@ -373,9 +381,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",
@@ -408,34 +413,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 ba82fae1a98..c2c167506fb 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}",
@@ -97,6 +96,7 @@
"Unknown date" : "Óþekkt dagsetning",
"Clear filter" : "Hreinsa síu",
"Modified" : "Breytt",
+ "Search everywhere" : "Leita allsstaðar",
"Type" : "Tegund",
"Active filters" : "Virkar síur",
"Remove filter" : "Fjarlægja síu",
@@ -113,7 +113,8 @@
"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ð",
+ "Filter in current view" : "Sía í núverandi sýn",
+ "Search globally" : "Leita allstaðar",
"{usedQuotaByte} used" : "{usedQuotaByte} notað",
"{used} of {quota} used" : "{used} af {quota} notað",
"{relative}% used" : "{relative}% notað",
@@ -170,6 +171,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Skráin fannst ekki eða að þú hefur ekki heimildir til að skoða hana. Biddu sendandann um að deila henni.",
"Clipboard is not available" : "Klippispjald er ekki tiltækt",
"WebDAV URL copied to clipboard" : "WebDAV-slóð afrituð á klippispjaldið",
+ "All files" : "Allar skrár",
+ "Personal files" : "Einkaskrár",
"Sort favorites first" : "Raða eftirlætum fremst",
"Sort folders before files" : "Raða möppum á undan skrám",
"Show hidden files" : "Sýna faldar skrár",
@@ -206,6 +209,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",
@@ -242,8 +246,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)",
@@ -262,9 +269,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",
@@ -302,6 +309,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",
@@ -316,10 +326,8 @@
"List of favorite files and folders." : "Listi yfir eftirlætisskrár og möppur.",
"No favorites yet" : "Engin eftirlæti ennþá",
"Files and folders you mark as favorite will show up here" : "Skrár og möppur sem þú merkir sem eftirlæti birtast hér",
- "All files" : "Allar skrár",
"List of your files and folders." : "Listi yfir skrárnar þínar og möppur.",
"All folders" : "Allar möppur",
- "Personal files" : "Einkaskrár",
"List of your files and folders that are not shared." : "Listi yfir skrárnar þínar og möppur sem ekki er deilt.",
"No personal files found" : "Engar einkaskrár fundust",
"Files that are not shared will show up here." : "Skrár sem ekki er deilt birtast hér.",
@@ -327,12 +335,12 @@
"List of recently modified files and folders." : "Listi yfir nýlega breyttar skrár og möppur.",
"No recently modified files" : "Engar nýlega breyttar skrár",
"Files and folders you recently modified will show up here." : "Skrár og möppur sem þú breyttir nýlega birtast hér.",
+ "Search" : "Search",
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
"Select all" : "Velja allt",
"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",
@@ -371,9 +379,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",
@@ -406,34 +411,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 a98cb8fe96d..ac4c9973a4a 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Modificato",
+ "Search everywhere" : "Cerca ovunque",
"Type" : "Tipo",
"Active filters" : "Filtri attivi",
"Remove filter" : "Rimuovi filtro",
"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",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Cerca globalmente per nome file…",
+ "Search here by filename …" : "Cerca qui per nome file…",
+ "Filter file names …" : "Filtra i nomi dei file …",
+ "Search scope options" : "Opzioni nell'ambito di ricerca",
+ "Filter in current view" : "Filtro nella vista corrente",
+ "Search from this location" : "Cerca da questa posizione",
+ "Search globally" : "Cerca globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usato",
"{used} of {quota} used" : "{used} di {quota} utilizzati",
"{relative}% used" : "{relative}% usato",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Qui non c'è alcun file",
"Upload some content or sync with your devices!" : "Carica dei contenuti o sincronizza con i tuoi dispositivi!",
"Go back" : "Indietro",
- "Filter file names …" : "Filtra i nomi dei file …",
"Views" : "Viste",
"Files settings" : "Impostazioni File",
"Your files" : "I tuoi files",
"Open in files" : "Apri in file",
"File cannot be accessed" : "Il file non possono essere acceduti",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Impossibile trovare il file oppure non disponi dei permessi per visualizzarlo. Chiedi al mittente di condividerlo.",
+ "No search results for “{query}”" : "Nessun risultato di ricerca per “{query}”",
+ "Search for files" : "Cerca file",
"Clipboard is not available" : "Appunti non disponibili",
"WebDAV URL copied to clipboard" : "L'URL WebDAV è stato copiato negli appunti",
+ "Default view" : "Vista predefinita",
+ "All files" : "Tutti i file",
+ "Personal files" : "File personali",
"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",
@@ -222,6 +240,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",
@@ -262,8 +281,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)",
@@ -282,12 +304,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",
@@ -325,6 +347,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",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Elenco dei file e delle cartelle preferiti.",
"No favorites yet" : "Nessun preferito ancora",
"Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui",
- "All files" : "Tutti i file",
"List of your files and folders." : "Lista dei tuoi file e cartelle.",
"All folders" : "Tutte le cartelle",
- "Personal files" : "File personali",
"List of your files and folders that are not shared." : "Elenco dei file e delle cartelle che non sono condivisi.",
"No personal files found" : "Nessun file personale trovato",
"Files that are not shared will show up here." : "I file che non vengono condivisi verranno visualizzati qui.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista di file e cartelle modificati di recente.",
"No recently modified files" : "Nessun file modificato di recente",
"Files and folders you recently modified will show up here." : "I file e le cartelle che hai modificato di recente saranno mostrati qui.",
+ "Search" : "Cerca",
+ "Search results within your files." : "Cerca i risultati all'interno dei tuoi file.",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Select all" : "Seleziona tutto",
"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",
@@ -395,9 +419,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à",
@@ -430,35 +451,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 f645e6940bc..a1242d32e72 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Modificato",
+ "Search everywhere" : "Cerca ovunque",
"Type" : "Tipo",
"Active filters" : "Filtri attivi",
"Remove filter" : "Rimuovi filtro",
"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",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Cerca globalmente per nome file…",
+ "Search here by filename …" : "Cerca qui per nome file…",
+ "Filter file names …" : "Filtra i nomi dei file …",
+ "Search scope options" : "Opzioni nell'ambito di ricerca",
+ "Filter in current view" : "Filtro nella vista corrente",
+ "Search from this location" : "Cerca da questa posizione",
+ "Search globally" : "Cerca globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usato",
"{used} of {quota} used" : "{used} di {quota} utilizzati",
"{relative}% used" : "{relative}% usato",
@@ -172,18 +185,23 @@
"No files in here" : "Qui non c'è alcun file",
"Upload some content or sync with your devices!" : "Carica dei contenuti o sincronizza con i tuoi dispositivi!",
"Go back" : "Indietro",
- "Filter file names …" : "Filtra i nomi dei file …",
"Views" : "Viste",
"Files settings" : "Impostazioni File",
"Your files" : "I tuoi files",
"Open in files" : "Apri in file",
"File cannot be accessed" : "Il file non possono essere acceduti",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Impossibile trovare il file oppure non disponi dei permessi per visualizzarlo. Chiedi al mittente di condividerlo.",
+ "No search results for “{query}”" : "Nessun risultato di ricerca per “{query}”",
+ "Search for files" : "Cerca file",
"Clipboard is not available" : "Appunti non disponibili",
"WebDAV URL copied to clipboard" : "L'URL WebDAV è stato copiato negli appunti",
+ "Default view" : "Vista predefinita",
+ "All files" : "Tutti i file",
+ "Personal files" : "File personali",
"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",
@@ -220,6 +238,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",
@@ -260,8 +279,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)",
@@ -280,12 +302,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",
@@ -323,6 +345,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",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "Elenco dei file e delle cartelle preferiti.",
"No favorites yet" : "Nessun preferito ancora",
"Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui",
- "All files" : "Tutti i file",
"List of your files and folders." : "Lista dei tuoi file e cartelle.",
"All folders" : "Tutte le cartelle",
- "Personal files" : "File personali",
"List of your files and folders that are not shared." : "Elenco dei file e delle cartelle che non sono condivisi.",
"No personal files found" : "Nessun file personale trovato",
"Files that are not shared will show up here." : "I file che non vengono condivisi verranno visualizzati qui.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "Lista di file e cartelle modificati di recente.",
"No recently modified files" : "Nessun file modificato di recente",
"Files and folders you recently modified will show up here." : "I file e le cartelle che hai modificato di recente saranno mostrati qui.",
+ "Search" : "Cerca",
+ "Search results within your files." : "Cerca i risultati all'interno dei tuoi file.",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Select all" : "Seleziona tutto",
"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",
@@ -393,9 +417,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à",
@@ -428,35 +449,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 3d61616343b..b9d22d413f6 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" : "ファイル管理",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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" : "フィルターをクリア",
"Modified" : "更新日時",
+ "Search everywhere" : "あらゆる場所を検索",
"Type" : "タイプ",
"Active filters" : "有効なフィルター",
"Remove filter" : "フィルターを削除",
"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}\" バッチアクションが正常に実行されました。",
@@ -117,7 +125,14 @@ 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}選択済み"],
+ "Search globally by filename …" : "ファイル名でグローバルに検索 …",
+ "Search here by filename …" : "ファイル名でここを検索 …",
+ "Filter file names …" : "ファイルネームフィルター…",
+ "Search scope options" : "検索範囲オプション",
+ "Filter in current view" : "現在のビューでフィルタ",
+ "Search from this location" : "この場所から検索",
+ "Search globally" : "グローバルに検索",
"{usedQuotaByte} used" : "{usedQuotaByte} 使用されています",
"{used} of {quota} used" : "{used} / {quota} 使用中",
"{relative}% used" : "{relative}% 使用されています",
@@ -166,24 +181,28 @@ 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" : "ファイルがありません",
"Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
"Go back" : "戻る",
- "Filter file names …" : "ファイルネームフィルター…",
"Views" : "表示",
"Files settings" : "ファイルの設定",
"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." : "ファイルが見つからないか、あなたがそれを表示する権限を持っていない可能性があります。送信者に共有するように依頼してください。",
+ "No search results for “{query}”" : "\"{query}\"に関する検索結果はありません",
+ "Search for files" : "ファイルを検索",
"Clipboard is not available" : "クリップボードは利用できません",
"WebDAV URL copied to clipboard" : "WebDAVのURLがクリップボードにコピーされました",
+ "All files" : "すべてのファイル",
+ "Personal files" : "個人ファイル",
"Sort favorites first" : "お気に入りを最初に並べる",
"Sort folders before files" : "ファイルよりもフォルダを先に並べ替えます",
"Show hidden files" : "隠しファイルを表示",
+ "Show file type column" : "ファイルの種類のカラムを表示する",
"Crop image previews" : "プレビュー画像を切り抜く",
"Enable the grid view" : "グリッド表示を有効にする",
"Enable folder tree" : "フォルダーツリーを有効にする",
@@ -220,6 +239,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" : "お気に入りから削除",
@@ -260,8 +280,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)",
@@ -280,12 +303,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" : "フォルダー内で表示",
@@ -323,6 +346,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" : "ストレージは一時的に利用できません",
@@ -338,10 +364,8 @@ OC.L10N.register(
"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." : "ファイルやフォルダーの一覧",
"All folders" : "全てのフォルダー",
- "Personal files" : "個人ファイル",
"List of your files and folders that are not shared." : "共有されていないファイルやフォルダの一覧。",
"No personal files found" : "個人ファイルは見つかりませんでした",
"Files that are not shared will show up here." : "共有されていないファイルは、ここに表示されます。",
@@ -349,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "最近変更されたファイルとフォルダーのリスト",
"No recently modified files" : "最近更新されたファイルはありません",
"Files and folders you recently modified will show up here." : "最近変更したファイルやフォルダーがここに表示されます。",
+ "Search" : "検索",
+ "Search results within your files." : "ファイル内の検索結果",
"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" : "閉じる",
@@ -393,9 +418,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}\" はすでに存在するため作成できません",
@@ -428,35 +450,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 e778a19f0bb..4d68a99c1df 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" : "ファイル管理",
@@ -94,16 +95,23 @@
"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" : "フィルターをクリア",
"Modified" : "更新日時",
+ "Search everywhere" : "あらゆる場所を検索",
"Type" : "タイプ",
"Active filters" : "有効なフィルター",
"Remove filter" : "フィルターを削除",
"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}\" バッチアクションが正常に実行されました。",
@@ -115,7 +123,14 @@
"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}選択済み"],
+ "Search globally by filename …" : "ファイル名でグローバルに検索 …",
+ "Search here by filename …" : "ファイル名でここを検索 …",
+ "Filter file names …" : "ファイルネームフィルター…",
+ "Search scope options" : "検索範囲オプション",
+ "Filter in current view" : "現在のビューでフィルタ",
+ "Search from this location" : "この場所から検索",
+ "Search globally" : "グローバルに検索",
"{usedQuotaByte} used" : "{usedQuotaByte} 使用されています",
"{used} of {quota} used" : "{used} / {quota} 使用中",
"{relative}% used" : "{relative}% 使用されています",
@@ -164,24 +179,28 @@
"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" : "ファイルがありません",
"Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
"Go back" : "戻る",
- "Filter file names …" : "ファイルネームフィルター…",
"Views" : "表示",
"Files settings" : "ファイルの設定",
"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." : "ファイルが見つからないか、あなたがそれを表示する権限を持っていない可能性があります。送信者に共有するように依頼してください。",
+ "No search results for “{query}”" : "\"{query}\"に関する検索結果はありません",
+ "Search for files" : "ファイルを検索",
"Clipboard is not available" : "クリップボードは利用できません",
"WebDAV URL copied to clipboard" : "WebDAVのURLがクリップボードにコピーされました",
+ "All files" : "すべてのファイル",
+ "Personal files" : "個人ファイル",
"Sort favorites first" : "お気に入りを最初に並べる",
"Sort folders before files" : "ファイルよりもフォルダを先に並べ替えます",
"Show hidden files" : "隠しファイルを表示",
+ "Show file type column" : "ファイルの種類のカラムを表示する",
"Crop image previews" : "プレビュー画像を切り抜く",
"Enable the grid view" : "グリッド表示を有効にする",
"Enable folder tree" : "フォルダーツリーを有効にする",
@@ -218,6 +237,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" : "お気に入りから削除",
@@ -258,8 +278,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)",
@@ -278,12 +301,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" : "フォルダー内で表示",
@@ -321,6 +344,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" : "ストレージは一時的に利用できません",
@@ -336,10 +362,8 @@
"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." : "ファイルやフォルダーの一覧",
"All folders" : "全てのフォルダー",
- "Personal files" : "個人ファイル",
"List of your files and folders that are not shared." : "共有されていないファイルやフォルダの一覧。",
"No personal files found" : "個人ファイルは見つかりませんでした",
"Files that are not shared will show up here." : "共有されていないファイルは、ここに表示されます。",
@@ -347,12 +371,13 @@
"List of recently modified files and folders." : "最近変更されたファイルとフォルダーのリスト",
"No recently modified files" : "最近更新されたファイルはありません",
"Files and folders you recently modified will show up here." : "最近変更したファイルやフォルダーがここに表示されます。",
+ "Search" : "検索",
+ "Search results within your files." : "ファイル内の検索結果",
"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" : "閉じる",
@@ -391,9 +416,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}\" はすでに存在するため作成できません",
@@ -426,35 +448,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 cfe5550e1b9..8bac0856950 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}",
@@ -73,6 +72,7 @@ OC.L10N.register(
"Pending" : "Pending",
"Clear filter" : "Clear filter",
"Modified" : "Modified",
+ "Search everywhere" : "მოძებნე ყველგან",
"Type" : "Type",
"Active filters" : "Active filters",
"Remove filter" : "Remove filter",
@@ -86,6 +86,9 @@ 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"],
+ "Filter in current view" : "Filter in current view",
+ "Search globally" : "Search globally",
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -128,6 +131,7 @@ OC.L10N.register(
"File cannot be accessed" : "File cannot be accessed",
"Clipboard is not available" : "Clipboard is not available",
"WebDAV URL copied to clipboard" : "WebDAV URL copied to clipboard",
+ "All files" : "All files",
"Sort favorites first" : "Sort favorites first",
"Show hidden files" : "Show hidden files",
"Crop image previews" : "Crop image previews",
@@ -159,6 +163,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",
@@ -171,9 +178,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",
@@ -188,6 +195,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",
@@ -195,18 +205,17 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n folder","%n folders"],
"No favorites yet" : "No favorites yet",
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favorite will show up here",
- "All files" : "All files",
"List of your files and folders." : "List of your files and folders.",
"Recent" : "Recent",
"List of recently modified files and folders." : "List of recently modified files and folders.",
"No recently modified files" : "No recently modified files",
"Files and folders you recently modified will show up here." : "Files and folders you recently modified will show up here.",
+ "Search" : "ძიება",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"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",
@@ -245,9 +254,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",
@@ -279,22 +285,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 62a87193a52..2d628d34d21 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}",
@@ -71,6 +70,7 @@
"Pending" : "Pending",
"Clear filter" : "Clear filter",
"Modified" : "Modified",
+ "Search everywhere" : "მოძებნე ყველგან",
"Type" : "Type",
"Active filters" : "Active filters",
"Remove filter" : "Remove filter",
@@ -84,6 +84,9 @@
"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"],
+ "Filter in current view" : "Filter in current view",
+ "Search globally" : "Search globally",
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -126,6 +129,7 @@
"File cannot be accessed" : "File cannot be accessed",
"Clipboard is not available" : "Clipboard is not available",
"WebDAV URL copied to clipboard" : "WebDAV URL copied to clipboard",
+ "All files" : "All files",
"Sort favorites first" : "Sort favorites first",
"Show hidden files" : "Show hidden files",
"Crop image previews" : "Crop image previews",
@@ -157,6 +161,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",
@@ -169,9 +176,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",
@@ -186,6 +193,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",
@@ -193,18 +203,17 @@
"_%n folder_::_%n folders_" : ["%n folder","%n folders"],
"No favorites yet" : "No favorites yet",
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favorite will show up here",
- "All files" : "All files",
"List of your files and folders." : "List of your files and folders.",
"Recent" : "Recent",
"List of recently modified files and folders." : "List of recently modified files and folders.",
"No recently modified files" : "No recently modified files",
"Files and folders you recently modified will show up here." : "Files and folders you recently modified will show up here.",
+ "Search" : "ძიება",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"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",
@@ -243,9 +252,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",
@@ -277,22 +283,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 9a628f603bb..f931846361c 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}의 소유권 이전 요청",
@@ -100,6 +99,7 @@ OC.L10N.register(
"Unknown date" : "알 수 없는 날짜",
"Clear filter" : "필터 지우기",
"Modified" : "수정됨",
+ "Search everywhere" : "모든 곳에서 찾기",
"Type" : "종류",
"Active filters" : "활성 필터",
"Remove filter" : "필터 삭제",
@@ -117,7 +117,8 @@ 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}개 선택됨",
+ "Filter in current view" : "현재 화면을 필터",
+ "Search globally" : "전역 검색",
"{usedQuotaByte} used" : "{usedQuotaByte} 사용",
"{used} of {quota} used" : "{quota} 중 {used} 사용함",
"{relative}% used" : "{relative}% 사용",
@@ -180,6 +181,8 @@ OC.L10N.register(
"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" : "WebDAV URL이 클립보드에 복사됨",
+ "All files" : "모든 파일",
+ "Personal files" : "개인 파일",
"Sort favorites first" : "즐겨찾기를 처음에 나열",
"Sort folders before files" : "폴더를 파일보다 먼저 정렬",
"Show hidden files" : "숨김 파일 보이기",
@@ -248,8 +251,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 복사)",
@@ -268,11 +274,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" : "폴더에서 보기",
@@ -310,6 +316,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" : "저장소를 일시적으로 사용할 수 없음",
@@ -324,10 +333,8 @@ OC.L10N.register(
"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." : "내 폴더와 파일의 목록",
"All folders" : "모든 폴더",
- "Personal files" : "개인 파일",
"List of your files and folders that are not shared." : "공유되지 않는 파일과 폴더의 목록",
"No personal files found" : "개인 파일을 찾을 수 없음",
"Files that are not shared will show up here." : "공유되지 않는 파일이 이곳에 나타납니다.",
@@ -335,12 +342,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "최근에 수정된 파일과 폴더의 목록",
"No recently modified files" : "최근에 수정된 파일 없음",
"Files and folders you recently modified will show up here." : "최근에 수정한 파일과 폴더가 이곳에 표시됩니다.",
+ "Search" : "검색",
"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" : "닫기",
@@ -379,9 +386,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}\"을(를) 만들 수 없음",
@@ -414,33 +418,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 10b720f7f8c..30511d2a359 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}의 소유권 이전 요청",
@@ -98,6 +97,7 @@
"Unknown date" : "알 수 없는 날짜",
"Clear filter" : "필터 지우기",
"Modified" : "수정됨",
+ "Search everywhere" : "모든 곳에서 찾기",
"Type" : "종류",
"Active filters" : "활성 필터",
"Remove filter" : "필터 삭제",
@@ -115,7 +115,8 @@
"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}개 선택됨",
+ "Filter in current view" : "현재 화면을 필터",
+ "Search globally" : "전역 검색",
"{usedQuotaByte} used" : "{usedQuotaByte} 사용",
"{used} of {quota} used" : "{quota} 중 {used} 사용함",
"{relative}% used" : "{relative}% 사용",
@@ -178,6 +179,8 @@
"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" : "WebDAV URL이 클립보드에 복사됨",
+ "All files" : "모든 파일",
+ "Personal files" : "개인 파일",
"Sort favorites first" : "즐겨찾기를 처음에 나열",
"Sort folders before files" : "폴더를 파일보다 먼저 정렬",
"Show hidden files" : "숨김 파일 보이기",
@@ -246,8 +249,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 복사)",
@@ -266,11 +272,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" : "폴더에서 보기",
@@ -308,6 +314,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" : "저장소를 일시적으로 사용할 수 없음",
@@ -322,10 +331,8 @@
"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." : "내 폴더와 파일의 목록",
"All folders" : "모든 폴더",
- "Personal files" : "개인 파일",
"List of your files and folders that are not shared." : "공유되지 않는 파일과 폴더의 목록",
"No personal files found" : "개인 파일을 찾을 수 없음",
"Files that are not shared will show up here." : "공유되지 않는 파일이 이곳에 나타납니다.",
@@ -333,12 +340,12 @@
"List of recently modified files and folders." : "최근에 수정된 파일과 폴더의 목록",
"No recently modified files" : "최근에 수정된 파일 없음",
"Files and folders you recently modified will show up here." : "최근에 수정한 파일과 폴더가 이곳에 표시됩니다.",
+ "Search" : "검색",
"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" : "닫기",
@@ -377,9 +384,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}\"을(를) 만들 수 없음",
@@ -412,33 +416,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 e0687e17887..1eb1100baee 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}",
@@ -89,7 +88,7 @@ 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}",
+ "Search globally" : "Ieškoti visuotiniu mastu",
"{usedQuotaByte} used" : "Naudojama {usedQuotaByte}",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"{relative}% used" : "Naudojama {relative}",
@@ -134,6 +133,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nepavyko surasti failo arba jūs neturite leidimo jo peržiūrėti. Paprašykite siuntėjo, kad pradėtų jį su jumis bendrinti.",
"Clipboard is not available" : "Iškarpinė neprieinama",
"WebDAV URL copied to clipboard" : "WebDAV URL nukopijuotas į iškarpinę",
+ "All files" : "Visi failai",
+ "Personal files" : "Asmeniniai failai",
"Show hidden files" : "Rodyti paslėptus failus",
"Crop image previews" : "Apkirpti paveikslėlių peržiūras",
"Enable the grid view" : "Įjungti grid peržiūrą",
@@ -173,6 +174,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)",
@@ -186,8 +188,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",
@@ -213,6 +215,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",
@@ -224,20 +229,18 @@ OC.L10N.register(
"\"{extension}\" is not an allowed filetype." : "„{extension}“ nėra leidžiamas failo tipas.",
"No favorites yet" : "Kol kas nėra mėgstamų",
"Files and folders you mark as favorite will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos pažymėsite kaip mėgstamus",
- "All files" : "Visi failai",
"List of your files and folders." : "Jūsų failų ir aplankų sąrašas.",
"All folders" : "Visi aplankai",
- "Personal files" : "Asmeniniai failai",
"No personal files found" : "Nerasta jokių asmeninių failų",
"Recent" : "Paskiausiai naudoti",
"List of recently modified files and folders." : "Paskiausiai modifikuotų failų ir aplankų sąrašas.",
"No recently modified files" : "Nėra jokių paskiausiai modifikuotų failų",
+ "Search" : "Paieška",
"No entries found in this folder" : "Nerasta įrašų šiame aplanke",
"Select all" : "Pažymėti viską",
"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",
@@ -275,9 +278,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",
@@ -304,22 +304,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 c118a408467..92bb263aa58 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}",
@@ -87,7 +86,7 @@
"Actions" : "Veiksmai",
"List of files and folders." : "Failų ir aplankų sąrašas.",
"File not found" : "Failas nerastas",
- "{count} selected" : "Pažymėta {count}",
+ "Search globally" : "Ieškoti visuotiniu mastu",
"{usedQuotaByte} used" : "Naudojama {usedQuotaByte}",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"{relative}% used" : "Naudojama {relative}",
@@ -132,6 +131,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nepavyko surasti failo arba jūs neturite leidimo jo peržiūrėti. Paprašykite siuntėjo, kad pradėtų jį su jumis bendrinti.",
"Clipboard is not available" : "Iškarpinė neprieinama",
"WebDAV URL copied to clipboard" : "WebDAV URL nukopijuotas į iškarpinę",
+ "All files" : "Visi failai",
+ "Personal files" : "Asmeniniai failai",
"Show hidden files" : "Rodyti paslėptus failus",
"Crop image previews" : "Apkirpti paveikslėlių peržiūras",
"Enable the grid view" : "Įjungti grid peržiūrą",
@@ -171,6 +172,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)",
@@ -184,8 +186,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",
@@ -211,6 +213,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",
@@ -222,20 +227,18 @@
"\"{extension}\" is not an allowed filetype." : "„{extension}“ nėra leidžiamas failo tipas.",
"No favorites yet" : "Kol kas nėra mėgstamų",
"Files and folders you mark as favorite will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos pažymėsite kaip mėgstamus",
- "All files" : "Visi failai",
"List of your files and folders." : "Jūsų failų ir aplankų sąrašas.",
"All folders" : "Visi aplankai",
- "Personal files" : "Asmeniniai failai",
"No personal files found" : "Nerasta jokių asmeninių failų",
"Recent" : "Paskiausiai naudoti",
"List of recently modified files and folders." : "Paskiausiai modifikuotų failų ir aplankų sąrašas.",
"No recently modified files" : "Nėra jokių paskiausiai modifikuotų failų",
+ "Search" : "Paieška",
"No entries found in this folder" : "Nerasta įrašų šiame aplanke",
"Select all" : "Pažymėti viską",
"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",
@@ -273,9 +276,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",
@@ -302,22 +302,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 0eebc8c5376..2832fc9cdcc 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}",
@@ -100,7 +99,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} селектирани",
+ "Search globally" : "Пребарај глобално",
"{usedQuotaByte} used" : "искористено {usedQuotaByte}",
"{used} of {quota} used" : "Искористени {used} од {quota}",
"{relative}% used" : "искористено {relative}% ",
@@ -147,6 +146,8 @@ OC.L10N.register(
"File cannot be accessed" : "Неможе да се пристапи до датотеката",
"Clipboard is not available" : "Клипбордот не е достапен",
"WebDAV URL copied to clipboard" : "CalDAV линкот е копиран",
+ "All files" : "Сите датотеки",
+ "Personal files" : "Лични датотеки",
"Sort favorites first" : "Прво омилените",
"Show hidden files" : "Прикажи сокриени датотеки",
"Crop image previews" : "Исечи ја сликата за преглед",
@@ -162,7 +163,7 @@ OC.L10N.register(
"Rename a file" : "Преименувај датотека",
"Delete a file" : "Избриши датотека",
"Navigation" : "Навигација",
- "View" : "Погледни",
+ "View" : "Поглед",
"You" : "Вас",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Owner" : "Сопственик",
@@ -187,6 +188,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)",
@@ -202,9 +206,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" : "Погледни во папката",
@@ -219,29 +223,34 @@ 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" : "Сите папки",
+ "No personal files found" : "Не се пронајдени лични датотеки ",
"Recent" : "Неодамнешни",
"List of recently modified files and folders." : "Листа на скоро изменети датотеки и папки.",
"No recently modified files" : "Нема скоро изменети датотеки",
"Files and folders you recently modified will show up here." : "Датотеките и папките кои скоро ќе ги измените ќе се појават тука.",
+ "Search" : "Барај",
"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" : "Затвори",
@@ -280,9 +289,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}\" бидејќи веќе постои",
@@ -315,25 +321,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 4c970bba5ff..70af1b3c508 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}",
@@ -98,7 +97,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} селектирани",
+ "Search globally" : "Пребарај глобално",
"{usedQuotaByte} used" : "искористено {usedQuotaByte}",
"{used} of {quota} used" : "Искористени {used} од {quota}",
"{relative}% used" : "искористено {relative}% ",
@@ -145,6 +144,8 @@
"File cannot be accessed" : "Неможе да се пристапи до датотеката",
"Clipboard is not available" : "Клипбордот не е достапен",
"WebDAV URL copied to clipboard" : "CalDAV линкот е копиран",
+ "All files" : "Сите датотеки",
+ "Personal files" : "Лични датотеки",
"Sort favorites first" : "Прво омилените",
"Show hidden files" : "Прикажи сокриени датотеки",
"Crop image previews" : "Исечи ја сликата за преглед",
@@ -160,7 +161,7 @@
"Rename a file" : "Преименувај датотека",
"Delete a file" : "Избриши датотека",
"Navigation" : "Навигација",
- "View" : "Погледни",
+ "View" : "Поглед",
"You" : "Вас",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Owner" : "Сопственик",
@@ -185,6 +186,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)",
@@ -200,9 +204,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" : "Погледни во папката",
@@ -217,29 +221,34 @@
"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" : "Сите папки",
+ "No personal files found" : "Не се пронајдени лични датотеки ",
"Recent" : "Неодамнешни",
"List of recently modified files and folders." : "Листа на скоро изменети датотеки и папки.",
"No recently modified files" : "Нема скоро изменети датотеки",
"Files and folders you recently modified will show up here." : "Датотеките и папките кои скоро ќе ги измените ќе се појават тука.",
+ "Search" : "Барај",
"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" : "Затвори",
@@ -278,9 +287,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}\" бидејќи веќе постои",
@@ -313,25 +319,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 c05d7df2dba..573fe94367d 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}",
@@ -97,6 +96,7 @@ OC.L10N.register(
"Unknown date" : "Ukjent dato",
"Clear filter" : "Tøm filter",
"Modified" : "Endret",
+ "Search everywhere" : "Søk overalt",
"Type" : "Type",
"Active filters" : "Aktivt filter",
"Remove filter" : "Fjern filter",
@@ -113,7 +113,8 @@ 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",
+ "Filter in current view" : "Filter i gjeldende visning",
+ "Search globally" : "Søk globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} brukt",
"{used} of {quota} used" : "{used} av {quota} brukt",
"{relative}% used" : "{relative}% brukt",
@@ -170,6 +171,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen ble ikke funnet, eller du har ikke tillatelse til å vise den. Be avsenderen om å dele den.",
"Clipboard is not available" : "Utklippstavlen er ikke tilgjengelig",
"WebDAV URL copied to clipboard" : "WebDAV-URL kopiert til utklippstavlen",
+ "All files" : "Alle filer",
+ "Personal files" : "Personlige filer",
"Sort favorites first" : "Sorter favoritter først",
"Sort folders before files" : "Sorter mapper før filer",
"Show hidden files" : "Vis skjulte filer",
@@ -229,8 +232,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)",
@@ -249,11 +255,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",
@@ -291,6 +297,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",
@@ -305,10 +314,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Liste over favorittfiler og mapper.",
"No favorites yet" : "Ingen favoritter enda",
"Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her",
- "All files" : "Alle filer",
"List of your files and folders." : "Liste over dine filer og mapper.",
"All folders" : "Alle mapper",
- "Personal files" : "Personlige filer",
"List of your files and folders that are not shared." : "Liste over dine filer og mapper som ikke er delt.",
"No personal files found" : "Ingen personlige filer funnet",
"Files that are not shared will show up here." : "Filer som ikke er delt vil vises her.",
@@ -316,12 +323,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Liste over nylig endrede filer og mapper.",
"No recently modified files" : "Ingen nylig endrede filer",
"Files and folders you recently modified will show up here." : "Filer og mapper du nylig har endret, vises her.",
+ "Search" : "Søk",
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"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",
@@ -360,9 +367,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",
@@ -395,32 +399,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 20d1464f445..c35cf93d0b3 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}",
@@ -95,6 +94,7 @@
"Unknown date" : "Ukjent dato",
"Clear filter" : "Tøm filter",
"Modified" : "Endret",
+ "Search everywhere" : "Søk overalt",
"Type" : "Type",
"Active filters" : "Aktivt filter",
"Remove filter" : "Fjern filter",
@@ -111,7 +111,8 @@
"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",
+ "Filter in current view" : "Filter i gjeldende visning",
+ "Search globally" : "Søk globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} brukt",
"{used} of {quota} used" : "{used} av {quota} brukt",
"{relative}% used" : "{relative}% brukt",
@@ -168,6 +169,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen ble ikke funnet, eller du har ikke tillatelse til å vise den. Be avsenderen om å dele den.",
"Clipboard is not available" : "Utklippstavlen er ikke tilgjengelig",
"WebDAV URL copied to clipboard" : "WebDAV-URL kopiert til utklippstavlen",
+ "All files" : "Alle filer",
+ "Personal files" : "Personlige filer",
"Sort favorites first" : "Sorter favoritter først",
"Sort folders before files" : "Sorter mapper før filer",
"Show hidden files" : "Vis skjulte filer",
@@ -227,8 +230,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)",
@@ -247,11 +253,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",
@@ -289,6 +295,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",
@@ -303,10 +312,8 @@
"List of favorite files and folders." : "Liste over favorittfiler og mapper.",
"No favorites yet" : "Ingen favoritter enda",
"Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her",
- "All files" : "Alle filer",
"List of your files and folders." : "Liste over dine filer og mapper.",
"All folders" : "Alle mapper",
- "Personal files" : "Personlige filer",
"List of your files and folders that are not shared." : "Liste over dine filer og mapper som ikke er delt.",
"No personal files found" : "Ingen personlige filer funnet",
"Files that are not shared will show up here." : "Filer som ikke er delt vil vises her.",
@@ -314,12 +321,12 @@
"List of recently modified files and folders." : "Liste over nylig endrede filer og mapper.",
"No recently modified files" : "Ingen nylig endrede filer",
"Files and folders you recently modified will show up here." : "Filer og mapper du nylig har endret, vises her.",
+ "Search" : "Søk",
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"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",
@@ -358,9 +365,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",
@@ -393,32 +397,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 f1576a4e645..0db33f70604 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",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Aangepast",
+ "Search everywhere" : "Zoek in alles",
"Type" : "Type",
"Active filters" : "Actieve filters",
"Remove filter" : "Verwijder filter",
"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",
@@ -117,7 +125,10 @@ 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"],
+ "Filter file names …" : "Bestandsnamen filteren ...",
+ "Filter in current view" : "Beperk tot huidige weergave",
+ "Search globally" : "Zoek door alles",
"{usedQuotaByte} used" : "{usedQuotaByte} gebruikt",
"{used} of {quota} used" : "{used} van {quota} gebruikt",
"{relative}% used" : "{relative}% gebruikt",
@@ -172,7 +183,6 @@ OC.L10N.register(
"No files in here" : "Hier geen bestanden",
"Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!",
"Go back" : "Ga terug",
- "Filter file names …" : "Bestandsnamen filteren ...",
"Views" : "Bekeken",
"Files settings" : "Instellingen voor bestanden",
"Your files" : "Jouw bestanden",
@@ -181,9 +191,12 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Dit bestand is niet gevonden of je hebt geen machtigingen om het te bekijken. Vraag de verzender om het met je te delen.",
"Clipboard is not available" : "Klembord niet beschikbaar",
"WebDAV URL copied to clipboard" : "WebDAV URL naar klembord gekopieerd",
+ "All files" : "Alle bestanden",
+ "Personal files" : "Persoonlijke bestanden",
"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",
@@ -236,6 +249,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 ...",
@@ -258,6 +273,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.",
@@ -278,12 +294,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",
@@ -321,12 +337,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",
@@ -335,10 +355,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lijst van favoriete bestanden en mappen.",
"No favorites yet" : "Nog geen favorieten",
"Files and folders you mark as favorite will show up here" : "Bestanden en mappen die je als favoriet aanmerkt, worden hier getoond",
- "All files" : "Alle bestanden",
"List of your files and folders." : "Lijst van je bestanden en mappen.",
"All folders" : "Alle mappen",
- "Personal files" : "Persoonlijke bestanden",
"List of your files and folders that are not shared." : "Lijst van je bestanden en mappen die niet gedeeld zijn.",
"No personal files found" : "Geen persoonlijke bestanden gevonden",
"Files that are not shared will show up here." : "Niet-gedeelde bestanden worden hier getoond.",
@@ -346,12 +364,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lijst van recent gewijzigde bestanden en mappen.",
"No recently modified files" : "Geen recent gewijzigde bestanden",
"Files and folders you recently modified will show up here." : "Bestanden en mappen die je recent gewijzigd hebt, worden hier getoond.",
+ "Search" : "Zoeken",
"No entries found in this folder" : "Niets gevonden in deze map",
"Select all" : "Alles selecteren",
"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",
@@ -390,9 +408,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",
@@ -425,35 +440,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 edbd2421acb..ebf6ce3b9a9 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",
@@ -94,16 +95,23 @@
"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",
"Modified" : "Aangepast",
+ "Search everywhere" : "Zoek in alles",
"Type" : "Type",
"Active filters" : "Actieve filters",
"Remove filter" : "Verwijder filter",
"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",
@@ -115,7 +123,10 @@
"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"],
+ "Filter file names …" : "Bestandsnamen filteren ...",
+ "Filter in current view" : "Beperk tot huidige weergave",
+ "Search globally" : "Zoek door alles",
"{usedQuotaByte} used" : "{usedQuotaByte} gebruikt",
"{used} of {quota} used" : "{used} van {quota} gebruikt",
"{relative}% used" : "{relative}% gebruikt",
@@ -170,7 +181,6 @@
"No files in here" : "Hier geen bestanden",
"Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!",
"Go back" : "Ga terug",
- "Filter file names …" : "Bestandsnamen filteren ...",
"Views" : "Bekeken",
"Files settings" : "Instellingen voor bestanden",
"Your files" : "Jouw bestanden",
@@ -179,9 +189,12 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Dit bestand is niet gevonden of je hebt geen machtigingen om het te bekijken. Vraag de verzender om het met je te delen.",
"Clipboard is not available" : "Klembord niet beschikbaar",
"WebDAV URL copied to clipboard" : "WebDAV URL naar klembord gekopieerd",
+ "All files" : "Alle bestanden",
+ "Personal files" : "Persoonlijke bestanden",
"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",
@@ -234,6 +247,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 ...",
@@ -256,6 +271,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.",
@@ -276,12 +292,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",
@@ -319,12 +335,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",
@@ -333,10 +353,8 @@
"List of favorite files and folders." : "Lijst van favoriete bestanden en mappen.",
"No favorites yet" : "Nog geen favorieten",
"Files and folders you mark as favorite will show up here" : "Bestanden en mappen die je als favoriet aanmerkt, worden hier getoond",
- "All files" : "Alle bestanden",
"List of your files and folders." : "Lijst van je bestanden en mappen.",
"All folders" : "Alle mappen",
- "Personal files" : "Persoonlijke bestanden",
"List of your files and folders that are not shared." : "Lijst van je bestanden en mappen die niet gedeeld zijn.",
"No personal files found" : "Geen persoonlijke bestanden gevonden",
"Files that are not shared will show up here." : "Niet-gedeelde bestanden worden hier getoond.",
@@ -344,12 +362,12 @@
"List of recently modified files and folders." : "Lijst van recent gewijzigde bestanden en mappen.",
"No recently modified files" : "Geen recent gewijzigde bestanden",
"Files and folders you recently modified will show up here." : "Bestanden en mappen die je recent gewijzigd hebt, worden hier getoond.",
+ "Search" : "Zoeken",
"No entries found in this folder" : "Niets gevonden in deze map",
"Select all" : "Alles selecteren",
"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",
@@ -388,9 +406,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",
@@ -423,35 +438,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 d2d3541974d..11783024bc9 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,7 @@ 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.",
@@ -97,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Zmodyfikowany",
+ "Search everywhere" : "Szukaj wszędzie",
"Type" : "Rodzaj",
"Active filters" : "Aktywne filtry",
"Remove filter" : "Usuń filtr",
"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",
@@ -118,7 +125,14 @@ 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}",
+ "_{count} selected_::_{count} selected_" : ["wybrano {count}","wybrano {count}","wybrano {count}","wybrano {count}"],
+ "Search globally by filename …" : "Szukaj globalnie według nazwy pliku...",
+ "Search here by filename …" : "Szukaj tutaj według nazwy pliku...",
+ "Filter file names …" : "Filtruj nazwy plików…",
+ "Search scope options" : "Opcje zakresu wyszukiwania",
+ "Filter in current view" : "Filtruj w bieżącym widoku",
+ "Search from this location" : "Szukaj z tej lokalizacji",
+ "Search globally" : "Szukaj globalnie",
"{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}",
"{used} of {quota} used" : "Wykorzystane {used} z {quota}",
"{relative}% used" : "Wykorzystano {relative}%",
@@ -173,18 +187,22 @@ OC.L10N.register(
"No files in here" : "Brak plików",
"Upload some content or sync with your devices!" : "Wyślij lub zsynchronizuj pliki z urządzeniami.",
"Go back" : "Wstecz",
- "Filter file names …" : "Filtruj nazwy plików…",
"Views" : "Widoki",
"Files settings" : "Ustawienia Plików",
"Your files" : "Twoje pliki",
"Open in files" : "Otwórz w Plikach",
"File cannot be accessed" : "Nie można uzyskać dostępu do pliku",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nie znaleziono pliku lub nie masz uprawnień, aby go wyświetlić. Poproś nadawcę o udostępnienie.",
+ "No search results for “{query}”" : "Brak wyników wyszukiwania dla \"{query}\"",
+ "Search for files" : "Szukaj plików",
"Clipboard is not available" : "Schowek jest niedostępny",
"WebDAV URL copied to clipboard" : "Adres URL WebDAV skopiowany do schowka",
+ "All files" : "Wszystkie pliki",
+ "Personal files" : "Pliki osobiste",
"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",
@@ -221,6 +239,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",
@@ -261,8 +280,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)",
@@ -281,12 +303,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",
@@ -324,6 +346,9 @@ 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",
@@ -339,10 +364,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista ulubionych plików i katalogów.",
"No favorites yet" : "Brak ulubionych",
"Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
- "All files" : "Wszystkie pliki",
"List of your files and folders." : "Lista Twoich plików i katalogów.",
"All folders" : "Wszystkie katalogi",
- "Personal files" : "Pliki osobiste",
"List of your files and folders that are not shared." : "Lista twoich plików i katalogów, które nie są udostępniane",
"No personal files found" : "Nie znaleziono plików osobistych",
"Files that are not shared will show up here." : "Tutaj pojawią się pliki, które nie są udostępniane.",
@@ -350,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista ostatnio zmodyfikowanych plików i katalogów.",
"No recently modified files" : "Brak ostatnio zmodyfikowanych plików",
"Files and folders you recently modified will show up here." : "Tutaj pojawią się pliki i katalogi, które ostatnio zmodyfikowałeś.",
+ "Search" : "Szukaj",
+ "Search results within your files." : "Wyniki wyszukiwania w Twoich plikach.",
"No entries found in this folder" : "Brak wpisów w tym katalogu",
"Select all" : "Wybierz wszystko",
"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",
@@ -394,9 +418,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",
@@ -429,35 +450,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 18d1ea4ba19..3d504075934 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,7 @@
"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.",
@@ -95,16 +95,23 @@
"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",
"Modified" : "Zmodyfikowany",
+ "Search everywhere" : "Szukaj wszędzie",
"Type" : "Rodzaj",
"Active filters" : "Aktywne filtry",
"Remove filter" : "Usuń filtr",
"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 +123,14 @@
"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}",
+ "_{count} selected_::_{count} selected_" : ["wybrano {count}","wybrano {count}","wybrano {count}","wybrano {count}"],
+ "Search globally by filename …" : "Szukaj globalnie według nazwy pliku...",
+ "Search here by filename …" : "Szukaj tutaj według nazwy pliku...",
+ "Filter file names …" : "Filtruj nazwy plików…",
+ "Search scope options" : "Opcje zakresu wyszukiwania",
+ "Filter in current view" : "Filtruj w bieżącym widoku",
+ "Search from this location" : "Szukaj z tej lokalizacji",
+ "Search globally" : "Szukaj globalnie",
"{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}",
"{used} of {quota} used" : "Wykorzystane {used} z {quota}",
"{relative}% used" : "Wykorzystano {relative}%",
@@ -171,18 +185,22 @@
"No files in here" : "Brak plików",
"Upload some content or sync with your devices!" : "Wyślij lub zsynchronizuj pliki z urządzeniami.",
"Go back" : "Wstecz",
- "Filter file names …" : "Filtruj nazwy plików…",
"Views" : "Widoki",
"Files settings" : "Ustawienia Plików",
"Your files" : "Twoje pliki",
"Open in files" : "Otwórz w Plikach",
"File cannot be accessed" : "Nie można uzyskać dostępu do pliku",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Nie znaleziono pliku lub nie masz uprawnień, aby go wyświetlić. Poproś nadawcę o udostępnienie.",
+ "No search results for “{query}”" : "Brak wyników wyszukiwania dla \"{query}\"",
+ "Search for files" : "Szukaj plików",
"Clipboard is not available" : "Schowek jest niedostępny",
"WebDAV URL copied to clipboard" : "Adres URL WebDAV skopiowany do schowka",
+ "All files" : "Wszystkie pliki",
+ "Personal files" : "Pliki osobiste",
"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 +237,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",
@@ -259,8 +278,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)",
@@ -279,12 +301,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",
@@ -322,6 +344,9 @@
"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",
@@ -337,10 +362,8 @@
"List of favorite files and folders." : "Lista ulubionych plików i katalogów.",
"No favorites yet" : "Brak ulubionych",
"Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
- "All files" : "Wszystkie pliki",
"List of your files and folders." : "Lista Twoich plików i katalogów.",
"All folders" : "Wszystkie katalogi",
- "Personal files" : "Pliki osobiste",
"List of your files and folders that are not shared." : "Lista twoich plików i katalogów, które nie są udostępniane",
"No personal files found" : "Nie znaleziono plików osobistych",
"Files that are not shared will show up here." : "Tutaj pojawią się pliki, które nie są udostępniane.",
@@ -348,12 +371,13 @@
"List of recently modified files and folders." : "Lista ostatnio zmodyfikowanych plików i katalogów.",
"No recently modified files" : "Brak ostatnio zmodyfikowanych plików",
"Files and folders you recently modified will show up here." : "Tutaj pojawią się pliki i katalogi, które ostatnio zmodyfikowałeś.",
+ "Search" : "Szukaj",
+ "Search results within your files." : "Wyniki wyszukiwania w Twoich plikach.",
"No entries found in this folder" : "Brak wpisów w tym katalogu",
"Select all" : "Wybierz wszystko",
"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",
@@ -392,9 +416,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",
@@ -427,35 +448,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 3308568155b..7fc738595b4 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,11 +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 essa configuração. Consulte a documentação sobre o comando occ.",
+ "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",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Modificado",
+ "Search everywhere" : "Pesquisar em qualquer lugar",
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
"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",
@@ -116,10 +122,17 @@ 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"],
+ "Search globally by filename …" : "Pesquisar globalmente por nome de arquivo …",
+ "Search here by filename …" : "Pesquisar aqui por nome de arquivo …",
+ "Filter file names …" : "Filtrar nomes de arquivos …",
+ "Search scope options" : "Opções de escopo da pesquisa",
+ "Filter in current view" : "Filtrar na visualização atual",
+ "Search from this location" : "Pesquisar a partir desta localização",
+ "Search globally" : "Pesquisar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usado",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "Nenhum arquivo aqui",
"Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!",
"Go back" : "Voltar",
- "Filter file names …" : "Filtrar nomes de arquivos …",
"Views" : "Visualizações",
"Files settings" : "Configurações de arquivos",
"Your files" : "Seus arquivos",
"Open in files" : "Abrir em arquivos",
"File cannot be accessed" : "O arquivo não pode ser acessado",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "O arquivo não foi encontrado ou você não tem permissão para visualizá-lo. Peça ao remetente para compartilhá-lo.",
+ "No search results for “{query}”" : "Sem resultados de pesquisa para \"{query}\"",
+ "Search for files" : "Pesquisar arquivos",
"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",
+ "Default view" : "Visualização padrão",
+ "All files" : "Todos os arquivos",
+ "Personal files" : "Arquivos pessoais",
"Sort favorites first" : "Ordenar favoritos primeiro",
"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",
@@ -194,13 +212,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",
@@ -209,37 +227,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 …",
@@ -258,12 +277,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/esta 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)",
@@ -282,12 +304,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",
@@ -314,10 +336,10 @@ OC.L10N.register(
"Search in folder: {folder}" : "Pesquisar na pasta: {folder}",
"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",
@@ -325,13 +347,16 @@ OC.L10N.register(
"Files moved successfully" : "Arquivos movidos com sucesso",
"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 hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
+ "_%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.",
@@ -340,10 +365,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista de arquivos e pastas favoritos",
"No favorites yet" : "Você não possui favoritos!",
"Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.",
- "All files" : "Todos os arquivos",
"List of your files and folders." : "Lista de seus arquivos e pastas.",
"All folders" : "Todas as pastas",
- "Personal files" : "Arquivos pessoais",
"List of your files and folders that are not shared." : "Lista dos seus arquivos e pastas que não estão compartilhados.",
"No personal files found" : "Nenhum arquivo pessoal encontrado",
"Files that are not shared will show up here." : "Arquivos que não estão compartilhados aparecerão aqui.",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista de arquivos e pastas modificados recentemente.",
"No recently modified files" : "Nenhum arquivo modificado recentemente",
"Files and folders you recently modified will show up here." : "Arquivos e pastas que você modificou recentemente aparecerão aqui.",
+ "Search" : "Pesquisar",
+ "Search results within your files." : "Resultados da pesquisa em seus arquivos.",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Select all" : "Selecionar tudo",
"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",
@@ -395,9 +419,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",
@@ -406,9 +427,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",
@@ -426,39 +447,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 ceec9ac85f4..352030acd07 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,11 +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 essa configuração. Consulte a documentação sobre o comando occ.",
+ "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",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Modificado",
+ "Search everywhere" : "Pesquisar em qualquer lugar",
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
"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",
@@ -114,10 +120,17 @@
"(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"],
+ "Search globally by filename …" : "Pesquisar globalmente por nome de arquivo …",
+ "Search here by filename …" : "Pesquisar aqui por nome de arquivo …",
+ "Filter file names …" : "Filtrar nomes de arquivos …",
+ "Search scope options" : "Opções de escopo da pesquisa",
+ "Filter in current view" : "Filtrar na visualização atual",
+ "Search from this location" : "Pesquisar a partir desta localização",
+ "Search globally" : "Pesquisar globalmente",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usado",
@@ -172,18 +185,23 @@
"No files in here" : "Nenhum arquivo aqui",
"Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!",
"Go back" : "Voltar",
- "Filter file names …" : "Filtrar nomes de arquivos …",
"Views" : "Visualizações",
"Files settings" : "Configurações de arquivos",
"Your files" : "Seus arquivos",
"Open in files" : "Abrir em arquivos",
"File cannot be accessed" : "O arquivo não pode ser acessado",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "O arquivo não foi encontrado ou você não tem permissão para visualizá-lo. Peça ao remetente para compartilhá-lo.",
+ "No search results for “{query}”" : "Sem resultados de pesquisa para \"{query}\"",
+ "Search for files" : "Pesquisar arquivos",
"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",
+ "Default view" : "Visualização padrão",
+ "All files" : "Todos os arquivos",
+ "Personal files" : "Arquivos pessoais",
"Sort favorites first" : "Ordenar favoritos primeiro",
"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",
@@ -192,13 +210,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",
@@ -207,37 +225,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 …",
@@ -256,12 +275,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/esta 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)",
@@ -280,12 +302,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",
@@ -312,10 +334,10 @@
"Search in folder: {folder}" : "Pesquisar na pasta: {folder}",
"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",
@@ -323,13 +345,16 @@
"Files moved successfully" : "Arquivos movidos com sucesso",
"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 hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
+ "_%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.",
@@ -338,10 +363,8 @@
"List of favorite files and folders." : "Lista de arquivos e pastas favoritos",
"No favorites yet" : "Você não possui favoritos!",
"Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.",
- "All files" : "Todos os arquivos",
"List of your files and folders." : "Lista de seus arquivos e pastas.",
"All folders" : "Todas as pastas",
- "Personal files" : "Arquivos pessoais",
"List of your files and folders that are not shared." : "Lista dos seus arquivos e pastas que não estão compartilhados.",
"No personal files found" : "Nenhum arquivo pessoal encontrado",
"Files that are not shared will show up here." : "Arquivos que não estão compartilhados aparecerão aqui.",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "Lista de arquivos e pastas modificados recentemente.",
"No recently modified files" : "Nenhum arquivo modificado recentemente",
"Files and folders you recently modified will show up here." : "Arquivos e pastas que você modificou recentemente aparecerão aqui.",
+ "Search" : "Pesquisar",
+ "Search results within your files." : "Resultados da pesquisa em seus arquivos.",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Select all" : "Selecionar tudo",
"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",
@@ -393,9 +417,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",
@@ -404,9 +425,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",
@@ -424,39 +445,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 e886d15e416..a2d6e3030bd 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}",
@@ -91,6 +90,7 @@ OC.L10N.register(
"Pending" : "Pendente",
"Clear filter" : "Limpar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Pesquisar em todo o lado",
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
@@ -106,7 +106,9 @@ 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"],
+ "Filter in current view" : "Filtrar na vista atual",
+ "Search globally" : "Procura global",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "utilizado {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -144,6 +146,8 @@ OC.L10N.register(
"Go back" : "Voltar",
"Views" : "Vistas",
"Files settings" : "Definições do Ficheiros",
+ "All files" : "Todos os ficheiros",
+ "Personal files" : "Ficheiros pessoais",
"Show hidden files" : "Mostrar ficheiros ocultos",
"Additional settings" : "Definições adicionais",
"WebDAV" : "WebDAV",
@@ -164,18 +168,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",
@@ -183,15 +195,13 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
"No favorites yet" : "Sem favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
- "All files" : "Todos os ficheiros",
- "Personal files" : "Ficheiros pessoais",
"Recent" : "Recentes",
+ "Search" : "Pesquisa sobre",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Selecionar todos",
"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",
@@ -227,9 +237,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",
@@ -254,14 +261,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 fbfd1f8b17e..e12d6dc9c36 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}",
@@ -89,6 +88,7 @@
"Pending" : "Pendente",
"Clear filter" : "Limpar filtro",
"Modified" : "Modificado",
+ "Search everywhere" : "Pesquisar em todo o lado",
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
@@ -104,7 +104,9 @@
"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"],
+ "Filter in current view" : "Filtrar na vista atual",
+ "Search globally" : "Procura global",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "utilizado {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -142,6 +144,8 @@
"Go back" : "Voltar",
"Views" : "Vistas",
"Files settings" : "Definições do Ficheiros",
+ "All files" : "Todos os ficheiros",
+ "Personal files" : "Ficheiros pessoais",
"Show hidden files" : "Mostrar ficheiros ocultos",
"Additional settings" : "Definições adicionais",
"WebDAV" : "WebDAV",
@@ -162,18 +166,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",
@@ -181,15 +193,13 @@
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
"No favorites yet" : "Sem favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
- "All files" : "Todos os ficheiros",
- "Personal files" : "Ficheiros pessoais",
"Recent" : "Recentes",
+ "Search" : "Pesquisa sobre",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Selecionar todos",
"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",
@@ -225,9 +235,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",
@@ -252,14 +259,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 e9a3ad15038..f5e9effecea 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}",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Pending" : "În așteptare",
"Clear filter" : "Șterge filtrul",
"Modified" : "Modificat",
+ "Search everywhere" : "Caută oriunde",
"Type" : "Tip",
"Active filters" : "Filtre active",
"Total rows summary" : "Rezumat total rânduri",
@@ -83,6 +83,9 @@ 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"],
+ "Filter in current view" : "Filtrează în vizualizarea curentă",
+ "Search globally" : "Caută global",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizați",
"{used} of {quota} used" : "{used} din {quota} folosiți",
"{relative}% used" : "{relative}% utilizat",
@@ -123,6 +126,8 @@ OC.L10N.register(
"File cannot be accessed" : "Fișierul nu poate fi accesat",
"Clipboard is not available" : "Clipboardul este indisponibil",
"WebDAV URL copied to clipboard" : "URL-ul WebDAV a fost copiat în clipboard",
+ "All files" : "Toate fișierele",
+ "Personal files" : "Fișiere personale",
"Sort favorites first" : "Sortați favoritele primele",
"Show hidden files" : "Arată fișierele ascunse",
"Crop image previews" : "Previzualizarea imaginii decupate",
@@ -150,6 +155,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ă",
@@ -175,6 +183,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",
@@ -182,19 +193,17 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n director","%n directoare","%n directoare"],
"No favorites yet" : "Nu aveți favorite încă",
"Files and folders you mark as favorite will show up here" : "FIșierele și directoarele pe care le marchezi ca favorite vor apărea aici",
- "All files" : "Toate fișierele",
"List of your files and folders." : "Lista fișierelor și dosarelor personale.",
- "Personal files" : "Fișiere personale",
"Recent" : "Recente",
"List of recently modified files and folders." : "Lista fișierelor și dosarelor modificate recent.",
"No recently modified files" : "Niciun fișier modificat recent",
"Files and folders you recently modified will show up here." : "Fișierele și dosarele modificate recent vor fi afișate aici",
+ "Search" : "Căutare",
"No entries found in this folder" : "Niciun element găsit în acest director",
"Select all" : "Selectează tot",
"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",
@@ -232,9 +241,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",
@@ -265,21 +271,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 d724774b53d..775f7a728f3 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}",
@@ -70,6 +69,7 @@
"Pending" : "În așteptare",
"Clear filter" : "Șterge filtrul",
"Modified" : "Modificat",
+ "Search everywhere" : "Caută oriunde",
"Type" : "Tip",
"Active filters" : "Filtre active",
"Total rows summary" : "Rezumat total rânduri",
@@ -81,6 +81,9 @@
"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"],
+ "Filter in current view" : "Filtrează în vizualizarea curentă",
+ "Search globally" : "Caută global",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizați",
"{used} of {quota} used" : "{used} din {quota} folosiți",
"{relative}% used" : "{relative}% utilizat",
@@ -121,6 +124,8 @@
"File cannot be accessed" : "Fișierul nu poate fi accesat",
"Clipboard is not available" : "Clipboardul este indisponibil",
"WebDAV URL copied to clipboard" : "URL-ul WebDAV a fost copiat în clipboard",
+ "All files" : "Toate fișierele",
+ "Personal files" : "Fișiere personale",
"Sort favorites first" : "Sortați favoritele primele",
"Show hidden files" : "Arată fișierele ascunse",
"Crop image previews" : "Previzualizarea imaginii decupate",
@@ -148,6 +153,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ă",
@@ -173,6 +181,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",
@@ -180,19 +191,17 @@
"_%n folder_::_%n folders_" : ["%n director","%n directoare","%n directoare"],
"No favorites yet" : "Nu aveți favorite încă",
"Files and folders you mark as favorite will show up here" : "FIșierele și directoarele pe care le marchezi ca favorite vor apărea aici",
- "All files" : "Toate fișierele",
"List of your files and folders." : "Lista fișierelor și dosarelor personale.",
- "Personal files" : "Fișiere personale",
"Recent" : "Recente",
"List of recently modified files and folders." : "Lista fișierelor și dosarelor modificate recent.",
"No recently modified files" : "Niciun fișier modificat recent",
"Files and folders you recently modified will show up here." : "Fișierele și dosarele modificate recent vor fi afișate aici",
+ "Search" : "Căutare",
"No entries found in this folder" : "Niciun element găsit în acest director",
"Select all" : "Selectează tot",
"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",
@@ -230,9 +239,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",
@@ -263,21 +269,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 19a5884ab39..97302a9e818 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" : "Управление файлами",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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" : "Сбросить фильтр",
"Modified" : "Изменён",
+ "Search everywhere" : "Искать везде",
"Type" : "Тип",
"Active filters" : "Активные фильтры",
"Remove filter" : "Удалить фильтр",
"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}\" выполнено успешно",
@@ -117,7 +125,9 @@ 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} выбрано",
+ "Filter file names …" : "Фильтровать имена файлов…",
+ "Filter in current view" : "Фильтр в текущем виде",
+ "Search globally" : "Искать глобально",
"{usedQuotaByte} used" : "Использовано {usedQuotaByte}",
"{used} of {quota} used" : "использовано {used} из {quota}",
"{relative}% used" : "Использовано {relative}%",
@@ -172,7 +182,6 @@ OC.L10N.register(
"No files in here" : "Здесь нет файлов",
"Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!",
"Go back" : "Назад",
- "Filter file names …" : "Фильтровать имена файлов…",
"Views" : "Представления",
"Files settings" : "Настройки файлов",
"Your files" : "Ваши файлы",
@@ -181,9 +190,12 @@ OC.L10N.register(
"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" : "Ссылка CalDAV скопирована в буфер обмена",
+ "All files" : "Все файлы",
+ "Personal files" : "Личные файлы",
"Sort favorites first" : "Сначала избранное",
"Sort folders before files" : "Начинать список с папок",
"Show hidden files" : "Показывать скрытые файлы",
+ "Show file type column" : "Показать колонку с типом файла",
"Crop image previews" : "Обрезать пред. просмотр",
"Enable the grid view" : "Включить режим просмотра сеткой",
"Enable folder tree" : "Включить дерево папок",
@@ -220,6 +232,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" : "Удалить из избранных",
@@ -260,8 +273,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)",
@@ -280,12 +296,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" : "Посмотреть в каталоге",
@@ -323,12 +339,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." : "является зарезервированным именем и не допускается для имен файлов.",
@@ -337,10 +357,8 @@ OC.L10N.register(
"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." : "Список ваших файлов и каталогов.",
"All folders" : "Все папки",
- "Personal files" : "Личные файлы",
"List of your files and folders that are not shared." : "Список ваших неопубликованных файлов и папок.",
"No personal files found" : "Личные файлы не найдены",
"Files that are not shared will show up here." : "Файлы, которые не опубликованы, показаны здесь.",
@@ -348,12 +366,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Список недавно измененных файлов и директорий.",
"No recently modified files" : "Нет недавно измененных файлов",
"Files and folders you recently modified will show up here." : "Здесь будут показаны недавно изменённые файлы и папки",
+ "Search" : "Поиск",
"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" : "Закрыть",
@@ -392,9 +410,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 +442,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 a6f6a5d1f86..9e6a05135c3 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" : "Управление файлами",
@@ -94,16 +95,23 @@
"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" : "Сбросить фильтр",
"Modified" : "Изменён",
+ "Search everywhere" : "Искать везде",
"Type" : "Тип",
"Active filters" : "Активные фильтры",
"Remove filter" : "Удалить фильтр",
"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}\" выполнено успешно",
@@ -115,7 +123,9 @@
"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} выбрано",
+ "Filter file names …" : "Фильтровать имена файлов…",
+ "Filter in current view" : "Фильтр в текущем виде",
+ "Search globally" : "Искать глобально",
"{usedQuotaByte} used" : "Использовано {usedQuotaByte}",
"{used} of {quota} used" : "использовано {used} из {quota}",
"{relative}% used" : "Использовано {relative}%",
@@ -170,7 +180,6 @@
"No files in here" : "Здесь нет файлов",
"Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!",
"Go back" : "Назад",
- "Filter file names …" : "Фильтровать имена файлов…",
"Views" : "Представления",
"Files settings" : "Настройки файлов",
"Your files" : "Ваши файлы",
@@ -179,9 +188,12 @@
"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" : "Ссылка CalDAV скопирована в буфер обмена",
+ "All files" : "Все файлы",
+ "Personal files" : "Личные файлы",
"Sort favorites first" : "Сначала избранное",
"Sort folders before files" : "Начинать список с папок",
"Show hidden files" : "Показывать скрытые файлы",
+ "Show file type column" : "Показать колонку с типом файла",
"Crop image previews" : "Обрезать пред. просмотр",
"Enable the grid view" : "Включить режим просмотра сеткой",
"Enable folder tree" : "Включить дерево папок",
@@ -218,6 +230,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" : "Удалить из избранных",
@@ -258,8 +271,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)",
@@ -278,12 +294,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" : "Посмотреть в каталоге",
@@ -321,12 +337,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." : "является зарезервированным именем и не допускается для имен файлов.",
@@ -335,10 +355,8 @@
"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." : "Список ваших файлов и каталогов.",
"All folders" : "Все папки",
- "Personal files" : "Личные файлы",
"List of your files and folders that are not shared." : "Список ваших неопубликованных файлов и папок.",
"No personal files found" : "Личные файлы не найдены",
"Files that are not shared will show up here." : "Файлы, которые не опубликованы, показаны здесь.",
@@ -346,12 +364,12 @@
"List of recently modified files and folders." : "Список недавно измененных файлов и директорий.",
"No recently modified files" : "Нет недавно измененных файлов",
"Files and folders you recently modified will show up here." : "Здесь будут показаны недавно изменённые файлы и папки",
+ "Search" : "Поиск",
"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" : "Закрыть",
@@ -390,9 +408,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 +440,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 c069340f269..3e59b491f2b 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}",
@@ -77,7 +76,7 @@ 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}",
+ "Search globally" : "Chirca globale",
"{usedQuotaByte} used" : "{usedQuotaByte} impreadu",
"{used} of {quota} used" : "{used} de {quota} impreadu",
"{relative}% used" : "{relative}% impreadu",
@@ -117,6 +116,8 @@ OC.L10N.register(
"Files settings" : "Cunfiguratziones de archìvios",
"File cannot be accessed" : "Impossìbile atzèdere a s'archìviu",
"WebDAV URL copied to clipboard" : "URL WebDAV copiadu in punta de billete.",
+ "All files" : "Totu is archìvios",
+ "Personal files" : "Archìvios personales",
"Sort favorites first" : "Assenta cun is preferidos in antis",
"Sort folders before files" : "Assenta cun is cartellas in antis de is archìvios",
"Show hidden files" : "Mustra archìvios cuados",
@@ -149,6 +150,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}",
@@ -161,8 +165,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",
@@ -180,6 +184,9 @@ OC.L10N.register(
"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",
@@ -187,21 +194,19 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n cartella","%n cartellas"],
"No favorites yet" : "Ancora perunu preferidu",
"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",
"List of recently modified files and folders." : "Lista de cartellas e archìvios modificados de reghente.",
"No recently modified files" : "Nissunu archìviu modificadu de reghente",
"Files and folders you recently modified will show up here." : "Is cartellas e is archìvios chi apas modificadu de reghente ant a èssere mustrados inoghe.",
+ "Search" : "Chirca",
"No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
"Select all" : "Seletziona totu",
"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",
@@ -240,9 +245,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",
@@ -275,26 +277,18 @@ 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" : "Càrriga archìviu",
- "Not favorited" : "Non preferidu",
"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",
- "Filter filenames…" : "Filtra nùmenes de archìviu..."
+ "New text file.txt" : "Archìviu de testu .txt nou"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json
index 3966e3006c1..9fe2e138dce 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}",
@@ -75,7 +74,7 @@
"(selected)" : "(seletzionados)",
"List of files and folders." : "Lista de archìvios e cartellas.",
"File not found" : "Archìviu no agatadu",
- "{count} selected" : "seletzionados: {count}",
+ "Search globally" : "Chirca globale",
"{usedQuotaByte} used" : "{usedQuotaByte} impreadu",
"{used} of {quota} used" : "{used} de {quota} impreadu",
"{relative}% used" : "{relative}% impreadu",
@@ -115,6 +114,8 @@
"Files settings" : "Cunfiguratziones de archìvios",
"File cannot be accessed" : "Impossìbile atzèdere a s'archìviu",
"WebDAV URL copied to clipboard" : "URL WebDAV copiadu in punta de billete.",
+ "All files" : "Totu is archìvios",
+ "Personal files" : "Archìvios personales",
"Sort favorites first" : "Assenta cun is preferidos in antis",
"Sort folders before files" : "Assenta cun is cartellas in antis de is archìvios",
"Show hidden files" : "Mustra archìvios cuados",
@@ -147,6 +148,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}",
@@ -159,8 +163,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",
@@ -178,6 +182,9 @@
"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",
@@ -185,21 +192,19 @@
"_%n folder_::_%n folders_" : ["%n cartella","%n cartellas"],
"No favorites yet" : "Ancora perunu preferidu",
"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",
"List of recently modified files and folders." : "Lista de cartellas e archìvios modificados de reghente.",
"No recently modified files" : "Nissunu archìviu modificadu de reghente",
"Files and folders you recently modified will show up here." : "Is cartellas e is archìvios chi apas modificadu de reghente ant a èssere mustrados inoghe.",
+ "Search" : "Chirca",
"No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
"Select all" : "Seletziona totu",
"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",
@@ -238,9 +243,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",
@@ -273,26 +275,18 @@
"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" : "Càrriga archìviu",
- "Not favorited" : "Non preferidu",
"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",
- "Filter filenames…" : "Filtra nùmenes de archìviu..."
+ "New text file.txt" : "Archìviu de testu .txt nou"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index 96931816ccb..f8c91be09dc 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}",
@@ -100,6 +99,7 @@ OC.L10N.register(
"Unknown date" : "Neznámy dátum",
"Clear filter" : "Vyčistiť filter",
"Modified" : "Upravené",
+ "Search everywhere" : "Hľadať všade",
"Type" : "Typ",
"Active filters" : "Aktívne filtre",
"Remove filter" : "Odstrániť filter",
@@ -117,7 +117,10 @@ 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"],
+ "Filter file names …" : "Filtrovať názvy súborov ...",
+ "Filter in current view" : "Filter v aktuálnom zobrazení",
+ "Search globally" : "Hľadať globálne",
"{usedQuotaByte} used" : "{usedQuotaByte} použitých",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{relative}% used" : "{relative}% použitých",
@@ -172,7 +175,6 @@ OC.L10N.register(
"No files in here" : "Nie sú tu žiadne súbory",
"Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte dáta so svojimi zariadeniami!",
"Go back" : "Ísť späť",
- "Filter file names …" : "Filtrovať názvy súborov ...",
"Views" : "Zobrazenia",
"Files settings" : "Nastavenia súborov",
"Your files" : "Vaše súbory",
@@ -181,6 +183,8 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Súbor sa nenašiel alebo nemáte oprávnenie na jeho zobrazenie. Požiadajte odosielateľa, aby ho sprístupnil.",
"Clipboard is not available" : "Schránka nie je prístupná",
"WebDAV URL copied to clipboard" : "WebDAV URL skopirovaná do schránky",
+ "All files" : "Všetky súbory",
+ "Personal files" : "Osobné súbory",
"Sort favorites first" : "Zoradiť od najobľúbenejších",
"Sort folders before files" : "Zoradiť adresáre pred súbormi",
"Show hidden files" : "Zobraziť skryté súbory",
@@ -220,6 +224,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",
@@ -260,8 +265,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)",
@@ -280,12 +288,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",
@@ -323,6 +331,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é",
@@ -337,10 +348,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Zoznam obľúbených súborov a priečinkov.",
"No favorites yet" : "Zatiaľ žiadne obľúbené",
"Files and folders you mark as favorite will show up here" : "Súbory a priečinky označené ako obľúbené budú zobrazené tu",
- "All files" : "Všetky súbory",
"List of your files and folders." : "Zoznam vašich súborov a priečinkov.",
"All folders" : "Všetky adresáre",
- "Personal files" : "Osobné súbory",
"List of your files and folders that are not shared." : "Zoznam vašich súborov a priečinkov, ktoré nie sú zdieľané.",
"No personal files found" : "Žiadne osobné súbory nenájdené",
"Files that are not shared will show up here." : "Súbory, ktoré nie sú zdieľané, sa tu nezobrazia.",
@@ -348,12 +357,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Zoznam nedávno upravených súborov a priečinkov.",
"No recently modified files" : "Žiadne nedávno upravené súbory",
"Files and folders you recently modified will show up here." : "Súbory a priečinky, ktoré ste nedávno upravili sa zobrazia tu",
+ "Search" : "Hľadať",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Select all" : "Vybrať všetko",
"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ť",
@@ -392,9 +401,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",
@@ -427,35 +433,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 c7959344aeb..981a47baa15 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}",
@@ -98,6 +97,7 @@
"Unknown date" : "Neznámy dátum",
"Clear filter" : "Vyčistiť filter",
"Modified" : "Upravené",
+ "Search everywhere" : "Hľadať všade",
"Type" : "Typ",
"Active filters" : "Aktívne filtre",
"Remove filter" : "Odstrániť filter",
@@ -115,7 +115,10 @@
"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"],
+ "Filter file names …" : "Filtrovať názvy súborov ...",
+ "Filter in current view" : "Filter v aktuálnom zobrazení",
+ "Search globally" : "Hľadať globálne",
"{usedQuotaByte} used" : "{usedQuotaByte} použitých",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{relative}% used" : "{relative}% použitých",
@@ -170,7 +173,6 @@
"No files in here" : "Nie sú tu žiadne súbory",
"Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte dáta so svojimi zariadeniami!",
"Go back" : "Ísť späť",
- "Filter file names …" : "Filtrovať názvy súborov ...",
"Views" : "Zobrazenia",
"Files settings" : "Nastavenia súborov",
"Your files" : "Vaše súbory",
@@ -179,6 +181,8 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Súbor sa nenašiel alebo nemáte oprávnenie na jeho zobrazenie. Požiadajte odosielateľa, aby ho sprístupnil.",
"Clipboard is not available" : "Schránka nie je prístupná",
"WebDAV URL copied to clipboard" : "WebDAV URL skopirovaná do schránky",
+ "All files" : "Všetky súbory",
+ "Personal files" : "Osobné súbory",
"Sort favorites first" : "Zoradiť od najobľúbenejších",
"Sort folders before files" : "Zoradiť adresáre pred súbormi",
"Show hidden files" : "Zobraziť skryté súbory",
@@ -218,6 +222,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",
@@ -258,8 +263,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)",
@@ -278,12 +286,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",
@@ -321,6 +329,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é",
@@ -335,10 +346,8 @@
"List of favorite files and folders." : "Zoznam obľúbených súborov a priečinkov.",
"No favorites yet" : "Zatiaľ žiadne obľúbené",
"Files and folders you mark as favorite will show up here" : "Súbory a priečinky označené ako obľúbené budú zobrazené tu",
- "All files" : "Všetky súbory",
"List of your files and folders." : "Zoznam vašich súborov a priečinkov.",
"All folders" : "Všetky adresáre",
- "Personal files" : "Osobné súbory",
"List of your files and folders that are not shared." : "Zoznam vašich súborov a priečinkov, ktoré nie sú zdieľané.",
"No personal files found" : "Žiadne osobné súbory nenájdené",
"Files that are not shared will show up here." : "Súbory, ktoré nie sú zdieľané, sa tu nezobrazia.",
@@ -346,12 +355,12 @@
"List of recently modified files and folders." : "Zoznam nedávno upravených súborov a priečinkov.",
"No recently modified files" : "Žiadne nedávno upravené súbory",
"Files and folders you recently modified will show up here." : "Súbory a priečinky, ktoré ste nedávno upravili sa zobrazia tu",
+ "Search" : "Hľadať",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Select all" : "Vybrať všetko",
"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ť",
@@ -390,9 +399,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",
@@ -425,35 +431,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 8d0f4ad1972..f333c359ae8 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"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}",
@@ -102,6 +101,7 @@ OC.L10N.register(
"Unknown date" : "Neznani datum",
"Clear filter" : "Počisti filter",
"Modified" : "Spremenjeno",
+ "Search everywhere" : "Išči povsod",
"Type" : "Vrsta",
"Active filters" : "Dejavni filtri",
"Remove filter" : "Odstrani filter",
@@ -119,7 +119,9 @@ OC.L10N.register(
"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",
+ "Filter file names …" : "Filtriraj imena datotek...",
+ "Filter in current view" : "Filtrirajte trenutni pogled",
+ "Search globally" : "Splošno iskanje",
"{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}",
"{used} of {quota} used" : "V uporabi je {used} od {quota}",
"{relative}% used" : "Zasedeno {relative} %",
@@ -174,7 +176,6 @@ 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",
@@ -183,6 +184,8 @@ OC.L10N.register(
"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",
+ "All files" : "Vse datoteke",
+ "Personal files" : "Osebne datoteke",
"Sort favorites first" : "Razvrsti najprej priljubljene",
"Sort folders before files" : "Razvrsti mape pred datotekami",
"Show hidden files" : "Pokaži skrite datoteke",
@@ -262,8 +265,11 @@ OC.L10N.register(
"_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)",
@@ -282,12 +288,12 @@ OC.L10N.register(
"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",
@@ -325,6 +331,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",
@@ -340,10 +349,8 @@ OC.L10N.register(
"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.",
@@ -351,12 +358,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
"No recently modified files" : "Ni nedavno spremenjenih datotek",
"Files and folders you recently modified will show up here." : "Nedavno spremenjene datoteke ali mape, bodo zbrane na tem mestu.",
+ "Search" : "Poišči",
"No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
"Select all" : "izberi vse",
"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",
@@ -395,9 +402,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",
@@ -430,32 +434,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",
- "You don't have permission to upload or create files here." : "Nimate pravic za nalaganje ali ustvarjanje datotek na tem mestu.",
- "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 579b32d200f..cb2787f51a6 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -52,7 +52,6 @@
"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}",
@@ -100,6 +99,7 @@
"Unknown date" : "Neznani datum",
"Clear filter" : "Počisti filter",
"Modified" : "Spremenjeno",
+ "Search everywhere" : "Išči povsod",
"Type" : "Vrsta",
"Active filters" : "Dejavni filtri",
"Remove filter" : "Odstrani filter",
@@ -117,7 +117,9 @@
"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",
+ "Filter file names …" : "Filtriraj imena datotek...",
+ "Filter in current view" : "Filtrirajte trenutni pogled",
+ "Search globally" : "Splošno iskanje",
"{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}",
"{used} of {quota} used" : "V uporabi je {used} od {quota}",
"{relative}% used" : "Zasedeno {relative} %",
@@ -172,7 +174,6 @@
"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",
@@ -181,6 +182,8 @@
"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",
+ "All files" : "Vse datoteke",
+ "Personal files" : "Osebne datoteke",
"Sort favorites first" : "Razvrsti najprej priljubljene",
"Sort folders before files" : "Razvrsti mape pred datotekami",
"Show hidden files" : "Pokaži skrite datoteke",
@@ -260,8 +263,11 @@
"_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)",
@@ -280,12 +286,12 @@
"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",
@@ -323,6 +329,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",
@@ -338,10 +347,8 @@
"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.",
@@ -349,12 +356,12 @@
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
"No recently modified files" : "Ni nedavno spremenjenih datotek",
"Files and folders you recently modified will show up here." : "Nedavno spremenjene datoteke ali mape, bodo zbrane na tem mestu.",
+ "Search" : "Poišči",
"No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
"Select all" : "izberi vse",
"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",
@@ -393,9 +400,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",
@@ -428,32 +432,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",
- "You don't have permission to upload or create files here." : "Nimate pravic za nalaganje ali ustvarjanje datotek na tem mestu.",
- "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 472eed0ffb4..870474261f7 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,7 @@ 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 системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
@@ -97,16 +97,23 @@ OC.L10N.register(
"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" : "Очисти филтер",
"Modified" : "Измењен",
+ "Search everywhere" : "Претражи свуда",
"Type" : "Тип",
"Active filters" : "Активни филтери",
"Remove filter" : "Уклони филтер",
"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}” се успешно извршила",
@@ -118,7 +125,10 @@ 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}"],
+ "Filter file names …" : "Филтрирање имена фајлова…",
+ "Filter in current view" : "Филтрирај у текућем погледу",
+ "Search globally" : "Претражите глобално",
"{usedQuotaByte} used" : "{usedQuotaByte} искоришћено",
"{used} of {quota} used" : "{used} од {quota} искоришћено",
"{relative}% used" : "{relative}% искоришћено",
@@ -173,7 +183,6 @@ OC.L10N.register(
"No files in here" : "Овде нема фајлова",
"Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!",
"Go back" : "Иди назад",
- "Filter file names …" : "Филтрирање имена фајлова…",
"Views" : "Прикази",
"Files settings" : "Подешавања фајлова",
"Your files" : "Ваши фајлови",
@@ -182,9 +191,12 @@ OC.L10N.register(
"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" : "WebDAV URL је копиран у клипборд",
+ "All files" : "Сви фајлови",
+ "Personal files" : "Лични фајлови",
"Sort favorites first" : "Сортирај прво омиљене",
"Sort folders before files" : "Поређај фолдере испред фајлова",
"Show hidden files" : "Прикажи скривене фајлове",
+ "Show file type column" : "Прикажи колону са типом фајла",
"Crop image previews" : "Опсецање прегледа слика",
"Enable the grid view" : "Укључи приказ мреже",
"Enable folder tree" : "Укључи стабло фолдера",
@@ -221,6 +233,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" : "Избаци из омиљених",
@@ -261,8 +274,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)",
@@ -281,12 +297,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" : "Види у фасцикли",
@@ -324,6 +340,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,10 +358,8 @@ OC.L10N.register(
"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." : "Листа ваших фајлова и фолдера.",
"All folders" : "Сви фолдери",
- "Personal files" : "Лични фајлови",
"List of your files and folders that are not shared." : "Листа ваших фајлова и фолдера који се не деле.",
"No personal files found" : "Није пронађен ниједан лични фајл",
"Files that are not shared will show up here." : "Овде ће се појавити фајлови који се не деле.",
@@ -350,12 +367,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Листа фајлова и директоријума који су недавно измењени.",
"No recently modified files" : "Нема недавно промењених фајлова",
"Files and folders you recently modified will show up here." : "Овде ће се појавити фајлови и фолдери које сте недавно изменили.",
+ "Search" : "Претрага",
"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" : "Prikaži prikaz liste",
"Show grid view" : "Prikaži prikaz mreže",
"Close" : "Затвори",
@@ -394,9 +411,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}“ јер већ постоји",
@@ -429,35 +443,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 8d9da0774b6..9207000bb09 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,7 @@
"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 системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
@@ -95,16 +95,23 @@
"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" : "Очисти филтер",
"Modified" : "Измењен",
+ "Search everywhere" : "Претражи свуда",
"Type" : "Тип",
"Active filters" : "Активни филтери",
"Remove filter" : "Уклони филтер",
"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 +123,10 @@
"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}"],
+ "Filter file names …" : "Филтрирање имена фајлова…",
+ "Filter in current view" : "Филтрирај у текућем погледу",
+ "Search globally" : "Претражите глобално",
"{usedQuotaByte} used" : "{usedQuotaByte} искоришћено",
"{used} of {quota} used" : "{used} од {quota} искоришћено",
"{relative}% used" : "{relative}% искоришћено",
@@ -171,7 +181,6 @@
"No files in here" : "Овде нема фајлова",
"Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!",
"Go back" : "Иди назад",
- "Filter file names …" : "Филтрирање имена фајлова…",
"Views" : "Прикази",
"Files settings" : "Подешавања фајлова",
"Your files" : "Ваши фајлови",
@@ -180,9 +189,12 @@
"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" : "WebDAV URL је копиран у клипборд",
+ "All files" : "Сви фајлови",
+ "Personal files" : "Лични фајлови",
"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 +231,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" : "Избаци из омиљених",
@@ -259,8 +272,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)",
@@ -279,12 +295,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" : "Види у фасцикли",
@@ -322,6 +338,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,10 +356,8 @@
"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." : "Листа ваших фајлова и фолдера.",
"All folders" : "Сви фолдери",
- "Personal files" : "Лични фајлови",
"List of your files and folders that are not shared." : "Листа ваших фајлова и фолдера који се не деле.",
"No personal files found" : "Није пронађен ниједан лични фајл",
"Files that are not shared will show up here." : "Овде ће се појавити фајлови који се не деле.",
@@ -348,12 +365,12 @@
"List of recently modified files and folders." : "Листа фајлова и директоријума који су недавно измењени.",
"No recently modified files" : "Нема недавно промењених фајлова",
"Files and folders you recently modified will show up here." : "Овде ће се појавити фајлови и фолдери које сте недавно изменили.",
+ "Search" : "Претрага",
"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" : "Prikaži prikaz liste",
"Show grid view" : "Prikaži prikaz mreže",
"Close" : "Затвори",
@@ -392,9 +409,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}“ јер већ постоји",
@@ -427,35 +441,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 2847bc373c7..724e12d2e49 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}",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Ändrad",
+ "Search everywhere" : "Sök överallt",
"Type" : "Typ",
"Active filters" : "Aktiva filter",
"Remove filter" : "Ta bort filter",
"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",
@@ -119,7 +125,14 @@ 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"],
+ "Search globally by filename …" : "Sök globalt efter filnamn …",
+ "Search here by filename …" : "Sök här efter filnamn …",
+ "Filter file names …" : "Filtrera filnamn …",
+ "Search scope options" : "Alternativ för sökomfång",
+ "Filter in current view" : "Filtrera i aktuell vy",
+ "Search from this location" : "Sök från den här platsen",
+ "Search globally" : "Sök globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} använt",
"{used} of {quota} used" : "{used} av {quota} använt",
"{relative}% used" : "{relative}% använt",
@@ -174,18 +187,22 @@ OC.L10N.register(
"No files in here" : "Inga filer kunde hittas",
"Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!",
"Go back" : "Gå tillbaks",
- "Filter file names …" : "Filtrera filnamn …",
"Views" : "Vyer",
"Files settings" : "Filinställningar",
"Your files" : "Dina filer",
"Open in files" : "Öppna i filer",
"File cannot be accessed" : "Det går inte att komma åt filen",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen kunde inte hittas eller så har du inte behörighet att visa den. Be avsändaren att dela den.",
+ "No search results for “{query}”" : "Inget sökresultat för “{query}”",
+ "Search for files" : "Sök efter filer",
"Clipboard is not available" : "Urklipp är inte tillgängligt",
"WebDAV URL copied to clipboard" : "WebDAV URL kopierad till urklipp",
+ "All files" : "Alla filer",
+ "Personal files" : "Personliga filer",
"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",
@@ -222,6 +239,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",
@@ -262,8 +280,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)",
@@ -282,12 +303,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",
@@ -325,6 +346,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",
@@ -340,10 +364,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Lista över favoritfiler och mappar.",
"No favorites yet" : "Inga favoriter ännu",
"Files and folders you mark as favorite will show up here" : "Filer och mappar markerade som favoriter kommer att visas här",
- "All files" : "Alla filer",
"List of your files and folders." : "Lista över dina filer och mappar.",
"All folders" : "Alla mappar",
- "Personal files" : "Personliga filer",
"List of your files and folders that are not shared." : "Lista över dina filer och mappar som inte delas.",
"No personal files found" : "Inga personliga filer hittades",
"Files that are not shared will show up here." : "Filer som inte delas kommer att visas här.",
@@ -351,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Lista över nyligen ändrade filer och mappar.",
"No recently modified files" : "Inga nyligen ändrade filer",
"Files and folders you recently modified will show up here." : "Filer och mappar som du nyligen ändrat kommer att visas här.",
+ "Search" : "Sök",
+ "Search results within your files." : "Sökresultat i dina filer.",
"No entries found in this folder" : "Inget innehåll hittades i denna mapp",
"Select all" : "Välj allt",
"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",
@@ -395,9 +418,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",
@@ -430,35 +450,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 affd94daa75..6de2c3f951c 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}",
@@ -96,16 +95,23 @@
"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",
"Modified" : "Ändrad",
+ "Search everywhere" : "Sök överallt",
"Type" : "Typ",
"Active filters" : "Aktiva filter",
"Remove filter" : "Ta bort filter",
"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",
@@ -117,7 +123,14 @@
"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"],
+ "Search globally by filename …" : "Sök globalt efter filnamn …",
+ "Search here by filename …" : "Sök här efter filnamn …",
+ "Filter file names …" : "Filtrera filnamn …",
+ "Search scope options" : "Alternativ för sökomfång",
+ "Filter in current view" : "Filtrera i aktuell vy",
+ "Search from this location" : "Sök från den här platsen",
+ "Search globally" : "Sök globalt",
"{usedQuotaByte} used" : "{usedQuotaByte} använt",
"{used} of {quota} used" : "{used} av {quota} använt",
"{relative}% used" : "{relative}% använt",
@@ -172,18 +185,22 @@
"No files in here" : "Inga filer kunde hittas",
"Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!",
"Go back" : "Gå tillbaks",
- "Filter file names …" : "Filtrera filnamn …",
"Views" : "Vyer",
"Files settings" : "Filinställningar",
"Your files" : "Dina filer",
"Open in files" : "Öppna i filer",
"File cannot be accessed" : "Det går inte att komma åt filen",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Filen kunde inte hittas eller så har du inte behörighet att visa den. Be avsändaren att dela den.",
+ "No search results for “{query}”" : "Inget sökresultat för “{query}”",
+ "Search for files" : "Sök efter filer",
"Clipboard is not available" : "Urklipp är inte tillgängligt",
"WebDAV URL copied to clipboard" : "WebDAV URL kopierad till urklipp",
+ "All files" : "Alla filer",
+ "Personal files" : "Personliga filer",
"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",
@@ -220,6 +237,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",
@@ -260,8 +278,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)",
@@ -280,12 +301,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",
@@ -323,6 +344,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",
@@ -338,10 +362,8 @@
"List of favorite files and folders." : "Lista över favoritfiler och mappar.",
"No favorites yet" : "Inga favoriter ännu",
"Files and folders you mark as favorite will show up here" : "Filer och mappar markerade som favoriter kommer att visas här",
- "All files" : "Alla filer",
"List of your files and folders." : "Lista över dina filer och mappar.",
"All folders" : "Alla mappar",
- "Personal files" : "Personliga filer",
"List of your files and folders that are not shared." : "Lista över dina filer och mappar som inte delas.",
"No personal files found" : "Inga personliga filer hittades",
"Files that are not shared will show up here." : "Filer som inte delas kommer att visas här.",
@@ -349,12 +371,13 @@
"List of recently modified files and folders." : "Lista över nyligen ändrade filer och mappar.",
"No recently modified files" : "Inga nyligen ändrade filer",
"Files and folders you recently modified will show up here." : "Filer och mappar som du nyligen ändrat kommer att visas här.",
+ "Search" : "Sök",
+ "Search results within your files." : "Sökresultat i dina filer.",
"No entries found in this folder" : "Inget innehåll hittades i denna mapp",
"Select all" : "Välj allt",
"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",
@@ -393,9 +416,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",
@@ -428,35 +448,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..5e0066eecda
--- /dev/null
+++ b/apps/files/l10n/sw.js
@@ -0,0 +1,475 @@
+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",
+ "Search everywhere" : "Tafuta kila mahali",
+ "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.",
+ "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"],
+ "Search globally by filename …" : "Tafuta kimataifa kwa jina la faili",
+ "Search here by filename …" : "Tafuta hapa kwa jina la faili",
+ "Filter file names …" : "Chuja majina ya faili...",
+ "Search scope options" : "Chaguo za upeo wa utafutaji",
+ "Filter in current view" : "Chuja katika mwonekano wa sasa",
+ "Search from this location" : "Tafuta tangu eneo hili",
+ "Search globally" : "Tafuta kimataifa",
+ "{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!",
+ "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",
+ "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.",
+ "No search results for “{query}”" : "Hakuna matokeo ya utafutaji kwa {query}",
+ "Search for files" : "Tafuta faili",
+ "Clipboard is not available" : "Ubao wa kunakili haupatikani",
+ "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili",
+ "Default view" : "Mwonekano chaguomsingi",
+ "All files" : "Faili zote",
+ "Personal files" : "Faili binafsi",
+ "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",
+ "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.",
+ "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",
+ "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",
+ "Unable to change the favorite state of the file" : "Haiwezi kubadilisha hali ya faili inayopendwa",
+ "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}\" ...",
+ "Destination is not a folder" : " Lengwa si folda",
+ "This file/folder is already in that directory" : "Faili/folda hii tayari iko kwenye saraka hiyo",
+ "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 {year} huu",
+ "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",
+ "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",
+ "List of your files and folders." : "Orodha ya faili na vikasha vyako",
+ "All folders" : "Vikasha vyote",
+ "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",
+ "Search" : "Tafuta",
+ "Search results within your files." : "Tafuta matokeo katika faili zako",
+ "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..1ffe95322fe
--- /dev/null
+++ b/apps/files/l10n/sw.json
@@ -0,0 +1,473 @@
+{ "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",
+ "Search everywhere" : "Tafuta kila mahali",
+ "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.",
+ "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"],
+ "Search globally by filename …" : "Tafuta kimataifa kwa jina la faili",
+ "Search here by filename …" : "Tafuta hapa kwa jina la faili",
+ "Filter file names …" : "Chuja majina ya faili...",
+ "Search scope options" : "Chaguo za upeo wa utafutaji",
+ "Filter in current view" : "Chuja katika mwonekano wa sasa",
+ "Search from this location" : "Tafuta tangu eneo hili",
+ "Search globally" : "Tafuta kimataifa",
+ "{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!",
+ "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",
+ "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.",
+ "No search results for “{query}”" : "Hakuna matokeo ya utafutaji kwa {query}",
+ "Search for files" : "Tafuta faili",
+ "Clipboard is not available" : "Ubao wa kunakili haupatikani",
+ "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili",
+ "Default view" : "Mwonekano chaguomsingi",
+ "All files" : "Faili zote",
+ "Personal files" : "Faili binafsi",
+ "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",
+ "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.",
+ "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",
+ "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",
+ "Unable to change the favorite state of the file" : "Haiwezi kubadilisha hali ya faili inayopendwa",
+ "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}\" ...",
+ "Destination is not a folder" : " Lengwa si folda",
+ "This file/folder is already in that directory" : "Faili/folda hii tayari iko kwenye saraka hiyo",
+ "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 {year} huu",
+ "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",
+ "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",
+ "List of your files and folders." : "Orodha ya faili na vikasha vyako",
+ "All folders" : "Vikasha vyote",
+ "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",
+ "Search" : "Tafuta",
+ "Search results within your files." : "Tafuta matokeo katika faili zako",
+ "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 c6bef3b89d3..2dfedd93723 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}",
@@ -65,11 +64,13 @@ OC.L10N.register(
"Folder" : "โฟลเดอร์",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Modified" : "แก้ไขเมื่อ",
+ "Search everywhere" : "ค้นหาในทุกที่",
"Type" : "ประเภท",
"Name" : "ชื่อ",
"Size" : "ขนาด",
"Actions" : "การกระทำ",
"File not found" : "ไม่พบไฟล์",
+ "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"],
"{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}",
"{used} of {quota} used" : "ใช้ไป {used} จาก {quota}",
"{relative}% used" : "ใช้ไป {relative}%",
@@ -100,6 +101,8 @@ OC.L10N.register(
"Go back" : "กลับไป",
"Files settings" : "การตั้งค่าไฟล์",
"Clipboard is not available" : "คลิปบอร์ดไม่พร้อมใช้งาน",
+ "All files" : "ไฟล์ทั้งหมด",
+ "Personal files" : "ไฟล์ส่วนตัว",
"Show hidden files" : "แสดงไฟล์ที่ซ่อนอยู่",
"Crop image previews" : "ครอปตัดรูปภาพตัวอย่าง",
"Additional settings" : "การตั้งค่าเพิ่มเติม",
@@ -128,6 +131,7 @@ OC.L10N.register(
"Delete folders" : "ลบโฟลเดอร์",
"Delete" : "ลบ",
"Cancel" : "ยกเลิก",
+ "Download" : "ดาวน์โหลด",
"Copy to {target}" : "คัดลอกไปยัง {target}",
"Copy" : "คัดลอก",
"Move to {target}" : "ย้ายไปยัง {target}",
@@ -145,6 +149,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" : "พื้นที่จัดเก็บข้อมูลไม่สามารถใช้งานได้ชั่วคราว",
@@ -152,15 +159,13 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n โฟลเดอร์"],
"No favorites yet" : "ยังไม่มีรายการโปรด",
"Files and folders you mark as favorite will show up here" : "ไฟล์และโฟลเดอร์ที่คุณระบุเป็นรายการโปรดจะแสดงที่นี่",
- "All files" : "ไฟล์ทั้งหมด",
- "Personal files" : "ไฟล์ส่วนตัว",
"Recent" : "ล่าสุด",
+ "Search" : "ค้นหา",
"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" : "ปิด",
@@ -198,9 +203,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}\" เพราะมันมีอยู่แล้ว",
@@ -233,14 +235,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 08b39c447ec..91f139413cc 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}",
@@ -63,11 +62,13 @@
"Folder" : "โฟลเดอร์",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Modified" : "แก้ไขเมื่อ",
+ "Search everywhere" : "ค้นหาในทุกที่",
"Type" : "ประเภท",
"Name" : "ชื่อ",
"Size" : "ขนาด",
"Actions" : "การกระทำ",
"File not found" : "ไม่พบไฟล์",
+ "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"],
"{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}",
"{used} of {quota} used" : "ใช้ไป {used} จาก {quota}",
"{relative}% used" : "ใช้ไป {relative}%",
@@ -98,6 +99,8 @@
"Go back" : "กลับไป",
"Files settings" : "การตั้งค่าไฟล์",
"Clipboard is not available" : "คลิปบอร์ดไม่พร้อมใช้งาน",
+ "All files" : "ไฟล์ทั้งหมด",
+ "Personal files" : "ไฟล์ส่วนตัว",
"Show hidden files" : "แสดงไฟล์ที่ซ่อนอยู่",
"Crop image previews" : "ครอปตัดรูปภาพตัวอย่าง",
"Additional settings" : "การตั้งค่าเพิ่มเติม",
@@ -126,6 +129,7 @@
"Delete folders" : "ลบโฟลเดอร์",
"Delete" : "ลบ",
"Cancel" : "ยกเลิก",
+ "Download" : "ดาวน์โหลด",
"Copy to {target}" : "คัดลอกไปยัง {target}",
"Copy" : "คัดลอก",
"Move to {target}" : "ย้ายไปยัง {target}",
@@ -143,6 +147,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" : "พื้นที่จัดเก็บข้อมูลไม่สามารถใช้งานได้ชั่วคราว",
@@ -150,15 +157,13 @@
"_%n folder_::_%n folders_" : ["%n โฟลเดอร์"],
"No favorites yet" : "ยังไม่มีรายการโปรด",
"Files and folders you mark as favorite will show up here" : "ไฟล์และโฟลเดอร์ที่คุณระบุเป็นรายการโปรดจะแสดงที่นี่",
- "All files" : "ไฟล์ทั้งหมด",
- "Personal files" : "ไฟล์ส่วนตัว",
"Recent" : "ล่าสุด",
+ "Search" : "ค้นหา",
"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" : "ปิด",
@@ -196,9 +201,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}\" เพราะมันมีอยู่แล้ว",
@@ -231,14 +233,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 caa474b97b0..992b85768a4 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ş",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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",
"Modified" : "Değiştirilme",
+ "Search everywhere" : "Her yerde ara",
"Type" : "Tür",
"Active filters" : "Etkin süzgeçler",
"Remove filter" : "Süzgeci kaldır",
"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ı",
@@ -117,7 +125,14 @@ 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ş"],
+ "Search globally by filename …" : "Dosya adına göre genel ara…",
+ "Search here by filename …" : "Dosya adına göre burada ara…",
+ "Filter file names …" : "Dosya adlarını süz…",
+ "Search scope options" : "Arama kapsamı seçenekleri",
+ "Filter in current view" : "Geçerli görünümde süz",
+ "Search from this location" : "Bu konumdan ara",
+ "Search globally" : "Genel arama",
"{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış",
"{used} of {quota} used" : "{used} / {quota} kullanılmış",
"{relative}% used" : "%{relative} kullanılmış",
@@ -172,18 +187,22 @@ OC.L10N.register(
"No files in here" : "Burada herhangi bir dosya yok",
"Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!",
"Go back" : "Geri dön",
- "Filter file names …" : "Dosya adlarını süz…",
"Views" : "Görünümler",
"Files settings" : "Dosyalar ayarları",
"Your files" : "Dosyalarınız",
"Open in files" : "Dosyalar uygulamasında aç",
"File cannot be accessed" : "Dosyaya erişilemedi",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Dosya bulunamadı ya da görüntüleme izniniz olmayabilir. Gönderenden paylaşmasını isteyin",
+ "No search results for “{query}”" : "“{query}” için bir arama sonucu bulunamadı",
+ "Search for files" : "Dosya ara",
"Clipboard is not available" : "Pano kullanılamıyor",
"WebDAV URL copied to clipboard" : "WebDAV adresi panoya kopyalandı",
+ "All files" : "Tüm dosyalar",
+ "Personal files" : "Kişisel dosyalar",
"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ç",
@@ -192,7 +211,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.",
@@ -216,10 +235,11 @@ OC.L10N.register(
"Navigate to the file on the right (in grid mode)" : "Sağdaki dosyaya gider (ızgara görünümünde)",
"View" : "Görüntüle",
"Toggle the grid view" : "Izgara görünümünü açar ya da kapatır",
- "Open the sidebar for a file" : "Bir dosyanın yan çubuğunu açar",
+ "Open the sidebar for a file" : "Bir dosyanın kenar çubuğunu açar",
"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",
@@ -260,8 +280,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ı)",
@@ -280,12 +303,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",
@@ -323,12 +346,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.",
@@ -337,10 +364,8 @@ OC.L10N.register(
"List of favorite files and folders." : "Sık kullanılan dosya ve klasör listesi.",
"No favorites yet" : "Henüz sık kullanılan bir öge yok",
"Files and folders you mark as favorite will show up here" : "Sık kullanılanlara eklediğiniz dosya ve klasörler burada görüntülenir",
- "All files" : "Tüm dosyalar",
"List of your files and folders." : "Dosya ve klasörlerinizin listesi",
"All folders" : "Tüm klasörler",
- "Personal files" : "Kişisel dosyalar",
"List of your files and folders that are not shared." : "Paylaşılmayan dosya ve klasörlerinizin listesi.",
"No personal files found" : "Herhangi bir kişisel dosya bulunamadı",
"Files that are not shared will show up here." : "Paylaşımayan dosyalar burada görüntülenir.",
@@ -348,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "Son değiştirilen dosya ve klasörlerin listesi.",
"No recently modified files" : "Yakınlarda değiştirilmiş bir dosya yok",
"Files and folders you recently modified will show up here." : "Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir.",
+ "Search" : "Ara",
+ "Search results within your files." : "Dosyalarınızda arama sonuçları.",
"No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı",
"Select all" : "Tümünü seç",
"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",
@@ -392,9 +418,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ı",
@@ -427,35 +450,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 61e693c225d..e7f70a81b00 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ş",
@@ -94,16 +95,23 @@
"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",
"Modified" : "Değiştirilme",
+ "Search everywhere" : "Her yerde ara",
"Type" : "Tür",
"Active filters" : "Etkin süzgeçler",
"Remove filter" : "Süzgeci kaldır",
"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ı",
@@ -115,7 +123,14 @@
"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ş"],
+ "Search globally by filename …" : "Dosya adına göre genel ara…",
+ "Search here by filename …" : "Dosya adına göre burada ara…",
+ "Filter file names …" : "Dosya adlarını süz…",
+ "Search scope options" : "Arama kapsamı seçenekleri",
+ "Filter in current view" : "Geçerli görünümde süz",
+ "Search from this location" : "Bu konumdan ara",
+ "Search globally" : "Genel arama",
"{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış",
"{used} of {quota} used" : "{used} / {quota} kullanılmış",
"{relative}% used" : "%{relative} kullanılmış",
@@ -170,18 +185,22 @@
"No files in here" : "Burada herhangi bir dosya yok",
"Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!",
"Go back" : "Geri dön",
- "Filter file names …" : "Dosya adlarını süz…",
"Views" : "Görünümler",
"Files settings" : "Dosyalar ayarları",
"Your files" : "Dosyalarınız",
"Open in files" : "Dosyalar uygulamasında aç",
"File cannot be accessed" : "Dosyaya erişilemedi",
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Dosya bulunamadı ya da görüntüleme izniniz olmayabilir. Gönderenden paylaşmasını isteyin",
+ "No search results for “{query}”" : "“{query}” için bir arama sonucu bulunamadı",
+ "Search for files" : "Dosya ara",
"Clipboard is not available" : "Pano kullanılamıyor",
"WebDAV URL copied to clipboard" : "WebDAV adresi panoya kopyalandı",
+ "All files" : "Tüm dosyalar",
+ "Personal files" : "Kişisel dosyalar",
"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ç",
@@ -190,7 +209,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.",
@@ -214,10 +233,11 @@
"Navigate to the file on the right (in grid mode)" : "Sağdaki dosyaya gider (ızgara görünümünde)",
"View" : "Görüntüle",
"Toggle the grid view" : "Izgara görünümünü açar ya da kapatır",
- "Open the sidebar for a file" : "Bir dosyanın yan çubuğunu açar",
+ "Open the sidebar for a file" : "Bir dosyanın kenar çubuğunu açar",
"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",
@@ -258,8 +278,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ı)",
@@ -278,12 +301,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",
@@ -321,12 +344,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.",
@@ -335,10 +362,8 @@
"List of favorite files and folders." : "Sık kullanılan dosya ve klasör listesi.",
"No favorites yet" : "Henüz sık kullanılan bir öge yok",
"Files and folders you mark as favorite will show up here" : "Sık kullanılanlara eklediğiniz dosya ve klasörler burada görüntülenir",
- "All files" : "Tüm dosyalar",
"List of your files and folders." : "Dosya ve klasörlerinizin listesi",
"All folders" : "Tüm klasörler",
- "Personal files" : "Kişisel dosyalar",
"List of your files and folders that are not shared." : "Paylaşılmayan dosya ve klasörlerinizin listesi.",
"No personal files found" : "Herhangi bir kişisel dosya bulunamadı",
"Files that are not shared will show up here." : "Paylaşımayan dosyalar burada görüntülenir.",
@@ -346,12 +371,13 @@
"List of recently modified files and folders." : "Son değiştirilen dosya ve klasörlerin listesi.",
"No recently modified files" : "Yakınlarda değiştirilmiş bir dosya yok",
"Files and folders you recently modified will show up here." : "Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir.",
+ "Search" : "Ara",
+ "Search results within your files." : "Dosyalarınızda arama sonuçları.",
"No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı",
"Select all" : "Tümünü seç",
"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",
@@ -390,9 +416,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ı",
@@ -425,35 +448,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 aea2933b5e4..5fd4fb38022 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} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -90,6 +89,7 @@ OC.L10N.register(
"Pending" : "كۈتۈۋاتىدۇ",
"Clear filter" : "سۈزگۈچنى تازىلاش",
"Modified" : "ئۆزگەرتكەن",
+ "Search everywhere" : "ھەممە يەردىن ئىزدەڭ",
"Type" : "تىپ",
"Active filters" : "ئاكتىپ سۈزگۈچ",
"Remove filter" : "سۈزگۈچنى ئۆچۈرۈڭ",
@@ -105,7 +105,8 @@ 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} تاللانغان",
+ "Filter in current view" : "نۆۋەتتىكى كۆرۈنۈشتە سۈزۈڭ",
+ "Search globally" : "دۇنيا مىقياسىدا ئىزدەڭ",
"{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن",
"{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن",
"{relative}% used" : "{relative}% ئىشلىتىلگەن",
@@ -157,6 +158,8 @@ OC.L10N.register(
"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" : "WebDAV URL چاپلاش تاختىسىغا كۆچۈرۈلدى",
+ "All files" : "بارلىق ھۆججەتلەر",
+ "Personal files" : "شەخسىي ھۆججەتلەر",
"Sort favorites first" : "ياقتۇرىدىغانلارنى رەتلەڭ",
"Sort folders before files" : "ھۆججەتلەرنى ھۆججەتتىن بۇرۇن تەرتىپلەڭ",
"Show hidden files" : "يوشۇرۇن ھۆججەتلەرنى كۆرسەت",
@@ -199,6 +202,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" : "ھۆججەت ياكى ھۆججەت قىسقۇچنى ئۆزىڭىزگە ياكى تارماق قىسقۇچقا يۆتكىيەلمەيسىز",
@@ -219,9 +223,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" : "قىسقۇچتا كۆرۈش",
@@ -259,6 +263,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" : "ساقلاش ۋاقتىنى ۋاقىتلىق ئىشلەتكىلى بولمايدۇ",
@@ -271,10 +278,8 @@ OC.L10N.register(
"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." : "ھۆججەت ۋە ھۆججەت قىسقۇچلىرىڭىزنىڭ تىزىملىكى.",
"All folders" : "بارلىق ھۆججەت قىسقۇچلار",
- "Personal files" : "شەخسىي ھۆججەتلەر",
"List of your files and folders that are not shared." : "ئورتاقلاشمىغان ھۆججەت ۋە ھۆججەت قىسقۇچلىرىڭىزنىڭ تىزىملىكى.",
"No personal files found" : "شەخسىي ھۆججەت تېپىلمىدى",
"Files that are not shared will show up here." : "ئورتاقلاشمىغان ھۆججەتلەر بۇ يەردە كۆرۈنىدۇ.",
@@ -282,12 +287,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "يېقىندا ئۆزگەرتىلگەن ھۆججەت ۋە ھۆججەت قىسقۇچلارنىڭ تىزىملىكى.",
"No recently modified files" : "يېقىندا ئۆزگەرتىلگەن ھۆججەت يوق",
"Files and folders you recently modified will show up here." : "سىز يېقىندا ئۆزگەرتكەن ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ.",
+ "Search" : "ئىزدەش",
"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" : "ياپ",
@@ -326,9 +331,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}» ھۆججەت قىسقۇچى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
@@ -357,28 +359,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 f524c4e77be..d6471b65c82 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} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -88,6 +87,7 @@
"Pending" : "كۈتۈۋاتىدۇ",
"Clear filter" : "سۈزگۈچنى تازىلاش",
"Modified" : "ئۆزگەرتكەن",
+ "Search everywhere" : "ھەممە يەردىن ئىزدەڭ",
"Type" : "تىپ",
"Active filters" : "ئاكتىپ سۈزگۈچ",
"Remove filter" : "سۈزگۈچنى ئۆچۈرۈڭ",
@@ -103,7 +103,8 @@
"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} تاللانغان",
+ "Filter in current view" : "نۆۋەتتىكى كۆرۈنۈشتە سۈزۈڭ",
+ "Search globally" : "دۇنيا مىقياسىدا ئىزدەڭ",
"{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن",
"{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن",
"{relative}% used" : "{relative}% ئىشلىتىلگەن",
@@ -155,6 +156,8 @@
"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" : "WebDAV URL چاپلاش تاختىسىغا كۆچۈرۈلدى",
+ "All files" : "بارلىق ھۆججەتلەر",
+ "Personal files" : "شەخسىي ھۆججەتلەر",
"Sort favorites first" : "ياقتۇرىدىغانلارنى رەتلەڭ",
"Sort folders before files" : "ھۆججەتلەرنى ھۆججەتتىن بۇرۇن تەرتىپلەڭ",
"Show hidden files" : "يوشۇرۇن ھۆججەتلەرنى كۆرسەت",
@@ -197,6 +200,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" : "ھۆججەت ياكى ھۆججەت قىسقۇچنى ئۆزىڭىزگە ياكى تارماق قىسقۇچقا يۆتكىيەلمەيسىز",
@@ -217,9 +221,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" : "قىسقۇچتا كۆرۈش",
@@ -257,6 +261,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" : "ساقلاش ۋاقتىنى ۋاقىتلىق ئىشلەتكىلى بولمايدۇ",
@@ -269,10 +276,8 @@
"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." : "ھۆججەت ۋە ھۆججەت قىسقۇچلىرىڭىزنىڭ تىزىملىكى.",
"All folders" : "بارلىق ھۆججەت قىسقۇچلار",
- "Personal files" : "شەخسىي ھۆججەتلەر",
"List of your files and folders that are not shared." : "ئورتاقلاشمىغان ھۆججەت ۋە ھۆججەت قىسقۇچلىرىڭىزنىڭ تىزىملىكى.",
"No personal files found" : "شەخسىي ھۆججەت تېپىلمىدى",
"Files that are not shared will show up here." : "ئورتاقلاشمىغان ھۆججەتلەر بۇ يەردە كۆرۈنىدۇ.",
@@ -280,12 +285,12 @@
"List of recently modified files and folders." : "يېقىندا ئۆزگەرتىلگەن ھۆججەت ۋە ھۆججەت قىسقۇچلارنىڭ تىزىملىكى.",
"No recently modified files" : "يېقىندا ئۆزگەرتىلگەن ھۆججەت يوق",
"Files and folders you recently modified will show up here." : "سىز يېقىندا ئۆزگەرتكەن ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ.",
+ "Search" : "ئىزدەش",
"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" : "ياپ",
@@ -324,9 +329,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}» ھۆججەت قىسقۇچى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
@@ -355,28 +357,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 bfb02d10ecc..27f07b54c16 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" : "Керування файлами",
@@ -96,16 +97,23 @@ OC.L10N.register(
"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" : "Очистити фільтр",
"Modified" : "Змінено",
+ "Search everywhere" : "Шукати всюди",
"Type" : "Тип",
"Active filters" : "Активні фільтри",
"Remove filter" : "Вилучити фільтр",
"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}\" успішно виконано",
@@ -117,7 +125,10 @@ 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} "],
+ "Filter file names …" : "Фільтр за іменем файлу ...",
+ "Filter in current view" : "Фільтр поточного подання",
+ "Search globally" : "Шукати всюди",
"{usedQuotaByte} used" : "{usedQuotaByte} використано",
"{used} of {quota} used" : "Використано {used} із {quota}",
"{relative}% used" : "{relative}% використано",
@@ -172,7 +183,6 @@ OC.L10N.register(
"No files in here" : "Тут немає файлів",
"Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйтеся з вашими пристроями!",
"Go back" : "Повернутися назад",
- "Filter file names …" : "Фільтр за іменем файлу ...",
"Views" : "Подання",
"Files settings" : "Налаштування",
"Your files" : "Ваші файли",
@@ -181,9 +191,12 @@ OC.L10N.register(
"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" : "Послиання WebDAV скопійовано до буферу обміну",
+ "All files" : "Усі файли",
+ "Personal files" : "Мої документи",
"Sort favorites first" : "Спочатку показувати із зірочкою",
"Sort folders before files" : "Показувати каталоги перед файлами",
"Show hidden files" : "Показувати приховані файли",
+ "Show file type column" : "Показувати стовпець з типом файлу",
"Crop image previews" : "Попередній перегляд перед кадруванням",
"Enable the grid view" : "Увімкнути подання сіткою",
"Enable folder tree" : "Увімкнути дерево каталогів",
@@ -220,6 +233,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" : "Прибрати зірочку",
@@ -260,8 +274,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)",
@@ -280,12 +297,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" : "Переглянути у каталозі",
@@ -323,6 +340,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" : "Сховище тимчасово недоступне",
@@ -338,10 +358,8 @@ OC.L10N.register(
"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." : "Список ваших файлів та каталогів.",
"All folders" : "Усі каталоги",
- "Personal files" : "Мої документи",
"List of your files and folders that are not shared." : "Перелік ваших файлів та каталогів, які не є у спільному доступі.",
"No personal files found" : "Мої документи не знайдено",
"Files that are not shared will show up here." : "Тут показуватимуться файли, які не є у спільному доступі.",
@@ -349,12 +367,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Список нещодавно змінених файлів та каталогів.",
"No recently modified files" : "Відсутні файли із нещодавними змінами",
"Files and folders you recently modified will show up here." : "Тут показуватимуться файли та каталоги, які було нещодавно змінено.",
+ "Search" : "Пошук",
"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" : "Закрити",
@@ -393,9 +411,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}\", оскільки каталог з таким ім'ям він вже присутній.",
@@ -428,35 +443,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 cdde9673fb9..2fe78b3a499 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" : "Керування файлами",
@@ -94,16 +95,23 @@
"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" : "Очистити фільтр",
"Modified" : "Змінено",
+ "Search everywhere" : "Шукати всюди",
"Type" : "Тип",
"Active filters" : "Активні фільтри",
"Remove filter" : "Вилучити фільтр",
"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}\" успішно виконано",
@@ -115,7 +123,10 @@
"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} "],
+ "Filter file names …" : "Фільтр за іменем файлу ...",
+ "Filter in current view" : "Фільтр поточного подання",
+ "Search globally" : "Шукати всюди",
"{usedQuotaByte} used" : "{usedQuotaByte} використано",
"{used} of {quota} used" : "Використано {used} із {quota}",
"{relative}% used" : "{relative}% використано",
@@ -170,7 +181,6 @@
"No files in here" : "Тут немає файлів",
"Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйтеся з вашими пристроями!",
"Go back" : "Повернутися назад",
- "Filter file names …" : "Фільтр за іменем файлу ...",
"Views" : "Подання",
"Files settings" : "Налаштування",
"Your files" : "Ваші файли",
@@ -179,9 +189,12 @@
"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" : "Послиання WebDAV скопійовано до буферу обміну",
+ "All files" : "Усі файли",
+ "Personal files" : "Мої документи",
"Sort favorites first" : "Спочатку показувати із зірочкою",
"Sort folders before files" : "Показувати каталоги перед файлами",
"Show hidden files" : "Показувати приховані файли",
+ "Show file type column" : "Показувати стовпець з типом файлу",
"Crop image previews" : "Попередній перегляд перед кадруванням",
"Enable the grid view" : "Увімкнути подання сіткою",
"Enable folder tree" : "Увімкнути дерево каталогів",
@@ -218,6 +231,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" : "Прибрати зірочку",
@@ -258,8 +272,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)",
@@ -278,12 +295,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" : "Переглянути у каталозі",
@@ -321,6 +338,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" : "Сховище тимчасово недоступне",
@@ -336,10 +356,8 @@
"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." : "Список ваших файлів та каталогів.",
"All folders" : "Усі каталоги",
- "Personal files" : "Мої документи",
"List of your files and folders that are not shared." : "Перелік ваших файлів та каталогів, які не є у спільному доступі.",
"No personal files found" : "Мої документи не знайдено",
"Files that are not shared will show up here." : "Тут показуватимуться файли, які не є у спільному доступі.",
@@ -347,12 +365,12 @@
"List of recently modified files and folders." : "Список нещодавно змінених файлів та каталогів.",
"No recently modified files" : "Відсутні файли із нещодавними змінами",
"Files and folders you recently modified will show up here." : "Тут показуватимуться файли та каталоги, які було нещодавно змінено.",
+ "Search" : "Пошук",
"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" : "Закрити",
@@ -391,9 +409,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}\", оскільки каталог з таким ім'ям він вже присутній.",
@@ -426,35 +441,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 a8e39aa2527..b95078072e9 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} ",
@@ -91,6 +90,7 @@ OC.L10N.register(
"Pending" : "Đang chờ",
"Clear filter" : "Xóa bộ lọc",
"Modified" : "Đã thay đổi vào:",
+ "Search everywhere" : "Tìm ở bất kì đâu",
"Type" : "Loại",
"Active filters" : "Bộ lọc đang hoạt động",
"Remove filter" : "Xoá bộ lọc",
@@ -106,7 +106,8 @@ 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} ",
+ "Filter in current view" : "Lọc kết quả tìm kiếm hiện tại",
+ "Search globally" : "Tìm kiếm trên toàn cầu",
"{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng",
"{used} of {quota} used" : "{used} trong {quota} đã được sử dụng",
"{relative}% used" : "đã sử dụng {relative}%",
@@ -158,6 +159,7 @@ OC.L10N.register(
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Không thể tìm thấy tệp hoặc bạn không có quyền xem tệp. Hãy yêu cầu người gửi cấp quyền truy cập.",
"Clipboard is not available" : "Bộ nhớ tạm không có sẵn",
"WebDAV URL copied to clipboard" : "Đã sao chép URL WebDAV vào bộ nhớ tạm",
+ "All files" : "Tất cả tệp tin",
"Sort favorites first" : "Sắp xếp mục yêu thích trước",
"Sort folders before files" : "Sắp xếp thư mục trước tập tin",
"Show hidden files" : "Hiển thị các tệp ẩn",
@@ -200,8 +202,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)",
@@ -220,9 +225,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",
@@ -255,6 +260,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",
@@ -268,7 +276,6 @@ OC.L10N.register(
"List of favorite files and folders." : "Danh sách tệp và thư mục yêu thích.",
"No favorites yet" : "Chưa có yêu thích nào",
"Files and folders you mark as favorite will show up here" : "Các tệp và thư mục mà bạn đánh dấu là yêu thích sẽ hiển thị ở đây",
- "All files" : "Tất cả tệp tin",
"List of your files and folders." : "Danh sách các tập tin và thư mục của bạn.",
"All folders" : "Tất cả tệp tin",
"List of your files and folders that are not shared." : "Danh sách tệp tin và thư mục không được chia sẻ của bạn.",
@@ -278,12 +285,12 @@ OC.L10N.register(
"List of recently modified files and folders." : "Danh sách các tập tin và thư mục được sửa đổi gần đây.",
"No recently modified files" : "Không có tập tin được sửa đổi gần đây",
"Files and folders you recently modified will show up here." : "Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây.",
+ "Search" : "Tìm kiếm",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Select all" : "Chọn tất cả",
"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",
@@ -321,9 +328,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ó",
@@ -355,31 +359,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 272a1e3eebc..83369d87c70 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} ",
@@ -89,6 +88,7 @@
"Pending" : "Đang chờ",
"Clear filter" : "Xóa bộ lọc",
"Modified" : "Đã thay đổi vào:",
+ "Search everywhere" : "Tìm ở bất kì đâu",
"Type" : "Loại",
"Active filters" : "Bộ lọc đang hoạt động",
"Remove filter" : "Xoá bộ lọc",
@@ -104,7 +104,8 @@
"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} ",
+ "Filter in current view" : "Lọc kết quả tìm kiếm hiện tại",
+ "Search globally" : "Tìm kiếm trên toàn cầu",
"{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng",
"{used} of {quota} used" : "{used} trong {quota} đã được sử dụng",
"{relative}% used" : "đã sử dụng {relative}%",
@@ -156,6 +157,7 @@
"The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Không thể tìm thấy tệp hoặc bạn không có quyền xem tệp. Hãy yêu cầu người gửi cấp quyền truy cập.",
"Clipboard is not available" : "Bộ nhớ tạm không có sẵn",
"WebDAV URL copied to clipboard" : "Đã sao chép URL WebDAV vào bộ nhớ tạm",
+ "All files" : "Tất cả tệp tin",
"Sort favorites first" : "Sắp xếp mục yêu thích trước",
"Sort folders before files" : "Sắp xếp thư mục trước tập tin",
"Show hidden files" : "Hiển thị các tệp ẩn",
@@ -198,8 +200,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)",
@@ -218,9 +223,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",
@@ -253,6 +258,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",
@@ -266,7 +274,6 @@
"List of favorite files and folders." : "Danh sách tệp và thư mục yêu thích.",
"No favorites yet" : "Chưa có yêu thích nào",
"Files and folders you mark as favorite will show up here" : "Các tệp và thư mục mà bạn đánh dấu là yêu thích sẽ hiển thị ở đây",
- "All files" : "Tất cả tệp tin",
"List of your files and folders." : "Danh sách các tập tin và thư mục của bạn.",
"All folders" : "Tất cả tệp tin",
"List of your files and folders that are not shared." : "Danh sách tệp tin và thư mục không được chia sẻ của bạn.",
@@ -276,12 +283,12 @@
"List of recently modified files and folders." : "Danh sách các tập tin và thư mục được sửa đổi gần đây.",
"No recently modified files" : "Không có tập tin được sửa đổi gần đây",
"Files and folders you recently modified will show up here." : "Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây.",
+ "Search" : "Tìm kiếm",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Select all" : "Chọn tất cả",
"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",
@@ -319,9 +326,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ó",
@@ -353,31 +357,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 24c6af3046f..115c87b4f63 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} 的所有权转移",
@@ -98,31 +97,45 @@ OC.L10N.register(
"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" : "清除筛选",
"Modified" : "修改日期",
+ "Search everywhere" : "在所有位置搜索",
"Type" : "类型",
"Active filters" : "已开启的过滤器",
"Remove filter" : "移除过滤条件",
"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} 个"],
+ "Search globally by filename …" : "按文件名全局搜索…",
+ "Search here by filename …" : "按文件名搜索此处…",
+ "Filter file names …" : "筛选文件名…",
+ "Search scope options" : "搜索范围选项",
+ "Filter in current view" : "在当前视图中筛选",
+ "Search from this location" : "从此位置搜索",
+ "Search globally" : "全局搜索",
+ "{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" : "存储信息",
@@ -174,18 +187,22 @@ OC.L10N.register(
"No files in here" : "这里没有文件",
"Upload some content or sync with your devices!" : "上传一些内容或与您的设备同步!",
"Go back" : "返回",
- "Filter file names …" : "筛选文件名…",
"Views" : "视图",
"Files settings" : "文件设置",
"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." : "找不到该文件,或是您没有查看该文件的权限。请要求发送者分享它。",
+ "No search results for “{query}”" : "没有“{query}”的搜索结果",
+ "Search for files" : "搜索文件",
"Clipboard is not available" : "剪贴板不可用",
"WebDAV URL copied to clipboard" : "WebDAV 链接已复制到剪贴板",
+ "All files" : "全部文件",
+ "Personal files" : "个人文件",
"Sort favorites first" : "收藏排序优先",
"Sort folders before files" : "将文件夹排在文件前面",
"Show hidden files" : "显示隐藏文件",
+ "Show file type column" : "显示文件类型列",
"Crop image previews" : "裁剪图片预览",
"Enable the grid view" : "启用网格视图",
"Enable folder tree" : "启用文件夹树",
@@ -222,6 +239,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" : "从收藏中移除",
@@ -262,8 +280,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)",
@@ -282,12 +303,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" : "在文件夹中查看",
@@ -325,6 +346,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" : "存储空间暂时不可用",
@@ -340,10 +364,8 @@ OC.L10N.register(
"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." : "您的文件与文件件列表。",
"All folders" : "所有文件夹",
- "Personal files" : "个人文件",
"List of your files and folders that are not shared." : "尚未分享的文件与文件夹",
"No personal files found" : "找不到个人文件",
"Files that are not shared will show up here." : "尚未分享的文件会显示在此处",
@@ -351,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "最近修改的文件与文件夹列表。",
"No recently modified files" : "近期无修改文件",
"Files and folders you recently modified will show up here." : "你最近修改的文件与文件夹将会显示在此处。",
+ "Search" : "搜索",
+ "Search results within your files." : "在您的文件中搜索结果。",
"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" : "关闭",
@@ -395,9 +418,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}”,因为它已经存在",
@@ -430,35 +450,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 6fb7facb3b6..bf1a1c1cfd8 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} 的所有权转移",
@@ -96,31 +95,45 @@
"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" : "清除筛选",
"Modified" : "修改日期",
+ "Search everywhere" : "在所有位置搜索",
"Type" : "类型",
"Active filters" : "已开启的过滤器",
"Remove filter" : "移除过滤条件",
"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} 个"],
+ "Search globally by filename …" : "按文件名全局搜索…",
+ "Search here by filename …" : "按文件名搜索此处…",
+ "Filter file names …" : "筛选文件名…",
+ "Search scope options" : "搜索范围选项",
+ "Filter in current view" : "在当前视图中筛选",
+ "Search from this location" : "从此位置搜索",
+ "Search globally" : "全局搜索",
+ "{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" : "存储信息",
@@ -172,18 +185,22 @@
"No files in here" : "这里没有文件",
"Upload some content or sync with your devices!" : "上传一些内容或与您的设备同步!",
"Go back" : "返回",
- "Filter file names …" : "筛选文件名…",
"Views" : "视图",
"Files settings" : "文件设置",
"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." : "找不到该文件,或是您没有查看该文件的权限。请要求发送者分享它。",
+ "No search results for “{query}”" : "没有“{query}”的搜索结果",
+ "Search for files" : "搜索文件",
"Clipboard is not available" : "剪贴板不可用",
"WebDAV URL copied to clipboard" : "WebDAV 链接已复制到剪贴板",
+ "All files" : "全部文件",
+ "Personal files" : "个人文件",
"Sort favorites first" : "收藏排序优先",
"Sort folders before files" : "将文件夹排在文件前面",
"Show hidden files" : "显示隐藏文件",
+ "Show file type column" : "显示文件类型列",
"Crop image previews" : "裁剪图片预览",
"Enable the grid view" : "启用网格视图",
"Enable folder tree" : "启用文件夹树",
@@ -220,6 +237,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" : "从收藏中移除",
@@ -260,8 +278,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)",
@@ -280,12 +301,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" : "在文件夹中查看",
@@ -323,6 +344,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" : "存储空间暂时不可用",
@@ -338,10 +362,8 @@
"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." : "您的文件与文件件列表。",
"All folders" : "所有文件夹",
- "Personal files" : "个人文件",
"List of your files and folders that are not shared." : "尚未分享的文件与文件夹",
"No personal files found" : "找不到个人文件",
"Files that are not shared will show up here." : "尚未分享的文件会显示在此处",
@@ -349,12 +371,13 @@
"List of recently modified files and folders." : "最近修改的文件与文件夹列表。",
"No recently modified files" : "近期无修改文件",
"Files and folders you recently modified will show up here." : "你最近修改的文件与文件夹将会显示在此处。",
+ "Search" : "搜索",
+ "Search results within your files." : "在您的文件中搜索结果。",
"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" : "关闭",
@@ -393,9 +416,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}”,因为它已经存在",
@@ -428,35 +448,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 5b593dc8428..55e3720d6e0 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} 的擁有權轉移",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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" : "清空過濾器",
"Modified" : "修改時間",
+ "Search everywhere" : "到處搜尋",
"Type" : "類型",
"Active filters" : "有效的過濾器",
"Remove filter" : "移除過濾",
"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}” 批處理操作",
@@ -119,7 +125,14 @@ 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} 項"],
+ "Search globally by filename …" : "按檔案名稱全局地搜尋 …",
+ "Search here by filename …" : "按檔案名稱搜尋此處 …",
+ "Filter file names …" : "過濾檔案名稱 …",
+ "Search scope options" : "搜尋範圍選項",
+ "Filter in current view" : "目前檢視裡的篩選條件",
+ "Search from this location" : "從此位置搜尋",
+ "Search globally" : "全域搜尋",
"{usedQuotaByte} used" : "已使用 {usedQuotaByte} ",
"{used} of {quota} used" : "已使用 {quota} 當中的 {used}",
"{relative}% used" : "已使用 {relative}%",
@@ -174,18 +187,23 @@ OC.L10N.register(
"No files in here" : "沒有任何檔案",
"Upload some content or sync with your devices!" : "在您的裝置同步或上傳一些內容!",
"Go back" : "返回",
- "Filter file names …" : "過濾檔案名稱 …",
"Views" : "視圖",
"Files settings" : "檔案設定",
"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." : "找不到該檔案,或是您沒有檢視該檔案的權限。請要求寄件者分享。",
+ "No search results for “{query}”" : "沒有結果符合「{query}」",
+ "Search for files" : "搜尋檔案",
"Clipboard is not available" : "剪貼板不可用",
"WebDAV URL copied to clipboard" : "WebDAV 連結已複製到剪貼板",
+ "Default view" : "默認檢視",
+ "All files" : "所有檔案",
+ "Personal files" : "個人檔案",
"Sort favorites first" : "先排序最愛",
"Sort folders before files" : "將資料夾在檔案之前排序",
"Show hidden files" : "顯示隱藏檔案",
+ "Show file type column" : "顯示檔案類型縱列",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用網格檢視",
"Enable folder tree" : "啟用資料夾樹狀結構",
@@ -222,6 +240,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" : "從最愛中移除",
@@ -262,8 +281,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)",
@@ -282,12 +304,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" : "在資料夾中檢視",
@@ -325,6 +347,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" : "儲存空間暫時無法使用",
@@ -340,10 +365,8 @@ OC.L10N.register(
"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." : "您的檔案與資料夾清單。",
"All folders" : "所有資料夾",
- "Personal files" : "個人檔案",
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
"No personal files found" : "找不到個人檔案",
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
@@ -351,12 +374,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "最近修改的檔案和資料夾的清單。",
"No recently modified files" : "近期無修改檔案",
"Files and folders you recently modified will show up here." : "您最近修改的檔案和資料夾將顯示在此處。",
+ "Search" : "搜尋",
+ "Search results within your files." : "在您的檔案中搜尋結果",
"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" : "關閉",
@@ -395,9 +419,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}\",因為此資料夾已存在",
@@ -430,35 +451,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 927fc7dc8ef..031e144e21a 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} 的擁有權轉移",
@@ -96,16 +95,23 @@
"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" : "清空過濾器",
"Modified" : "修改時間",
+ "Search everywhere" : "到處搜尋",
"Type" : "類型",
"Active filters" : "有效的過濾器",
"Remove filter" : "移除過濾",
"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}” 批處理操作",
@@ -117,7 +123,14 @@
"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} 項"],
+ "Search globally by filename …" : "按檔案名稱全局地搜尋 …",
+ "Search here by filename …" : "按檔案名稱搜尋此處 …",
+ "Filter file names …" : "過濾檔案名稱 …",
+ "Search scope options" : "搜尋範圍選項",
+ "Filter in current view" : "目前檢視裡的篩選條件",
+ "Search from this location" : "從此位置搜尋",
+ "Search globally" : "全域搜尋",
"{usedQuotaByte} used" : "已使用 {usedQuotaByte} ",
"{used} of {quota} used" : "已使用 {quota} 當中的 {used}",
"{relative}% used" : "已使用 {relative}%",
@@ -172,18 +185,23 @@
"No files in here" : "沒有任何檔案",
"Upload some content or sync with your devices!" : "在您的裝置同步或上傳一些內容!",
"Go back" : "返回",
- "Filter file names …" : "過濾檔案名稱 …",
"Views" : "視圖",
"Files settings" : "檔案設定",
"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." : "找不到該檔案,或是您沒有檢視該檔案的權限。請要求寄件者分享。",
+ "No search results for “{query}”" : "沒有結果符合「{query}」",
+ "Search for files" : "搜尋檔案",
"Clipboard is not available" : "剪貼板不可用",
"WebDAV URL copied to clipboard" : "WebDAV 連結已複製到剪貼板",
+ "Default view" : "默認檢視",
+ "All files" : "所有檔案",
+ "Personal files" : "個人檔案",
"Sort favorites first" : "先排序最愛",
"Sort folders before files" : "將資料夾在檔案之前排序",
"Show hidden files" : "顯示隱藏檔案",
+ "Show file type column" : "顯示檔案類型縱列",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用網格檢視",
"Enable folder tree" : "啟用資料夾樹狀結構",
@@ -220,6 +238,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" : "從最愛中移除",
@@ -260,8 +279,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)",
@@ -280,12 +302,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" : "在資料夾中檢視",
@@ -323,6 +345,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" : "儲存空間暫時無法使用",
@@ -338,10 +363,8 @@
"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." : "您的檔案與資料夾清單。",
"All folders" : "所有資料夾",
- "Personal files" : "個人檔案",
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
"No personal files found" : "找不到個人檔案",
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
@@ -349,12 +372,13 @@
"List of recently modified files and folders." : "最近修改的檔案和資料夾的清單。",
"No recently modified files" : "近期無修改檔案",
"Files and folders you recently modified will show up here." : "您最近修改的檔案和資料夾將顯示在此處。",
+ "Search" : "搜尋",
+ "Search results within your files." : "在您的檔案中搜尋結果",
"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" : "關閉",
@@ -393,9 +417,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}\",因為此資料夾已存在",
@@ -428,35 +449,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 af800f5614f..dcd9d24e9bc 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} 傳來的所有權轉移",
@@ -98,16 +97,23 @@ OC.L10N.register(
"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" : "清除過濾條件",
"Modified" : "修改時間",
+ "Search everywhere" : "到處搜尋",
"Type" : "類型",
"Active filters" : "作用中的過濾條件",
"Remove filter" : "移除過濾條件",
"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}」批次動作執行成功",
@@ -119,7 +125,14 @@ 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} 個"],
+ "Search globally by filename …" : "按檔案名稱全域搜尋……",
+ "Search here by filename …" : "按檔案名稱搜尋此處……",
+ "Filter file names …" : "過濾檔案名稱……",
+ "Search scope options" : "搜尋範圍選項",
+ "Filter in current view" : "目前檢視中的篩選條件",
+ "Search from this location" : "從此位置搜尋",
+ "Search globally" : "全域搜尋",
"{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
"{used} of {quota} used" : "已使用 {used},共 {quota}",
"{relative}% used" : "已使用 {relative}%",
@@ -174,18 +187,22 @@ OC.L10N.register(
"No files in here" : "沒有任何檔案",
"Upload some content or sync with your devices!" : "在您的裝置同步或上傳一些內容!",
"Go back" : "返回",
- "Filter file names …" : "過濾檔案名稱……",
"Views" : "顯示",
"Files settings" : "檔案設定",
"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." : "找不到該檔案,或是您沒有檢視該檔案的權限。請寄件者分享。",
+ "No search results for “{query}”" : "沒有結果符合「{query}」",
+ "Search for files" : "搜尋檔案",
"Clipboard is not available" : "剪貼簿無法使用",
"WebDAV URL copied to clipboard" : "WebDAV URL 已複製到剪貼簿",
+ "All files" : "所有檔案",
+ "Personal files" : "個人檔案",
"Sort favorites first" : "先排序喜愛",
"Sort folders before files" : "將資料夾排序在檔案前",
"Show hidden files" : "顯示隱藏檔",
+ "Show file type column" : "顯示檔案類型欄位",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用格狀檢視",
"Enable folder tree" : "啟用資料夾樹",
@@ -222,6 +239,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" : "從喜愛中移除",
@@ -262,8 +280,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)",
@@ -282,12 +303,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" : "在資料夾中檢視",
@@ -325,6 +346,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" : "儲存空間暫時無法使用",
@@ -340,10 +364,8 @@ OC.L10N.register(
"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." : "您的檔案與資料夾清單。",
"All folders" : "所有資料夾",
- "Personal files" : "個人檔案",
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
"No personal files found" : "找不到個人檔案",
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
@@ -351,12 +373,13 @@ OC.L10N.register(
"List of recently modified files and folders." : "最近修改的檔案與資料夾的清單。",
"No recently modified files" : "最近無修改檔案",
"Files and folders you recently modified will show up here." : "您最近修改的檔案與資料夾將會顯示在此處。",
+ "Search" : "搜尋",
+ "Search results within your files." : "在您的檔案中搜尋結果",
"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" : "關閉",
@@ -395,9 +418,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}」,因為此資料夾已經存在",
@@ -430,35 +450,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 3c1c8d347fa..644fb29a066 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} 傳來的所有權轉移",
@@ -96,16 +95,23 @@
"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" : "清除過濾條件",
"Modified" : "修改時間",
+ "Search everywhere" : "到處搜尋",
"Type" : "類型",
"Active filters" : "作用中的過濾條件",
"Remove filter" : "移除過濾條件",
"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}」批次動作執行成功",
@@ -117,7 +123,14 @@
"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} 個"],
+ "Search globally by filename …" : "按檔案名稱全域搜尋……",
+ "Search here by filename …" : "按檔案名稱搜尋此處……",
+ "Filter file names …" : "過濾檔案名稱……",
+ "Search scope options" : "搜尋範圍選項",
+ "Filter in current view" : "目前檢視中的篩選條件",
+ "Search from this location" : "從此位置搜尋",
+ "Search globally" : "全域搜尋",
"{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
"{used} of {quota} used" : "已使用 {used},共 {quota}",
"{relative}% used" : "已使用 {relative}%",
@@ -172,18 +185,22 @@
"No files in here" : "沒有任何檔案",
"Upload some content or sync with your devices!" : "在您的裝置同步或上傳一些內容!",
"Go back" : "返回",
- "Filter file names …" : "過濾檔案名稱……",
"Views" : "顯示",
"Files settings" : "檔案設定",
"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." : "找不到該檔案,或是您沒有檢視該檔案的權限。請寄件者分享。",
+ "No search results for “{query}”" : "沒有結果符合「{query}」",
+ "Search for files" : "搜尋檔案",
"Clipboard is not available" : "剪貼簿無法使用",
"WebDAV URL copied to clipboard" : "WebDAV URL 已複製到剪貼簿",
+ "All files" : "所有檔案",
+ "Personal files" : "個人檔案",
"Sort favorites first" : "先排序喜愛",
"Sort folders before files" : "將資料夾排序在檔案前",
"Show hidden files" : "顯示隱藏檔",
+ "Show file type column" : "顯示檔案類型欄位",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用格狀檢視",
"Enable folder tree" : "啟用資料夾樹",
@@ -220,6 +237,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" : "從喜愛中移除",
@@ -260,8 +278,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)",
@@ -280,12 +301,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" : "在資料夾中檢視",
@@ -323,6 +344,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" : "儲存空間暫時無法使用",
@@ -338,10 +362,8 @@
"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." : "您的檔案與資料夾清單。",
"All folders" : "所有資料夾",
- "Personal files" : "個人檔案",
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
"No personal files found" : "找不到個人檔案",
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
@@ -349,12 +371,13 @@
"List of recently modified files and folders." : "最近修改的檔案與資料夾的清單。",
"No recently modified files" : "最近無修改檔案",
"Files and folders you recently modified will show up here." : "您最近修改的檔案與資料夾將會顯示在此處。",
+ "Search" : "搜尋",
+ "Search results within your files." : "在您的檔案中搜尋結果",
"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" : "關閉",
@@ -393,9 +416,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}」,因為此資料夾已經存在",
@@ -428,35 +448,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/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php
index 7a660287192..e56b13b902a 100644
--- a/apps/files/lib/Activity/FavoriteProvider.php
+++ b/apps/files/lib/Activity/FavoriteProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Filter/Favorites.php b/apps/files/lib/Activity/Filter/Favorites.php
index 6683f0bc44e..0159dd20b82 100644
--- a/apps/files/lib/Activity/Filter/Favorites.php
+++ b/apps/files/lib/Activity/Filter/Favorites.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Filter/FileChanges.php b/apps/files/lib/Activity/Filter/FileChanges.php
index 215510147d6..0ca8f6792e0 100644
--- a/apps/files/lib/Activity/Filter/FileChanges.php
+++ b/apps/files/lib/Activity/Filter/FileChanges.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php
index faa2bbd0b3b..3ef79ac107f 100644
--- a/apps/files/lib/Activity/Provider.php
+++ b/apps/files/lib/Activity/Provider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Settings/FavoriteAction.php b/apps/files/lib/Activity/Settings/FavoriteAction.php
index b572a9546e0..73b200341ec 100644
--- a/apps/files/lib/Activity/Settings/FavoriteAction.php
+++ b/apps/files/lib/Activity/Settings/FavoriteAction.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Settings/FileChanged.php b/apps/files/lib/Activity/Settings/FileChanged.php
index 5af87456550..c33ed5e1eba 100644
--- a/apps/files/lib/Activity/Settings/FileChanged.php
+++ b/apps/files/lib/Activity/Settings/FileChanged.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Activity/Settings/FileFavoriteChanged.php b/apps/files/lib/Activity/Settings/FileFavoriteChanged.php
index e4ac572f3f3..5000902ed3f 100644
--- a/apps/files/lib/Activity/Settings/FileFavoriteChanged.php
+++ b/apps/files/lib/Activity/Settings/FileFavoriteChanged.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/DeleteOrphanedFiles.php b/apps/files/lib/Command/DeleteOrphanedFiles.php
index 0f3375d2e93..37cb3159f4a 100644
--- a/apps/files/lib/Command/DeleteOrphanedFiles.php
+++ b/apps/files/lib/Command/DeleteOrphanedFiles.php
@@ -54,7 +54,7 @@ class DeleteOrphanedFiles extends Command {
$deletedMounts = $this->cleanupOrphanedMounts();
$output->writeln("$deletedMounts orphaned mount entries deleted");
-
+
return self::SUCCESS;
}
@@ -112,7 +112,7 @@ class DeleteOrphanedFiles extends Command {
return $deletedEntries;
}
-
+
/**
* @param array<int, int[]> $fileIdsByStorage
* @return int
diff --git a/apps/files/lib/Command/SanitizeFilenames.php b/apps/files/lib/Command/SanitizeFilenames.php
index a404f0b3fd9..88d41d1cb5e 100644
--- a/apps/files/lib/Command/SanitizeFilenames.php
+++ b/apps/files/lib/Command/SanitizeFilenames.php
@@ -62,7 +62,7 @@ class SanitizeFilenames extends Base {
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 {
@@ -137,8 +137,9 @@ class SanitizeFilenames extends Base {
$this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (file is locked)</>');
} catch (NotPermittedException) {
$this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (no permissions)</>');
- } catch (Exception) {
+ } 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) {
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index 7f45a9ea518..b9057139b0e 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;
@@ -99,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,
@@ -153,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>");
@@ -179,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;
}
@@ -211,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)) {
@@ -220,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>");
@@ -246,8 +286,8 @@ class Scan extends Base {
$this->execTime = -microtime(true);
// Convert PHP errors to exceptions
set_error_handler(
- fn (int $severity, string $message, string $file, int $line): bool =>
- $this->exceptionErrorHandler($output, $severity, $message, $file, $line),
+ fn (int $severity, string $message, string $file, int $line): bool
+ => $this->exceptionErrorHandler($output, $severity, $message, $file, $line),
E_ALL
);
}
diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php
index 81c80cab373..0e08c6a8cfe 100644
--- a/apps/files/lib/Command/ScanAppData.php
+++ b/apps/files/lib/Command/ScanAppData.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php
index 104a8fb4985..f7663e26f28 100644
--- a/apps/files/lib/Command/TransferOwnership.php
+++ b/apps/files/lib/Command/TransferOwnership.php
@@ -64,7 +64,7 @@ class TransferOwnership extends Command {
'transfer-incoming-shares',
null,
InputOption::VALUE_OPTIONAL,
- 'transfer incoming user file shares to destination user. Usage: --transfer-incoming-shares=1 (value required)',
+ 'Incoming shares are always transferred now, so this option does not affect the ownership transfer anymore',
'2'
)->addOption(
'include-external-storage',
@@ -129,27 +129,6 @@ class TransferOwnership extends Command {
}
try {
- $includeIncomingArgument = $input->getOption('transfer-incoming-shares');
-
- switch ($includeIncomingArgument) {
- case '0':
- $includeIncoming = false;
- break;
- case '1':
- $includeIncoming = true;
- break;
- case '2':
- $includeIncoming = $this->config->getSystemValue('transferIncomingShares', false);
- if (gettype($includeIncoming) !== 'boolean') {
- $output->writeln("<error> config.php: 'transfer-incoming-shares': wrong usage. Transfer aborted.</error>");
- return self::FAILURE;
- }
- break;
- default:
- $output->writeln('<error>Option --transfer-incoming-shares: wrong usage. Transfer aborted.</error>');
- return self::FAILURE;
- }
-
$this->transferService->transfer(
$sourceUserObject,
$destinationUserObject,
@@ -157,7 +136,6 @@ class TransferOwnership extends Command {
$output,
$input->getOption('move') === true,
false,
- $includeIncoming,
$includeExternalStorage,
);
} catch (TransferOwnershipException $e) {
diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php
index 9c683b7f41f..8bb024fb698 100644
--- a/apps/files/lib/Controller/ApiController.php
+++ b/apps/files/lib/Controller/ApiController.php
@@ -105,11 +105,12 @@ class ApiController extends Controller {
}
// Validate the user is allowed to download the file (preview is some kind of download)
+ /** @var ISharedStorage $storage */
$storage = $file->getStorage();
if ($storage->instanceOfStorage(ISharedStorage::class)) {
- /** @var ISharedStorage $storage */
- $attributes = $storage->getShare()->getAttributes();
- if ($attributes !== null && $attributes->getAttribute('permissions', 'download') === false) {
+ /** @var IShare $share */
+ $share = $storage->getShare();
+ if (!$share->canSeeContent()) {
throw new NotFoundException();
}
}
diff --git a/apps/files/lib/Controller/DirectEditingController.php b/apps/files/lib/Controller/DirectEditingController.php
index 2c910006df5..c8addc33e98 100644
--- a/apps/files/lib/Controller/DirectEditingController.php
+++ b/apps/files/lib/Controller/DirectEditingController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Controller/DirectEditingViewController.php b/apps/files/lib/Controller/DirectEditingViewController.php
index 1d78e2af0e0..b13e68f7766 100644
--- a/apps/files/lib/Controller/DirectEditingViewController.php
+++ b/apps/files/lib/Controller/DirectEditingViewController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/DirectEditingService.php b/apps/files/lib/Service/DirectEditingService.php
index 243ddebdc67..3d756ee56fa 100644
--- a/apps/files/lib/Service/DirectEditingService.php
+++ b/apps/files/lib/Service/DirectEditingService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php
index b3a36ee13e5..84c99f32109 100644
--- a/apps/files/lib/Service/OwnershipTransferService.php
+++ b/apps/files/lib/Service/OwnershipTransferService.php
@@ -10,6 +10,7 @@ declare(strict_types=1);
namespace OCA\Files\Service;
use Closure;
+use Exception;
use OC\Files\Filesystem;
use OC\Files\View;
use OC\User\NoUserException;
@@ -19,6 +20,7 @@ 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\File;
use OCP\Files\FileInfo;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
@@ -70,7 +72,6 @@ class OwnershipTransferService {
?OutputInterface $output = null,
bool $move = false,
bool $firstLogin = false,
- bool $transferIncomingShares = false,
bool $includeExternalStorage = false,
): void {
$output = $output ?? new NullOutput();
@@ -157,29 +158,26 @@ class OwnershipTransferService {
$sizeDifference = $sourceSize - $view->getFileInfo($finalTarget)->getSize();
// transfer the incoming shares
- if ($transferIncomingShares === true) {
- $sourceShares = $this->collectIncomingShares(
- $sourceUid,
- $output,
- $view
- );
- $destinationShares = $this->collectIncomingShares(
- $destinationUid,
- $output,
- $view,
- true
- );
- $this->transferIncomingShares(
- $sourceUid,
- $destinationUid,
- $sourceShares,
- $destinationShares,
- $output,
- $path,
- $finalTarget,
- $move
- );
- }
+ $sourceShares = $this->collectIncomingShares(
+ $sourceUid,
+ $output,
+ $sourcePath,
+ );
+ $destinationShares = $this->collectIncomingShares(
+ $destinationUid,
+ $output,
+ null,
+ );
+ $this->transferIncomingShares(
+ $sourceUid,
+ $destinationUid,
+ $sourceShares,
+ $destinationShares,
+ $output,
+ $path,
+ $finalTarget,
+ $move
+ );
$destinationPath = $finalTarget . '/' . $path;
// restore the shares
@@ -258,8 +256,8 @@ class OwnershipTransferService {
$mount = $fileInfo->getMountPoint();
// only analyze into folders from main storage,
if (
- $mount->getMountProvider() instanceof IHomeMountProvider ||
- ($includeExternalStorage && $mount->getMountProvider() instanceof ConfigAdapter)
+ $mount->getMountProvider() instanceof IHomeMountProvider
+ || ($includeExternalStorage && $mount->getMountProvider() instanceof ConfigAdapter)
) {
if ($fileInfo->isEncrypted()) {
/* Encrypted folder means e2ee encrypted, we cannot transfer it */
@@ -344,7 +342,7 @@ class OwnershipTransferService {
return mb_strpos(
Filesystem::normalizePath($relativePath . '/', false),
$normalizedPath . '/') === 0;
- } catch (\Exception $e) {
+ } catch (Exception $e) {
return false;
}
});
@@ -372,14 +370,16 @@ class OwnershipTransferService {
}, $shares)));
}
- private function collectIncomingShares(string $sourceUid,
+ private function collectIncomingShares(
+ string $sourceUid,
OutputInterface $output,
- View $view,
- bool $addKeys = false): array {
+ ?string $path,
+ ): array {
$output->writeln("Collecting all incoming share information for files and folders of $sourceUid ...");
$shares = [];
$progress = new ProgressBar($output);
+ $normalizedPath = Filesystem::normalizePath($path);
$offset = 0;
while (true) {
@@ -388,14 +388,19 @@ class OwnershipTransferService {
if (empty($sharePage)) {
break;
}
- if ($addKeys) {
- foreach ($sharePage as $singleShare) {
- $shares[$singleShare->getNodeId()] = $singleShare;
- }
- } else {
- foreach ($sharePage as $singleShare) {
- $shares[] = $singleShare;
- }
+
+ if ($path !== null && $path !== "$sourceUid/files") {
+ $sharePage = array_filter($sharePage, static function (IShare $share) use ($sourceUid, $normalizedPath) {
+ try {
+ return str_starts_with(Filesystem::normalizePath($sourceUid . '/files' . $share->getTarget() . '/', false), $normalizedPath . '/');
+ } catch (Exception) {
+ return false;
+ }
+ });
+ }
+
+ foreach ($sharePage as $share) {
+ $shares[$share->getNodeId()] = $share;
}
$offset += 50;
@@ -487,8 +492,8 @@ class OwnershipTransferService {
foreach ($shares as ['share' => $share, 'suffix' => $suffix]) {
try {
$output->writeln('Transfering share ' . $share->getId() . ' of type ' . $share->getShareType(), OutputInterface::VERBOSITY_VERBOSE);
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $destinationUid) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $destinationUid) {
// Unmount the shares before deleting, so we don't try to get the storage later on.
$shareMountPoint = $this->mountManager->find('/' . $destinationUid . '/files' . $share->getTarget());
if ($shareMountPoint) {
@@ -503,8 +508,8 @@ class OwnershipTransferService {
$share->setSharedBy($destinationUid);
}
- if ($share->getShareType() === IShare::TYPE_USER &&
- !$this->userManager->userExists($share->getSharedWith())) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && !$this->userManager->userExists($share->getSharedWith())) {
// stray share with deleted user
$output->writeln('<error>Share with id ' . $share->getId() . ' points at deleted user "' . $share->getSharedWith() . '", deleting</error>');
$this->shareManager->deleteShare($share);
@@ -569,8 +574,8 @@ class OwnershipTransferService {
}
$shareTarget = $share->getTarget();
$shareTarget = $finalShareTarget . $shareTarget;
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedBy() === $destinationUid) {
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedBy() === $destinationUid) {
$this->shareManager->deleteShare($share);
} elseif (isset($destinationShares[$share->getNodeId()])) {
$destinationShare = $destinationShares[$share->getNodeId()];
diff --git a/apps/files/lib/Service/UserConfig.php b/apps/files/lib/Service/UserConfig.php
index a2f2f1c1d14..415ca65b579 100644
--- a/apps/files/lib/Service/UserConfig.php
+++ b/apps/files/lib/Service/UserConfig.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -19,47 +20,53 @@ class UserConfig {
'allowed' => [true, false],
],
[
- // Whether to show the "confirm file extension change" warning
- 'key' => 'show_dialog_file_extension',
+ // The view to start the files app in
+ 'key' => 'default_view',
+ 'default' => 'files',
+ 'allowed' => ['files', 'personal'],
+ ],
+ [
+ // Whether to show the folder tree
+ 'key' => 'folder_tree',
'default' => true,
'allowed' => [true, false],
],
[
- // Whether to show the hidden files or not in the files list
- 'key' => 'show_hidden',
+ // Whether to show the files list in grid view or not
+ 'key' => 'grid_view',
'default' => false,
'allowed' => [true, false],
],
[
- // Whether to sort favorites first in the list or not
- 'key' => 'sort_favorites_first',
+ // Whether to show the "confirm file extension change" warning
+ 'key' => 'show_dialog_file_extension',
'default' => true,
'allowed' => [true, false],
],
[
- // Whether to sort folders before files in the list or not
- 'key' => 'sort_folders_first',
- 'default' => true,
+ // Whether to show the hidden files or not in the files list
+ 'key' => 'show_hidden',
+ 'default' => false,
'allowed' => [true, false],
],
[
- // Whether to show the files list in grid view or not
- 'key' => 'grid_view',
+ // Whether to show the mime column or not
+ 'key' => 'show_mime_column',
'default' => false,
'allowed' => [true, false],
],
[
- // Whether to show the folder tree
- 'key' => 'folder_tree',
+ // Whether to sort favorites first in the list or not
+ 'key' => 'sort_favorites_first',
'default' => true,
'allowed' => [true, false],
],
[
- // Whether to show the mime column or not
- 'key' => 'show_mime_column',
- 'default' => false,
+ // Whether to sort folders before files in the list or not
+ 'key' => 'sort_folders_first',
+ 'default' => true,
'allowed' => [true, false],
- ]
+ ],
];
protected ?IUser $user = null;
diff --git a/apps/files/lib/Service/ViewConfig.php b/apps/files/lib/Service/ViewConfig.php
index 348ce6596e5..cf8bebd5372 100644
--- a/apps/files/lib/Service/ViewConfig.php
+++ b/apps/files/lib/Service/ViewConfig.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -103,7 +104,7 @@ class ViewConfig {
if (!in_array($key, $this->getAllowedConfigKeys())) {
throw new \InvalidArgumentException('Unknown config key');
}
-
+
if (!in_array($value, $this->getAllowedConfigValues($key))
&& !empty($this->getAllowedConfigValues($key))) {
throw new \InvalidArgumentException('Invalid config value');
@@ -132,7 +133,7 @@ class ViewConfig {
$userId = $this->user->getUID();
$configs = json_decode($this->config->getUserValue($userId, Application::APP_ID, self::CONFIG_KEY, '[]'), true);
-
+
if (!isset($configs[$view])) {
$configs[$view] = [];
}
@@ -158,7 +159,7 @@ class ViewConfig {
$userId = $this->user->getUID();
$configs = json_decode($this->config->getUserValue($userId, Application::APP_ID, self::CONFIG_KEY, '[]'), true);
$views = array_keys($configs);
-
+
return array_reduce($views, function ($carry, $view) use ($configs) {
$carry[$view] = $this->getConfig($view);
return $carry;
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/openInFilesAction.spec.ts b/apps/files/src/actions/openInFilesAction.spec.ts
index e732270d4c0..3ccd15fa2d2 100644
--- a/apps/files/src/actions/openInFilesAction.spec.ts
+++ b/apps/files/src/actions/openInFilesAction.spec.ts
@@ -19,7 +19,7 @@ const recentView = {
describe('Open in files action conditions tests', () => {
test('Default values', () => {
expect(action).toBeInstanceOf(FileAction)
- expect(action.id).toBe('open-in-files-recent')
+ expect(action.id).toBe('open-in-files')
expect(action.displayName([], recentView)).toBe('Open in Files')
expect(action.iconSvgInline([], recentView)).toBe('')
expect(action.default).toBe(DefaultType.HIDDEN)
diff --git a/apps/files/src/actions/openInFilesAction.ts b/apps/files/src/actions/openInFilesAction.ts
index 10e19e7eace..9e10b1ac74e 100644
--- a/apps/files/src/actions/openInFilesAction.ts
+++ b/apps/files/src/actions/openInFilesAction.ts
@@ -2,19 +2,21 @@
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { translate as t } from '@nextcloud/l10n'
-import { type Node, FileType, FileAction, DefaultType } from '@nextcloud/files'
-/**
- * TODO: Move away from a redirect and handle
- * navigation straight out of the recent view
- */
+import type { Node } from '@nextcloud/files'
+
+import { t } from '@nextcloud/l10n'
+import { FileType, FileAction, DefaultType } from '@nextcloud/files'
+import { VIEW_ID as SEARCH_VIEW_ID } from '../views/search'
+
export const action = new FileAction({
- id: 'open-in-files-recent',
+ id: 'open-in-files',
displayName: () => t('files', 'Open in Files'),
iconSvgInline: () => '',
- enabled: (nodes, view) => view.id === 'recent',
+ enabled(nodes, view) {
+ return view.id === 'recent' || view.id === SEARCH_VIEW_ID
+ },
async exec(node: Node) {
let dir = node.dirname
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 3e455a2f135..d66c3fa0ed7 100644
--- a/apps/files/src/components/FileEntry.vue
+++ b/apps/files/src/components/FileEntry.vue
@@ -97,6 +97,7 @@
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'
@@ -208,6 +209,25 @@ export default defineComponent({
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() {
diff --git a/apps/files/src/components/FileListFilter/FileListFilterToSearch.vue b/apps/files/src/components/FileListFilter/FileListFilterToSearch.vue
new file mode 100644
index 00000000000..938be171f6d
--- /dev/null
+++ b/apps/files/src/components/FileListFilter/FileListFilterToSearch.vue
@@ -0,0 +1,47 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <NcButton v-show="isVisible" @click="onClick">
+ {{ t('files', 'Search everywhere') }}
+ </NcButton>
+</template>
+
+<script setup lang="ts">
+import { t } from '@nextcloud/l10n'
+import { ref } from 'vue'
+import NcButton from '@nextcloud/vue/components/NcButton'
+import { getPinia } from '../../store/index.ts'
+import { useSearchStore } from '../../store/search.ts'
+
+const isVisible = ref(false)
+
+defineExpose({
+ hideButton,
+ showButton,
+})
+
+/**
+ * Hide the button - called by the filter class
+ */
+function hideButton() {
+ isVisible.value = false
+}
+
+/**
+ * Show the button - called by the filter class
+ */
+function showButton() {
+ isVisible.value = true
+}
+
+/**
+ * Button click handler to make the filtering a global search.
+ */
+function onClick() {
+ const searchStore = useSearchStore(getPinia())
+ searchStore.scope = 'globally'
+}
+</script>
diff --git a/apps/files/src/components/FilesListTableHeaderActions.vue b/apps/files/src/components/FilesListTableHeaderActions.vue
index 4d2f2f361e6..53b7e7ef21b 100644
--- a/apps/files/src/components/FilesListTableHeaderActions.vue
+++ b/apps/files/src/components/FilesListTableHeaderActions.vue
@@ -6,6 +6,7 @@
<div class="files-list__column files-list__row-actions-batch" data-cy-files-list-selection-actions>
<NcActions ref="actionsMenu"
container="#app-content-vue"
+ :boundaries-element="boundariesElement"
:disabled="!!loading || areSomeNodesLoading"
:force-name="true"
:inline="enabledInlineActions.length"
@@ -123,6 +124,8 @@ export default defineComponent({
const fileListWidth = useFileListWidth()
const { directory } = useRouteParameters()
+ const boundariesElement = document.getElementById('app-content-vue')
+
return {
directory,
fileListWidth,
@@ -130,6 +133,8 @@ export default defineComponent({
actionsMenuStore,
filesStore,
selectionStore,
+
+ boundariesElement,
}
},
diff --git a/apps/files/src/components/FilesListVirtual.vue b/apps/files/src/components/FilesListVirtual.vue
index 8fdc87b154c..feb4b61c53e 100644
--- a/apps/files/src/components/FilesListVirtual.vue
+++ b/apps/files/src/components/FilesListVirtual.vue
@@ -21,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>
@@ -68,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'
@@ -140,6 +142,7 @@ export default defineComponent({
selectionStore,
userConfigStore,
+ n,
t,
}
},
diff --git a/apps/files/src/components/FilesNavigationItem.vue b/apps/files/src/components/FilesNavigationItem.vue
index 372a83e1441..c29bc00c67f 100644
--- a/apps/files/src/components/FilesNavigationItem.vue
+++ b/apps/files/src/components/FilesNavigationItem.vue
@@ -89,7 +89,7 @@ export default defineComponent({
return (Object.values(this.views).reduce((acc, views) => [...acc, ...views], []) as View[])
.filter(view => view.params?.dir.startsWith(this.parent.params?.dir))
}
- return this.views[this.parent.id] ?? [] // Root level views have `undefined` parent ids
+ return this.filterVisible(this.views[this.parent.id] ?? [])
},
style() {
@@ -103,11 +103,15 @@ export default defineComponent({
},
methods: {
+ filterVisible(views: View[]) {
+ return views.filter(({ id, hidden }) => id === this.currentView?.id || hidden !== true)
+ },
+
hasChildViews(view: View): boolean {
if (this.level >= maxLevel) {
return false
}
- return this.views[view.id]?.length > 0
+ return this.filterVisible(this.views[view.id] ?? []).length > 0
},
/**
diff --git a/apps/files/src/components/FilesNavigationSearch.vue b/apps/files/src/components/FilesNavigationSearch.vue
new file mode 100644
index 00000000000..85dc5534e5e
--- /dev/null
+++ b/apps/files/src/components/FilesNavigationSearch.vue
@@ -0,0 +1,122 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<script setup lang="ts">
+import { mdiMagnify, mdiSearchWeb } from '@mdi/js'
+import { t } from '@nextcloud/l10n'
+import { computed } from 'vue'
+import NcActions from '@nextcloud/vue/components/NcActions'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
+import NcAppNavigationSearch from '@nextcloud/vue/components/NcAppNavigationSearch'
+import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
+import { onBeforeNavigation } from '../composables/useBeforeNavigation.ts'
+import { useNavigation } from '../composables/useNavigation.ts'
+import { useRouteParameters } from '../composables/useRouteParameters.ts'
+import { useFilesStore } from '../store/files.ts'
+import { useSearchStore } from '../store/search.ts'
+import { VIEW_ID } from '../views/search.ts'
+
+const { currentView } = useNavigation(true)
+const { directory } = useRouteParameters()
+
+const filesStore = useFilesStore()
+const searchStore = useSearchStore()
+
+/**
+ * When the route is changed from search view to something different
+ * we need to clear the search box.
+ */
+onBeforeNavigation((to, from, next) => {
+ if (to.params.view !== VIEW_ID && from.params.view === VIEW_ID) {
+ // we are leaving the search view so unset the query
+ searchStore.query = ''
+ searchStore.scope = 'filter'
+ } else if (to.params.view === VIEW_ID && from.params.view === VIEW_ID) {
+ // fix the query if the user refreshed the view
+ if (searchStore.query && !to.query.query) {
+ // @ts-expect-error This is a weird issue with vue-router v4 and will be fixed in v5 (vue 3)
+ return next({
+ ...to,
+ query: {
+ ...to.query,
+ query: searchStore.query,
+ },
+ })
+ }
+ }
+ next()
+})
+
+/**
+ * Are we currently on the search view.
+ * Needed to disable the action menu (we cannot change the search mode there)
+ */
+const isSearchView = computed(() => currentView.value.id === VIEW_ID)
+
+/**
+ * Local search is only possible on real DAV resources within the files root
+ */
+const canSearchLocally = computed(() => {
+ if (searchStore.base) {
+ return true
+ }
+
+ const folder = filesStore.getDirectoryByPath(currentView.value.id, directory.value)
+ return folder?.isDavResource && folder?.root?.startsWith('/files/')
+})
+
+/**
+ * Different searchbox label depending if filtering or searching
+ */
+const searchLabel = computed(() => {
+ if (searchStore.scope === 'globally') {
+ return t('files', 'Search globally by filename …')
+ } else if (searchStore.scope === 'locally') {
+ return t('files', 'Search here by filename …')
+ }
+ return t('files', 'Filter file names …')
+})
+
+/**
+ * Update the search value and set the base if needed
+ * @param value - The new value
+ */
+function onUpdateSearch(value: string) {
+ if (searchStore.scope === 'locally' && currentView.value.id !== VIEW_ID) {
+ searchStore.base = filesStore.getDirectoryByPath(currentView.value.id, directory.value)
+ }
+ searchStore.query = value
+}
+</script>
+
+<template>
+ <NcAppNavigationSearch :label="searchLabel" :model-value="searchStore.query" @update:modelValue="onUpdateSearch">
+ <template #actions>
+ <NcActions :aria-label="t('files', 'Search scope options')" :disabled="isSearchView">
+ <template #icon>
+ <NcIconSvgWrapper :path="searchStore.scope === 'globally' ? mdiSearchWeb : mdiMagnify" />
+ </template>
+ <NcActionButton close-after-click @click="searchStore.scope = 'filter'">
+ <template #icon>
+ <NcIconSvgWrapper :path="mdiMagnify" />
+ </template>
+ {{ t('files', 'Filter in current view') }}
+ </NcActionButton>
+ <NcActionButton v-if="canSearchLocally" close-after-click @click="searchStore.scope = 'locally'">
+ <template #icon>
+ <NcIconSvgWrapper :path="mdiMagnify" />
+ </template>
+ {{ t('files', 'Search from this location') }}
+ </NcActionButton>
+ <NcActionButton close-after-click @click="searchStore.scope = 'globally'">
+ <template #icon>
+ <NcIconSvgWrapper :path="mdiSearchWeb" />
+ </template>
+ {{ t('files', 'Search globally') }}
+ </NcActionButton>
+ </NcActions>
+ </template>
+ </NcAppNavigationSearch>
+</template>
diff --git a/apps/files/src/components/NavigationQuota.vue b/apps/files/src/components/NavigationQuota.vue
index f1d2738e81d..fd10af1c495 100644
--- a/apps/files/src/components/NavigationQuota.vue
+++ b/apps/files/src/components/NavigationQuota.vue
@@ -58,7 +58,7 @@ export default {
computed: {
storageStatsTitle() {
const usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)
- const quotaByte = formatFileSize(this.storageStats?.quota, false, false)
+ const quotaByte = formatFileSize(this.storageStats?.total, false, false)
// If no quota set
if (this.storageStats?.quota < 0) {
diff --git a/apps/files/src/composables/useBeforeNavigation.ts b/apps/files/src/composables/useBeforeNavigation.ts
new file mode 100644
index 00000000000..38b72e40fb3
--- /dev/null
+++ b/apps/files/src/composables/useBeforeNavigation.ts
@@ -0,0 +1,20 @@
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { NavigationGuard } from 'vue-router'
+
+import { onUnmounted } from 'vue'
+import { useRouter } from 'vue-router/composables'
+
+/**
+ * Helper until we use Vue-Router v4 (Vue3).
+ *
+ * @param fn - The navigation guard
+ */
+export function onBeforeNavigation(fn: NavigationGuard) {
+ const router = useRouter()
+ const remove = router.beforeResolve(fn)
+ onUnmounted(remove)
+}
diff --git a/apps/files/src/composables/useFilenameFilter.ts b/apps/files/src/composables/useFilenameFilter.ts
deleted file mode 100644
index 54c16f35384..00000000000
--- a/apps/files/src/composables/useFilenameFilter.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/*!
- * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-import { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files'
-import { watchThrottled } from '@vueuse/core'
-import { onMounted, onUnmounted, ref } from 'vue'
-import { FilenameFilter } from '../filters/FilenameFilter'
-
-/**
- * This is for the `Navigation` component to provide a filename filter
- */
-export function useFilenameFilter() {
- const searchQuery = ref('')
- const filenameFilter = new FilenameFilter()
-
- /**
- * Updating the search query ref from the filter
- * @param event The update:query event
- */
- function updateQuery(event: CustomEvent) {
- if (event.type === 'update:query') {
- searchQuery.value = event.detail
- event.stopPropagation()
- }
- }
-
- onMounted(() => {
- filenameFilter.addEventListener('update:query', updateQuery)
- registerFileListFilter(filenameFilter)
- })
- onUnmounted(() => {
- filenameFilter.removeEventListener('update:query', updateQuery)
- unregisterFileListFilter(filenameFilter.id)
- })
-
- // Update the query on the filter, but throttle to max. every 800ms
- // This will debounce the filter refresh
- watchThrottled(searchQuery, () => {
- filenameFilter.updateQuery(searchQuery.value)
- }, { throttle: 800 })
-
- return {
- searchQuery,
- }
-}
diff --git a/apps/files/src/eventbus.d.ts b/apps/files/src/eventbus.d.ts
index fb61b4a6d03..ab8dbb63dfc 100644
--- a/apps/files/src/eventbus.d.ts
+++ b/apps/files/src/eventbus.d.ts
@@ -2,7 +2,9 @@
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import type { IFileListFilter, Node } from '@nextcloud/files'
+
+import type { IFileListFilter, Node, View } from '@nextcloud/files'
+import type { SearchScope } from './types'
declare module '@nextcloud/event-bus' {
export interface NextcloudEvents {
@@ -13,8 +15,13 @@ declare module '@nextcloud/event-bus' {
'files:favorites:removed': Node
'files:favorites:added': Node
+ 'files:filter:added': IFileListFilter
+ 'files:filter:removed': string
+ // the state of some filters has changed
'files:filters:changed': undefined
+ 'files:navigation:changed': View
+
'files:node:created': Node
'files:node:deleted': Node
'files:node:updated': Node
@@ -22,8 +29,7 @@ declare module '@nextcloud/event-bus' {
'files:node:renamed': Node
'files:node:moved': { node: Node, oldSource: string }
- 'files:filter:added': IFileListFilter
- 'files:filter:removed': string
+ 'files:search:updated': { query: string, scope: SearchScope }
}
}
diff --git a/apps/files/src/filters/FilenameFilter.ts b/apps/files/src/filters/FilenameFilter.ts
index 5019ca42d83..f86269ccd99 100644
--- a/apps/files/src/filters/FilenameFilter.ts
+++ b/apps/files/src/filters/FilenameFilter.ts
@@ -4,17 +4,33 @@
*/
import type { IFileListFilterChip, INode } from '@nextcloud/files'
-import { FileListFilter } from '@nextcloud/files'
+
+import { subscribe } from '@nextcloud/event-bus'
+import { FileListFilter, registerFileListFilter } from '@nextcloud/files'
+import { getPinia } from '../store/index.ts'
+import { useSearchStore } from '../store/search.ts'
+
+/**
+ * Register the filename filter
+ */
+export function registerFilenameFilter() {
+ registerFileListFilter(new FilenameFilter())
+}
/**
* Simple file list filter controlled by the Navigation search box
*/
-export class FilenameFilter extends FileListFilter {
+class FilenameFilter extends FileListFilter {
private searchQuery = ''
constructor() {
super('files:filename', 5)
+ subscribe('files:search:updated', ({ query, scope }) => {
+ if (scope === 'filter') {
+ this.updateQuery(query)
+ }
+ })
}
public filter(nodes: INode[]): INode[] {
@@ -45,10 +61,14 @@ export class FilenameFilter extends FileListFilter {
this.updateQuery('')
},
})
+ } else {
+ // make sure to also reset the search store when pressing the "X" on the filter chip
+ const store = useSearchStore(getPinia())
+ if (store.scope === 'filter') {
+ store.query = ''
+ }
}
this.updateChips(chips)
- // Emit the new query as it might have come not from the Navigation
- this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }))
}
}
diff --git a/apps/files/src/filters/SearchFilter.ts b/apps/files/src/filters/SearchFilter.ts
new file mode 100644
index 00000000000..4c7231fd26a
--- /dev/null
+++ b/apps/files/src/filters/SearchFilter.ts
@@ -0,0 +1,49 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { INode } from '@nextcloud/files'
+import type { ComponentPublicInstance } from 'vue'
+
+import { subscribe } from '@nextcloud/event-bus'
+import { FileListFilter, registerFileListFilter } from '@nextcloud/files'
+import Vue from 'vue'
+import FileListFilterToSearch from '../components/FileListFilter/FileListFilterToSearch.vue'
+
+class SearchFilter extends FileListFilter {
+
+ private currentInstance?: ComponentPublicInstance<typeof FileListFilterToSearch>
+
+ constructor() {
+ super('files:filter-to-search', 999)
+ subscribe('files:search:updated', ({ query, scope }) => {
+ if (query && scope === 'filter') {
+ this.currentInstance?.showButton()
+ } else {
+ this.currentInstance?.hideButton()
+ }
+ })
+ }
+
+ public mount(el: HTMLElement) {
+ if (this.currentInstance) {
+ this.currentInstance.$destroy()
+ }
+
+ const View = Vue.extend(FileListFilterToSearch)
+ this.currentInstance = new View().$mount(el) as unknown as ComponentPublicInstance<typeof FileListFilterToSearch>
+ }
+
+ public filter(nodes: INode[]): INode[] {
+ return nodes
+ }
+
+}
+
+/**
+ * Register a file list filter to only show hidden files if enabled by user config
+ */
+export function registerFilterToSearchToggle() {
+ registerFileListFilter(new SearchFilter())
+}
diff --git a/apps/files/src/init.ts b/apps/files/src/init.ts
index 492ffbb1915..74eca0969b4 100644
--- a/apps/files/src/init.ts
+++ b/apps/files/src/init.ts
@@ -25,14 +25,18 @@ import { registerTemplateEntries } from './newMenu/newFromTemplate.ts'
import { registerFavoritesView } from './views/favorites.ts'
import registerRecentView from './views/recent'
-import registerPersonalFilesView from './views/personal-files'
-import registerFilesView from './views/files'
+import { registerPersonalFilesView } from './views/personal-files'
+import { registerFilesView } from './views/files'
import { registerFolderTreeView } from './views/folderTree.ts'
+import { registerSearchView } from './views/search.ts'
+
import registerPreviewServiceWorker from './services/ServiceWorker.js'
import { initLivePhotos } from './services/LivePhotos'
import { isPublicShare } from '@nextcloud/sharing/public'
import { registerConvertActions } from './actions/convertAction.ts'
+import { registerFilenameFilter } from './filters/FilenameFilter.ts'
+import { registerFilterToSearchToggle } from './filters/SearchFilter.ts'
// Register file actions
registerConvertActions()
@@ -56,8 +60,9 @@ registerTemplateEntries()
if (isPublicShare() === false) {
registerFavoritesView()
registerFilesView()
- registerRecentView()
registerPersonalFilesView()
+ registerRecentView()
+ registerSearchView()
registerFolderTreeView()
}
@@ -65,6 +70,8 @@ if (isPublicShare() === false) {
registerHiddenFilesFilter()
registerTypeFilter()
registerModifiedFilter()
+registerFilenameFilter()
+registerFilterToSearchToggle()
// Register preview service worker
registerPreviewServiceWorker()
diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts
index 13e74c26451..fccb4a0a2b2 100644
--- a/apps/files/src/router/router.ts
+++ b/apps/files/src/router/router.ts
@@ -3,11 +3,17 @@
* 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 logger from '../logger'
+
+import { useFilesStore } from '../store/files.ts'
+import { usePathsStore } from '../store/paths.ts'
+import { defaultView } from '../utils/filesViews.ts'
+import logger from '../logger.ts'
Vue.use(Router)
@@ -52,7 +58,7 @@ const router = new Router({
{
path: '/',
// Pretending we're using the default view
- redirect: { name: 'filelist', params: { view: 'files' } },
+ redirect: { name: 'filelist', params: { view: defaultView() } },
},
{
path: '/:view/:fileid(\\d+)?',
@@ -68,4 +74,72 @@ const router = new Router({
},
})
+// Handle aborted navigation (NavigationGuards) gracefully
+router.onError((error) => {
+ if (isNavigationFailure(error, NavigationFailureType.aborted)) {
+ logger.debug('Navigation was aboorted', { error })
+ } else {
+ throw error
+ }
+})
+
+// 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.beforeResolve((to, from, next) => {
+ if (to.params?.parentIntercept) {
+ delete to.params.parentIntercept
+ return next()
+ }
+
+ if (to.params.view !== from.params.view) {
+ // skip if different views
+ return next()
+ }
+
+ 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 { getNode } = useFilesStore()
+ const { getPath } = usePathsStore()
+
+ if (!from.params.view) {
+ 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(from.params.view, 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 })
+ return 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/Search.spec.ts b/apps/files/src/services/Search.spec.ts
new file mode 100644
index 00000000000..c2840521a15
--- /dev/null
+++ b/apps/files/src/services/Search.spec.ts
@@ -0,0 +1,61 @@
+/*!
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { createPinia, setActivePinia } from 'pinia'
+import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { getContents } from './Search.ts'
+import { Folder, Permission } from '@nextcloud/files'
+
+const searchNodes = vi.hoisted(() => vi.fn())
+vi.mock('./WebDavSearch.ts', () => ({ searchNodes }))
+vi.mock('@nextcloud/auth')
+
+describe('Search service', () => {
+ const fakeFolder = new Folder({ owner: 'owner', source: 'https://cloud.example.com/remote.php/dav/files/owner/folder', root: '/files/owner' })
+
+ beforeAll(() => {
+ window.OCP ??= {}
+ window.OCP.Files ??= {}
+ window.OCP.Files.Router ??= { params: {}, query: {} }
+ vi.spyOn(window.OCP.Files.Router, 'params', 'get').mockReturnValue({ view: 'files' })
+ })
+
+ beforeEach(() => {
+ vi.restoreAllMocks()
+ setActivePinia(createPinia())
+ })
+
+ it('rejects on error', async () => {
+ searchNodes.mockImplementationOnce(() => { throw new Error('expected error') })
+ expect(getContents).rejects.toThrow('expected error')
+ })
+
+ it('returns the search results and a fake root', async () => {
+ searchNodes.mockImplementationOnce(() => [fakeFolder])
+ const { contents, folder } = await getContents()
+
+ expect(searchNodes).toHaveBeenCalledOnce()
+ expect(contents).toHaveLength(1)
+ expect(contents).toEqual([fakeFolder])
+ // read only root
+ expect(folder.permissions).toBe(Permission.READ)
+ })
+
+ it('can be cancelled', async () => {
+ const { promise, resolve } = Promise.withResolvers<Event>()
+ searchNodes.mockImplementationOnce(async (_, { signal }: { signal: AbortSignal}) => {
+ signal.addEventListener('abort', resolve)
+ await promise
+ return []
+ })
+
+ const content = getContents()
+ content.cancel()
+
+ // its cancelled thus the promise returns the event
+ const event = await promise
+ expect(event.type).toBe('abort')
+ })
+})
diff --git a/apps/files/src/services/Search.ts b/apps/files/src/services/Search.ts
new file mode 100644
index 00000000000..ae6f1ee50e0
--- /dev/null
+++ b/apps/files/src/services/Search.ts
@@ -0,0 +1,44 @@
+/*!
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { ContentsWithRoot } from '@nextcloud/files'
+
+import { getCurrentUser } from '@nextcloud/auth'
+import { Folder, Permission } from '@nextcloud/files'
+import { defaultRemoteURL } from '@nextcloud/files/dav'
+import { CancelablePromise } from 'cancelable-promise'
+import { searchNodes } from './WebDavSearch.ts'
+import logger from '../logger.ts'
+import { useSearchStore } from '../store/search.ts'
+import { getPinia } from '../store/index.ts'
+
+/**
+ * Get the contents for a search view
+ */
+export function getContents(): CancelablePromise<ContentsWithRoot> {
+ const controller = new AbortController()
+
+ const searchStore = useSearchStore(getPinia())
+ const dir = searchStore.base?.path
+
+ return new CancelablePromise<ContentsWithRoot>(async (resolve, reject, cancel) => {
+ cancel(() => controller.abort())
+ try {
+ const contents = await searchNodes(searchStore.query, { dir, signal: controller.signal })
+ resolve({
+ contents,
+ folder: new Folder({
+ id: 0,
+ source: `${defaultRemoteURL}#search`,
+ owner: getCurrentUser()!.uid,
+ permissions: Permission.READ,
+ }),
+ })
+ } catch (error) {
+ logger.error('Failed to fetch search results', { error })
+ reject(error)
+ }
+ })
+}
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/services/WebDavSearch.ts b/apps/files/src/services/WebDavSearch.ts
new file mode 100644
index 00000000000..feb7f30b357
--- /dev/null
+++ b/apps/files/src/services/WebDavSearch.ts
@@ -0,0 +1,83 @@
+/*!
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { INode } from '@nextcloud/files'
+import type { ResponseDataDetailed, SearchResult } from 'webdav'
+
+import { getCurrentUser } from '@nextcloud/auth'
+import { defaultRootPath, getDavNameSpaces, getDavProperties, resultToNode } from '@nextcloud/files/dav'
+import { getBaseUrl } from '@nextcloud/router'
+import { client } from './WebdavClient.ts'
+import logger from '../logger.ts'
+
+export interface SearchNodesOptions {
+ dir?: string,
+ signal?: AbortSignal
+}
+
+/**
+ * Search for nodes matching the given query.
+ *
+ * @param query - Search query
+ * @param options - Options
+ * @param options.dir - The base directory to scope the search to
+ * @param options.signal - Abort signal for the request
+ */
+export async function searchNodes(query: string, { dir, signal }: SearchNodesOptions): Promise<INode[]> {
+ const user = getCurrentUser()
+ if (!user) {
+ // the search plugin only works for user roots
+ return []
+ }
+
+ query = query.trim()
+ if (query.length < 3) {
+ // the search plugin only works with queries of at least 3 characters
+ return []
+ }
+
+ if (dir && !dir.startsWith('/')) {
+ dir = `/${dir}`
+ }
+
+ logger.debug('Searching for nodes', { query, dir })
+ const { data } = await client.search('/', {
+ details: true,
+ signal,
+ data: `
+<d:searchrequest ${getDavNameSpaces()}>
+ <d:basicsearch>
+ <d:select>
+ <d:prop>
+ ${getDavProperties()}
+ </d:prop>
+ </d:select>
+ <d:from>
+ <d:scope>
+ <d:href>/files/${user.uid}${dir || ''}</d:href>
+ <d:depth>infinity</d:depth>
+ </d:scope>
+ </d:from>
+ <d:where>
+ <d:like>
+ <d:prop>
+ <d:displayname/>
+ </d:prop>
+ <d:literal>%${query.replace('%', '')}%</d:literal>
+ </d:like>
+ </d:where>
+ <d:orderby/>
+ </d:basicsearch>
+</d:searchrequest>`,
+ }) as ResponseDataDetailed<SearchResult>
+
+ // check if the request was aborted
+ if (signal?.aborted) {
+ return []
+ }
+
+ // otherwise return the result mapped to Nextcloud nodes
+ return data.results.map((result) => resultToNode(result, defaultRootPath, getBaseUrl()))
+}
diff --git a/apps/files/src/store/files.ts b/apps/files/src/store/files.ts
index 295704c880b..3591832d0c4 100644
--- a/apps/files/src/store/files.ts
+++ b/apps/files/src/store/files.ts
@@ -54,13 +54,13 @@ export const useFilesStore = function(...args) {
actions: {
/**
- * Get cached child nodes within a given path
+ * Get cached directory matching a given path
*
- * @param service The service (files view)
- * @param path The path relative within the service
- * @return Array of cached nodes within the path
+ * @param service - The service (files view)
+ * @param path - The path relative within the service
+ * @return The folder if found
*/
- getNodesByPath(service: string, path?: string): Node[] {
+ getDirectoryByPath(service: string, path?: string): Folder | undefined {
const pathsStore = usePathsStore()
let folder: Folder | undefined
@@ -74,6 +74,19 @@ export const useFilesStore = function(...args) {
}
}
+ return folder
+ },
+
+ /**
+ * Get cached child nodes within a given path
+ *
+ * @param service - The service (files view)
+ * @param path - The path relative within the service
+ * @return Array of cached nodes within the path
+ */
+ getNodesByPath(service: string, path?: string): Node[] {
+ const folder = this.getDirectoryByPath(service, path)
+
// If we found a cache entry and the cache entry was already loaded (has children) then use it
return (folder?._children ?? [])
.map((source: string) => this.getNode(source))
diff --git a/apps/files/src/store/search.ts b/apps/files/src/store/search.ts
new file mode 100644
index 00000000000..417f662ca00
--- /dev/null
+++ b/apps/files/src/store/search.ts
@@ -0,0 +1,169 @@
+/*!
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { INode, View } from '@nextcloud/files'
+import type RouterService from '../services/RouterService'
+import type { SearchScope } from '../types'
+
+import { emit, subscribe } from '@nextcloud/event-bus'
+import { defineStore } from 'pinia'
+import { ref, watch } from 'vue'
+import { VIEW_ID } from '../views/search'
+import logger from '../logger'
+import debounce from 'debounce'
+
+export const useSearchStore = defineStore('search', () => {
+ /**
+ * The current search query
+ */
+ const query = ref('')
+
+ /**
+ * Where to start the search
+ */
+ const base = ref<INode>()
+
+ /**
+ * Scope of the search.
+ * Scopes:
+ * - filter: only filter current file list
+ * - locally: search from current location recursivly
+ * - globally: search everywhere
+ */
+ const scope = ref<SearchScope>('filter')
+
+ // reset the base if query is cleared
+ watch(scope, () => {
+ if (scope.value !== 'locally') {
+ base.value = undefined
+ }
+
+ updateSearch()
+ })
+
+ watch(query, (old, current) => {
+ // skip if only whitespaces changed
+ if (old.trim() === current.trim()) {
+ return
+ }
+
+ updateSearch()
+ })
+
+ // initialize the search store
+ initialize()
+
+ /**
+ * Debounced update of the current route
+ * @private
+ */
+ const updateRouter = debounce((isSearch: boolean, fileid?: number) => {
+ const router = window.OCP.Files.Router as RouterService
+ router.goToRoute(
+ undefined,
+ {
+ view: VIEW_ID,
+ ...(fileid === undefined ? {} : { fileid: String(fileid) }),
+ },
+ {
+ query: query.value,
+ },
+ isSearch,
+ )
+ })
+
+ /**
+ * Handle updating the filter if needed.
+ * Also update the search view by updating the current route if needed.
+ *
+ * @private
+ */
+ function updateSearch() {
+ // emit the search event to update the filter
+ emit('files:search:updated', { query: query.value, scope: scope.value })
+ const router = window.OCP.Files.Router as RouterService
+
+ // if we are on the search view and the query was unset or scope was set to 'filter' we need to move back to the files view
+ if (router.params.view === VIEW_ID && (query.value === '' || scope.value === 'filter')) {
+ scope.value = 'filter'
+ return router.goToRoute(
+ undefined,
+ {
+ view: 'files',
+ },
+ {
+ ...router.query,
+ query: undefined,
+ },
+ )
+ }
+
+ // for the filter scope we do not need to adjust the current route anymore
+ // also if the query is empty we do not need to do anything
+ if (scope.value === 'filter' || !query.value) {
+ return
+ }
+
+ // we only use the directory if we search locally
+ const fileid = scope.value === 'locally' ? base.value?.fileid : undefined
+ const isSearch = router.params.view === VIEW_ID
+
+ logger.debug('Update route for updated search query', { query: query.value, fileid, isSearch })
+ updateRouter(isSearch, fileid)
+ }
+
+ /**
+ * Event handler that resets the store if the file list view was changed.
+ *
+ * @param view - The new view that is active
+ * @private
+ */
+ function onViewChanged(view: View) {
+ if (view.id !== VIEW_ID) {
+ query.value = ''
+ scope.value = 'filter'
+ }
+ }
+
+ /**
+ * Initialize the store from the router if needed
+ */
+ function initialize() {
+ subscribe('files:navigation:changed', onViewChanged)
+
+ const router = window.OCP.Files.Router as RouterService
+ // if we initially load the search view (e.g. hard page refresh)
+ // then we need to initialize the store from the router
+ if (router.params.view === VIEW_ID) {
+ query.value = [router.query.query].flat()[0] ?? ''
+
+ if (query.value) {
+ scope.value = 'globally'
+ logger.debug('Directly navigated to search view', { query: query.value })
+ } else {
+ // we do not have any query so we need to move to the files list
+ logger.info('Directly navigated to search view without any query, redirect to files view.')
+ router.goToRoute(
+ undefined,
+ {
+ ...router.params,
+ view: 'files',
+ },
+ {
+ ...router.query,
+ query: undefined,
+ },
+ true,
+ )
+ }
+ }
+ }
+
+ return {
+ base,
+ query,
+ scope,
+ }
+})
diff --git a/apps/files/src/store/userconfig.ts b/apps/files/src/store/userconfig.ts
index d136561c2e5..a901ab9c593 100644
--- a/apps/files/src/store/userconfig.ts
+++ b/apps/files/src/store/userconfig.ts
@@ -12,12 +12,13 @@ import { ref, set } from 'vue'
import axios from '@nextcloud/axios'
const initialUserConfig = loadState<UserConfig>('files', 'config', {
- show_hidden: false,
crop_image_previews: true,
- sort_favorites_first: true,
- sort_folders_first: true,
+ default_view: 'files',
grid_view: false,
+ show_hidden: false,
show_mime_column: true,
+ sort_favorites_first: true,
+ sort_folders_first: true,
show_dialog_file_extension: true,
})
diff --git a/apps/files/src/types.ts b/apps/files/src/types.ts
index db3de13d4eb..dd2b9bbce3b 100644
--- a/apps/files/src/types.ts
+++ b/apps/files/src/types.ts
@@ -50,16 +50,18 @@ export interface PathOptions {
// User config store
export interface UserConfig {
- [key: string]: boolean|undefined
+ [key: string]: boolean | string | undefined
+ crop_image_previews: boolean
+ default_view: 'files' | 'personal'
+ grid_view: boolean
show_dialog_file_extension: boolean,
show_hidden: boolean
- crop_image_previews: boolean
+ show_mime_column: boolean
sort_favorites_first: boolean
sort_folders_first: boolean
- grid_view: boolean
- show_mime_column: boolean
}
+
export interface UserConfigStore {
userConfig: UserConfig
}
@@ -111,6 +113,11 @@ export interface ActiveStore {
activeAction: FileAction|null
}
+/**
+ * Search scope for the in-files-search
+ */
+export type SearchScope = 'filter'|'locally'|'globally'
+
export interface TemplateFile {
app: string
label: string
diff --git a/apps/files/src/utils/filesViews.spec.ts b/apps/files/src/utils/filesViews.spec.ts
new file mode 100644
index 00000000000..e8c2ab3a6c1
--- /dev/null
+++ b/apps/files/src/utils/filesViews.spec.ts
@@ -0,0 +1,75 @@
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { beforeEach, describe, expect, test } from 'vitest'
+import { defaultView, hasPersonalFilesView } from './filesViews.ts'
+
+describe('hasPersonalFilesView', () => {
+ beforeEach(() => removeInitialState())
+
+ test('enabled if user has unlimited quota', () => {
+ mockInitialState('files', 'storageStats', { quota: -1 })
+ expect(hasPersonalFilesView()).toBe(true)
+ })
+
+ test('enabled if user has limited quota', () => {
+ mockInitialState('files', 'storageStats', { quota: 1234 })
+ expect(hasPersonalFilesView()).toBe(true)
+ })
+
+ test('disabled if user has no quota', () => {
+ mockInitialState('files', 'storageStats', { quota: 0 })
+ expect(hasPersonalFilesView()).toBe(false)
+ })
+})
+
+describe('defaultView', () => {
+ beforeEach(() => {
+ document.querySelectorAll('input[type="hidden"]').forEach((el) => {
+ el.remove()
+ })
+ })
+
+ test('Returns files view if set', () => {
+ mockInitialState('files', 'config', { default_view: 'files' })
+ expect(defaultView()).toBe('files')
+ })
+
+ test('Returns personal view if set and enabled', () => {
+ mockInitialState('files', 'config', { default_view: 'personal' })
+ mockInitialState('files', 'storageStats', { quota: -1 })
+ expect(defaultView()).toBe('personal')
+ })
+
+ test('Falls back to files if personal view is disabled', () => {
+ mockInitialState('files', 'config', { default_view: 'personal' })
+ mockInitialState('files', 'storageStats', { quota: 0 })
+ expect(defaultView()).toBe('files')
+ })
+})
+
+/**
+ * Remove the mocked initial state
+ */
+function removeInitialState(): void {
+ document.querySelectorAll('input[type="hidden"]').forEach((el) => {
+ el.remove()
+ })
+}
+
+/**
+ * Helper to mock an initial state value
+ * @param app - The app
+ * @param key - The key
+ * @param value - The value
+ */
+function mockInitialState(app: string, key: string, value: unknown): void {
+ const el = document.createElement('input')
+ el.value = btoa(JSON.stringify(value))
+ el.id = `initial-state-${app}-${key}`
+ el.type = 'hidden'
+
+ document.head.appendChild(el)
+}
diff --git a/apps/files/src/utils/filesViews.ts b/apps/files/src/utils/filesViews.ts
new file mode 100644
index 00000000000..9489c35cbde
--- /dev/null
+++ b/apps/files/src/utils/filesViews.ts
@@ -0,0 +1,30 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { UserConfig } from '../types.ts'
+
+import { loadState } from '@nextcloud/initial-state'
+
+/**
+ * Check whether the personal files view can be shown
+ */
+export function hasPersonalFilesView(): boolean {
+ const storageStats = loadState('files', 'storageStats', { quota: -1 })
+ // Don't show this view if the user has no storage quota
+ return storageStats.quota !== 0
+}
+
+/**
+ * Get the default files view
+ */
+export function defaultView() {
+ const { default_view: defaultView } = loadState<Partial<UserConfig>>('files', 'config', { default_view: 'files' })
+
+ // the default view - only use the personal one if it is enabled
+ if (defaultView !== 'personal' || hasPersonalFilesView()) {
+ return defaultView
+ }
+ return 'files'
+}
diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue
index 0aa3da144c2..89d9fed6ce5 100644
--- a/apps/files/src/views/FilesList.vue
+++ b/apps/files/src/views/FilesList.vue
@@ -160,6 +160,7 @@ import { showError, showSuccess, showWarning } from '@nextcloud/dialogs'
import { ShareType } from '@nextcloud/sharing'
import { UploadPicker, UploadStatus } from '@nextcloud/upload'
import { loadState } from '@nextcloud/initial-state'
+import { useThrottleFn } from '@vueuse/core'
import { defineComponent } from 'vue'
import NcAppContent from '@nextcloud/vue/components/NcAppContent'
@@ -325,16 +326,7 @@ export default defineComponent({
return
}
- if (this.directory === '/') {
- return this.filesStore.getRoot(this.currentView.id)
- }
-
- const source = this.pathsStore.getPath(this.currentView.id, this.directory)
- if (source === undefined) {
- return
- }
-
- return this.filesStore.getNode(source) as Folder
+ return this.filesStore.getDirectoryByPath(this.currentView.id, this.directory)
},
dirContents(): Node[] {
@@ -479,16 +471,13 @@ export default defineComponent({
const hidden = this.dirContents.length - this.dirContentsFiltered.length
return getSummaryFor(this.dirContentsFiltered, hidden)
},
- },
- watch: {
- /**
- * Update the window title to match the page heading
- */
- pageHeading() {
- document.title = `${this.pageHeading} - ${getCapabilities().theming?.productName ?? 'Nextcloud'}`
+ debouncedFetchContent() {
+ return useThrottleFn(this.fetchContent, 800, true)
},
+ },
+ watch: {
/**
* Handle rendering the custom empty view
* @param show The current state if the custom empty view should be rendered
@@ -547,14 +536,16 @@ export default defineComponent({
// filter content if filter were changed
subscribe('files:filters:changed', this.filterDirContent)
+ subscribe('files:search:updated', this.onUpdateSearch)
+
// Finally, fetch the current directory contents
await this.fetchContent()
if (this.fileId) {
// If we have a fileId, let's check if the file exists
- const node = this.dirContents.find(node => node.fileid.toString() === this.fileId.toString())
+ const node = this.dirContents.find(node => node.fileid?.toString() === this.fileId?.toString())
// If the file isn't in the current directory nor if
// the current directory is the file, we show an error
- if (!node && this.currentFolder.fileid.toString() !== this.fileId.toString()) {
+ if (!node && this.currentFolder?.fileid?.toString() !== this.fileId.toString()) {
showError(t('files', 'The file could not be found'))
}
}
@@ -564,9 +555,17 @@ export default defineComponent({
unsubscribe('files:node:deleted', this.onNodeDeleted)
unsubscribe('files:node:updated', this.onUpdatedNode)
unsubscribe('files:config:updated', this.fetchContent)
+ unsubscribe('files:filters:changed', this.filterDirContent)
+ unsubscribe('files:search:updated', this.onUpdateSearch)
},
methods: {
+ onUpdateSearch({ query, scope }) {
+ if (query && scope !== 'filter') {
+ this.debouncedFetchContent()
+ }
+ },
+
async fetchContent() {
this.loading = true
this.error = null
diff --git a/apps/files/src/views/Navigation.cy.ts b/apps/files/src/views/Navigation.cy.ts
index a88878e2d3a..7357943ee28 100644
--- a/apps/files/src/views/Navigation.cy.ts
+++ b/apps/files/src/views/Navigation.cy.ts
@@ -10,7 +10,8 @@ import NavigationView from './Navigation.vue'
import { useViewConfigStore } from '../store/viewConfig'
import { Folder, View, getNavigation } from '@nextcloud/files'
-import router from '../router/router'
+import router from '../router/router.ts'
+import RouterService from '../services/RouterService'
const resetNavigation = () => {
const nav = getNavigation()
@@ -27,9 +28,18 @@ const createView = (id: string, name: string, parent?: string) => new View({
parent,
})
+function mockWindow() {
+ window.OCP ??= {}
+ window.OCP.Files ??= {}
+ window.OCP.Files.Router = new RouterService(router)
+}
+
describe('Navigation renders', () => {
- before(() => {
+ before(async () => {
delete window._nc_navigation
+ mockWindow()
+ getNavigation().register(createView('files', 'Files'))
+ await router.replace({ name: 'filelist', params: { view: 'files' } })
cy.mockInitialState('files', 'storageStats', {
used: 1000 * 1000 * 1000,
@@ -41,6 +51,7 @@ describe('Navigation renders', () => {
it('renders', () => {
cy.mount(NavigationView, {
+ router,
global: {
plugins: [createTestingPinia({
createSpy: cy.spy,
@@ -60,6 +71,7 @@ describe('Navigation API', () => {
before(async () => {
delete window._nc_navigation
Navigation = getNavigation()
+ mockWindow()
await router.replace({ name: 'filelist', params: { view: 'files' } })
})
@@ -152,14 +164,18 @@ describe('Navigation API', () => {
})
describe('Quota rendering', () => {
- before(() => {
+ before(async () => {
delete window._nc_navigation
+ mockWindow()
+ getNavigation().register(createView('files', 'Files'))
+ await router.replace({ name: 'filelist', params: { view: 'files' } })
})
afterEach(() => cy.unmockInitialState())
it('Unknown quota', () => {
cy.mount(NavigationView, {
+ router,
global: {
plugins: [createTestingPinia({
createSpy: cy.spy,
@@ -174,9 +190,11 @@ describe('Quota rendering', () => {
cy.mockInitialState('files', 'storageStats', {
used: 1024 * 1024 * 1024,
quota: -1,
+ total: 50 * 1024 * 1024 * 1024,
})
cy.mount(NavigationView, {
+ router,
global: {
plugins: [createTestingPinia({
createSpy: cy.spy,
@@ -193,10 +211,12 @@ describe('Quota rendering', () => {
cy.mockInitialState('files', 'storageStats', {
used: 1024 * 1024 * 1024,
quota: 5 * 1024 * 1024 * 1024,
+ total: 5 * 1024 * 1024 * 1024,
relative: 20, // percent
})
cy.mount(NavigationView, {
+ router,
global: {
plugins: [createTestingPinia({
createSpy: cy.spy,
@@ -215,10 +235,12 @@ describe('Quota rendering', () => {
cy.mockInitialState('files', 'storageStats', {
used: 5 * 1024 * 1024 * 1024,
quota: 1024 * 1024 * 1024,
+ total: 1024 * 1024 * 1024,
relative: 500, // percent
})
cy.mount(NavigationView, {
+ router,
global: {
plugins: [createTestingPinia({
createSpy: cy.spy,
diff --git a/apps/files/src/views/Navigation.vue b/apps/files/src/views/Navigation.vue
index 3147268f34d..c424a0d74b8 100644
--- a/apps/files/src/views/Navigation.vue
+++ b/apps/files/src/views/Navigation.vue
@@ -7,7 +7,7 @@
class="files-navigation"
:aria-label="t('files', 'Files')">
<template #search>
- <NcAppNavigationSearch v-model="searchQuery" :label="t('files', 'Filter file names …')" />
+ <FilesNavigationSearch />
</template>
<template #default>
<NcAppNavigationList class="files-navigation__list"
@@ -39,24 +39,24 @@
</template>
<script lang="ts">
-import { getNavigation, type View } from '@nextcloud/files'
+import type { View } from '@nextcloud/files'
import type { ViewConfig } from '../types.ts'
-import { defineComponent } from 'vue'
import { emit, subscribe } from '@nextcloud/event-bus'
-import { translate as t, getCanonicalLocale, getLanguage } from '@nextcloud/l10n'
+import { getNavigation } from '@nextcloud/files'
+import { t, getCanonicalLocale, getLanguage } from '@nextcloud/l10n'
+import { defineComponent } from 'vue'
import IconCog from 'vue-material-design-icons/Cog.vue'
import NcAppNavigation from '@nextcloud/vue/components/NcAppNavigation'
import NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'
import NcAppNavigationList from '@nextcloud/vue/components/NcAppNavigationList'
-import NcAppNavigationSearch from '@nextcloud/vue/components/NcAppNavigationSearch'
import NavigationQuota from '../components/NavigationQuota.vue'
import SettingsModal from './Settings.vue'
import FilesNavigationItem from '../components/FilesNavigationItem.vue'
+import FilesNavigationSearch from '../components/FilesNavigationSearch.vue'
import { useNavigation } from '../composables/useNavigation'
-import { useFilenameFilter } from '../composables/useFilenameFilter'
import { useFiltersStore } from '../store/filters.ts'
import { useViewConfigStore } from '../store/viewConfig.ts'
import logger from '../logger.ts'
@@ -75,12 +75,12 @@ export default defineComponent({
components: {
IconCog,
FilesNavigationItem,
+ FilesNavigationSearch,
NavigationQuota,
NcAppNavigation,
NcAppNavigationItem,
NcAppNavigationList,
- NcAppNavigationSearch,
SettingsModal,
},
@@ -88,11 +88,9 @@ export default defineComponent({
const filtersStore = useFiltersStore()
const viewConfigStore = useViewConfigStore()
const { currentView, views } = useNavigation()
- const { searchQuery } = useFilenameFilter()
return {
currentView,
- searchQuery,
t,
views,
diff --git a/apps/files/src/views/SearchEmptyView.vue b/apps/files/src/views/SearchEmptyView.vue
new file mode 100644
index 00000000000..0553e416caf
--- /dev/null
+++ b/apps/files/src/views/SearchEmptyView.vue
@@ -0,0 +1,57 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<script setup lang="ts">
+import { mdiMagnifyClose } from '@mdi/js'
+import { t } from '@nextcloud/l10n'
+import debounce from 'debounce'
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'
+import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
+import NcInputField from '@nextcloud/vue/components/NcInputField'
+import { getPinia } from '../store/index.ts'
+import { useSearchStore } from '../store/search.ts'
+
+const searchStore = useSearchStore(getPinia())
+const debouncedUpdate = debounce((value: string) => {
+ searchStore.query = value
+}, 500)
+</script>
+
+<template>
+ <NcEmptyContent :name="t('files', 'No search results for “{query}”', { query: searchStore.query })">
+ <template #icon>
+ <NcIconSvgWrapper :path="mdiMagnifyClose" />
+ </template>
+ <template #action>
+ <div class="search-empty-view__wrapper">
+ <NcInputField class="search-empty-view__input"
+ :label="t('files', 'Search for files')"
+ :model-value="searchStore.query"
+ type="search"
+ @update:model-value="debouncedUpdate" />
+ <NcButton v-if="searchStore.scope === 'locally'" @click="searchStore.scope = 'globally'">
+ {{ t('files', 'Search globally') }}
+ </NcButton>
+ </div>
+ </template>
+ </NcEmptyContent>
+</template>
+
+<style scoped lang="scss">
+.search-empty-view {
+ &__input {
+ flex: 0 1;
+ min-width: min(400px, 50vw);
+ }
+
+ &__wrapper {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ align-items: baseline;
+ }
+}
+</style>
diff --git a/apps/files/src/views/Settings.vue b/apps/files/src/views/Settings.vue
index a9967fdbef9..46992622a3a 100644
--- a/apps/files/src/views/Settings.vue
+++ b/apps/files/src/views/Settings.vue
@@ -9,6 +9,27 @@
@update:open="onClose">
<!-- Settings API-->
<NcAppSettingsSection id="settings" :name="t('files', 'Files settings')">
+ <fieldset class="files-settings__default-view"
+ data-cy-files-settings-setting="default_view">
+ <legend>
+ {{ t('files', 'Default view') }}
+ </legend>
+ <NcCheckboxRadioSwitch :model-value="userConfig.default_view"
+ name="default_view"
+ type="radio"
+ value="files"
+ @update:model-value="setConfig('default_view', $event)">
+ {{ t('files', 'All files') }}
+ </NcCheckboxRadioSwitch>
+ <NcCheckboxRadioSwitch :model-value="userConfig.default_view"
+ name="default_view"
+ type="radio"
+ value="personal"
+ @update:model-value="setConfig('default_view', $event)">
+ {{ t('files', 'Personal files') }}
+ </NcCheckboxRadioSwitch>
+ </fieldset>
+
<NcCheckboxRadioSwitch data-cy-files-settings-setting="sort_favorites_first"
:checked="userConfig.sort_favorites_first"
@update:checked="setConfig('sort_favorites_first', $event)">
@@ -380,6 +401,12 @@ export default {
</script>
<style lang="scss" scoped>
+.files-settings {
+ &__default-view {
+ margin-bottom: 0.5rem;
+ }
+}
+
.setting-link:hover {
text-decoration: underline;
}
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/src/views/files.ts b/apps/files/src/views/files.ts
index a49a13f91e1..1be58fdaf9a 100644
--- a/apps/files/src/views/files.ts
+++ b/apps/files/src/views/files.ts
@@ -2,21 +2,29 @@
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { translate as t } from '@nextcloud/l10n'
-import FolderSvg from '@mdi/svg/svg/folder.svg?raw'
-import { getContents } from '../services/Files'
import { View, getNavigation } from '@nextcloud/files'
+import { t } from '@nextcloud/l10n'
+import { getContents } from '../services/Files.ts'
+import { defaultView } from '../utils/filesViews.ts'
+
+import FolderSvg from '@mdi/svg/svg/folder.svg?raw'
-export default () => {
+export const VIEW_ID = 'files'
+
+/**
+ * Register the files view to the navigation
+ */
+export function registerFilesView() {
const Navigation = getNavigation()
Navigation.register(new View({
- id: 'files',
+ id: VIEW_ID,
name: t('files', 'All files'),
caption: t('files', 'List of your files and folders.'),
icon: FolderSvg,
- order: 0,
+ // if this is the default view we set it at the top of the list - otherwise below it
+ order: defaultView() === VIEW_ID ? 0 : 5,
getContents,
}))
diff --git a/apps/files/src/views/personal-files.ts b/apps/files/src/views/personal-files.ts
index 66d4e77b376..36888eb7ee0 100644
--- a/apps/files/src/views/personal-files.ts
+++ b/apps/files/src/views/personal-files.ts
@@ -2,23 +2,27 @@
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { translate as t } from '@nextcloud/l10n'
+
+import { t } from '@nextcloud/l10n'
import { View, getNavigation } from '@nextcloud/files'
+import { getContents } from '../services/PersonalFiles.ts'
+import { defaultView, hasPersonalFilesView } from '../utils/filesViews.ts'
-import { getContents } from '../services/PersonalFiles'
import AccountIcon from '@mdi/svg/svg/account.svg?raw'
-import { loadState } from '@nextcloud/initial-state'
-export default () => {
- // Don't show this view if the user has no storage quota
- const storageStats = loadState('files', 'storageStats', { quota: -1 })
- if (storageStats.quota === 0) {
+export const VIEW_ID = 'personal'
+
+/**
+ * Register the personal files view if allowed
+ */
+export function registerPersonalFilesView(): void {
+ if (!hasPersonalFilesView()) {
return
}
const Navigation = getNavigation()
Navigation.register(new View({
- id: 'personal',
+ id: VIEW_ID,
name: t('files', 'Personal files'),
caption: t('files', 'List of your files and folders that are not shared.'),
@@ -26,7 +30,8 @@ export default () => {
emptyCaption: t('files', 'Files that are not shared will show up here.'),
icon: AccountIcon,
- order: 5,
+ // if this is the default view we set it at the top of the list - otherwise default position of fifth
+ order: defaultView() === VIEW_ID ? 0 : 5,
getContents,
}))
diff --git a/apps/files/src/views/search.ts b/apps/files/src/views/search.ts
new file mode 100644
index 00000000000..a30f732163c
--- /dev/null
+++ b/apps/files/src/views/search.ts
@@ -0,0 +1,51 @@
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { ComponentPublicInstanceConstructor } from 'vue/types/v3-component-public-instance'
+
+import { View, getNavigation } from '@nextcloud/files'
+import { t } from '@nextcloud/l10n'
+import { getContents } from '../services/Search.ts'
+import { VIEW_ID as FILES_VIEW_ID } from './files.ts'
+import MagnifySvg from '@mdi/svg/svg/magnify.svg?raw'
+import Vue from 'vue'
+
+export const VIEW_ID = 'search'
+
+/**
+ * Register the search-in-files view
+ */
+export function registerSearchView() {
+ let instance: Vue
+ let view: ComponentPublicInstanceConstructor
+
+ const Navigation = getNavigation()
+ Navigation.register(new View({
+ id: VIEW_ID,
+ name: t('files', 'Search'),
+ caption: t('files', 'Search results within your files.'),
+
+ async emptyView(el) {
+ if (!view) {
+ view = (await import('./SearchEmptyView.vue')).default
+ } else {
+ instance.$destroy()
+ }
+ instance = new Vue(view)
+ instance.$mount(el)
+ },
+
+ icon: MagnifySvg,
+ order: 10,
+
+ parent: FILES_VIEW_ID,
+ // it should be shown expanded
+ expanded: true,
+ // this view is hidden by default and only shown when active
+ hidden: true,
+
+ getContents,
+ }))
+}
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 9ba105e240d..5281220282a 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files/tests/Activity/Filter/GenericTest.php b/apps/files/tests/Activity/Filter/GenericTest.php
index dbb2538ed8a..40e2f9848b5 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,47 +20,35 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
- public function dataFilters() {
+ public static function dataFilters(): array {
return [
[Favorites::class],
[FileChanges::class],
];
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testImplementsInterface($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetName($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetPriority($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@@ -67,32 +57,23 @@ class GenericTest extends TestCase {
$this->assertLessThanOrEqual(100, $priority);
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testGetIcon($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
$this->assertStringStartsWith('http', $filter->getIcon());
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testFilterTypes($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
}
- /**
- * @dataProvider dataFilters
- * @param string $filterClass
- */
- public function testAllowedApps($filterClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFilters')]
+ 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 7b91e980842..b6ba095ecfe 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,7 +82,7 @@ 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'],
@@ -97,15 +90,8 @@ class ProviderTest extends TestCase {
];
}
- /**
- * @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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetFile')]
+ public function testGetFile(array|string $parameter, ?int $eventId, string $id, string $name, string $path): void {
$provider = $this->getProvider();
if ($eventId !== null) {
@@ -139,7 +125,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']],
@@ -148,13 +134,7 @@ class ProviderTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetUser
- * @param string $uid
- * @param string|null $userDisplayName
- * @param array|null $cloudIdData
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetUser')]
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..df6b1e0f6d4 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],
@@ -20,40 +22,28 @@ class GenericTest extends TestCase {
];
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testImplementsInterface($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testGetName($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testGetPriority($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@@ -62,41 +52,29 @@ class GenericTest extends TestCase {
$this->assertLessThanOrEqual(100, $priority);
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testCanChangeStream($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testIsDefaultEnabledStream($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testCanChangeMail($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
}
- /**
- * @dataProvider dataSettings
- * @param string $settingClass
- */
- public function testIsDefaultEnabledMail($settingClass): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSettings')]
+ 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..f39ac1c873f 100644
--- a/apps/files/tests/AdvancedCapabilitiesTest.php
+++ b/apps/files/tests/AdvancedCapabilitiesTest.php
@@ -18,13 +18,12 @@ 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);
}
- /**
- * @dataProvider dataGetCapabilities
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetCapabilities')]
public function testGetCapabilities(bool $wcf): void {
$this->service
->expects(self::once())
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..a488915e0cb 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): void {
+ $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..e74989eb2f5 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.
@@ -28,9 +29,9 @@ use OCP\IPreview;
use OCP\IRequest;
use OCP\IUser;
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 +41,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 +68,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);
@@ -142,7 +119,7 @@ class ApiControllerTest extends TestCase {
$this->tagService->expects($this->once())
->method('updateFileTags')
->with('/path.txt', ['Tag1', 'Tag2'])
- ->will($this->throwException(new NotFoundException('My error message')));
+ ->willThrowException(new NotFoundException('My error message'));
$expected = new DataResponse(['message' => 'My error message'], Http::STATUS_NOT_FOUND);
$this->assertEquals($expected, $this->apiController->updateFileTags('/path.txt', ['Tag1', 'Tag2']));
@@ -152,7 +129,7 @@ class ApiControllerTest extends TestCase {
$this->tagService->expects($this->once())
->method('updateFileTags')
->with('/path.txt', ['Tag1', 'Tag2'])
- ->will($this->throwException(new StorageNotAvailableException('My error message')));
+ ->willThrowException(new StorageNotAvailableException('My error message'));
$expected = new DataResponse(['message' => 'My error message'], Http::STATUS_SERVICE_UNAVAILABLE);
$this->assertEquals($expected, $this->apiController->updateFileTags('/path.txt', ['Tag1', 'Tag2']));
@@ -162,7 +139,7 @@ class ApiControllerTest extends TestCase {
$this->tagService->expects($this->once())
->method('updateFileTags')
->with('/path.txt', ['Tag1', 'Tag2'])
- ->will($this->throwException(new \Exception('My error message')));
+ ->willThrowException(new \Exception('My error message'));
$expected = new DataResponse(['message' => 'My error message'], Http::STATUS_NOT_FOUND);
$this->assertEquals($expected, $this->apiController->updateFileTags('/path.txt', ['Tag1', 'Tag2']));
@@ -205,16 +182,10 @@ class ApiControllerTest extends TestCase {
}
public function testGetThumbnailSharedNoDownload(): void {
- $attributes = $this->createMock(IAttributes::class);
- $attributes->expects(self::once())
- ->method('getAttribute')
- ->with('permissions', 'download')
- ->willReturn(false);
-
$share = $this->createMock(IShare::class);
$share->expects(self::once())
- ->method('getAttributes')
- ->willReturn($attributes);
+ ->method('canSeeContent')
+ ->willReturn(false);
$storage = $this->createMock(ISharedStorage::class);
$storage->expects(self::once())
@@ -243,8 +214,8 @@ class ApiControllerTest extends TestCase {
public function testGetThumbnailShared(): void {
$share = $this->createMock(IShare::class);
$share->expects(self::once())
- ->method('getAttributes')
- ->willReturn(null);
+ ->method('canSeeContent')
+ ->willReturn(true);
$storage = $this->createMock(ISharedStorage::class);
$storage->expects(self::once())
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..a9a80fc6f35 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
@@ -209,10 +210,8 @@ class ViewControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestShortRedirect
- */
- public function testShortRedirect($openfile, $opendetails, $result) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestShortRedirect')]
+ public function testShortRedirect(?string $openfile, ?string $opendetails, string $result): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
->with('files')
@@ -239,7 +238,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 +247,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 +269,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..ba93fa0efdf 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',
@@ -76,9 +76,7 @@ class HelperTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider sortDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('sortDataProvider')]
public function testSortByName(string $sort, bool $sortDescending, array $expectedOrder): void {
if (($sort === 'mtime') && (PHP_INT_SIZE < 8)) {
$this->markTestSkipped('Skip mtime sorting on 32bit');
@@ -94,36 +92,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..424e483102c 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 = 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/ajax/oauth2.php b/apps/files_external/ajax/oauth2.php
index 9dd8ceec2d2..d961d41ea6b 100644
--- a/apps/files_external/ajax/oauth2.php
+++ b/apps/files_external/ajax/oauth2.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php
index 18418cc19c3..39b15e2a956 100644
--- a/apps/files_external/appinfo/routes.php
+++ b/apps/files_external/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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/et_EE.js b/apps/files_external/l10n/et_EE.js
index c43471fe499..9624cfcc025 100644
--- a/apps/files_external/l10n/et_EE.js
+++ b/apps/files_external/l10n/et_EE.js
@@ -2,13 +2,14 @@ OC.L10N.register(
"files_external",
{
"Grant access" : "Anna ligipääs",
- "Error configuring OAuth1" : "OAuth1 seadistamise tõrge",
- "Please provide a valid app key and secret." : "Palun sisesta rakenduse ketiva võti ja saladus.",
- "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",
@@ -19,6 +20,7 @@ OC.L10N.register(
"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",
@@ -43,6 +45,7 @@ OC.L10N.register(
"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",
@@ -52,12 +55,13 @@ 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",
+ "URL" : "Võrguaadress",
"Remote subfolder" : "Mujal olev alamkaust",
"Secure https://" : "Turvaline https://",
"FTP" : "FTP",
@@ -73,6 +77,7 @@ OC.L10N.register(
"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",
@@ -80,25 +85,37 @@ OC.L10N.register(
"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",
+ "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",
@@ -124,6 +141,8 @@ OC.L10N.register(
"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 108e1ad18aa..eed33193c14 100644
--- a/apps/files_external/l10n/et_EE.json
+++ b/apps/files_external/l10n/et_EE.json
@@ -1,12 +1,13 @@
{ "translations": {
"Grant access" : "Anna ligipääs",
- "Error configuring OAuth1" : "OAuth1 seadistamise tõrge",
- "Please provide a valid app key and secret." : "Palun sisesta rakenduse ketiva võti ja saladus.",
- "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",
@@ -17,6 +18,7 @@
"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",
@@ -41,6 +43,7 @@
"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",
@@ -50,12 +53,13 @@
"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",
+ "URL" : "Võrguaadress",
"Remote subfolder" : "Mujal olev alamkaust",
"Secure https://" : "Turvaline https://",
"FTP" : "FTP",
@@ -71,6 +75,7 @@
"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",
@@ -78,25 +83,37 @@
"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",
+ "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",
@@ -122,6 +139,8 @@
"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 5dae81d558c..d5181e783ce 100644
--- a/apps/files_external/lib/AppInfo/Application.php
+++ b/apps/files_external/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Applicable.php b/apps/files_external/lib/Command/Applicable.php
index ecb635c052a..4d5e264bfaf 100644
--- a/apps/files_external/lib/Command/Applicable.php
+++ b/apps/files_external/lib/Command/Applicable.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Backends.php b/apps/files_external/lib/Command/Backends.php
index 399bdadcacf..7fab0477adf 100644
--- a/apps/files_external/lib/Command/Backends.php
+++ b/apps/files_external/lib/Command/Backends.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Config.php b/apps/files_external/lib/Command/Config.php
index 0736749f6d9..883b4a2f3e7 100644
--- a/apps/files_external/lib/Command/Config.php
+++ b/apps/files_external/lib/Command/Config.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Create.php b/apps/files_external/lib/Command/Create.php
index 4396d2e2b13..3307015518a 100644
--- a/apps/files_external/lib/Command/Create.php
+++ b/apps/files_external/lib/Command/Create.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Delete.php b/apps/files_external/lib/Command/Delete.php
index 3e6ccf751a8..9f121250f7d 100644
--- a/apps/files_external/lib/Command/Delete.php
+++ b/apps/files_external/lib/Command/Delete.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Dependencies.php b/apps/files_external/lib/Command/Dependencies.php
index 1bb57778129..d2db8a8c9af 100644
--- a/apps/files_external/lib/Command/Dependencies.php
+++ b/apps/files_external/lib/Command/Dependencies.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_external/lib/Command/Export.php b/apps/files_external/lib/Command/Export.php
index 0735d94d89d..59484d0e788 100644
--- a/apps/files_external/lib/Command/Export.php
+++ b/apps/files_external/lib/Command/Export.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Import.php b/apps/files_external/lib/Command/Import.php
index bf36bf5d5c1..a9ed76fbe40 100644
--- a/apps/files_external/lib/Command/Import.php
+++ b/apps/files_external/lib/Command/Import.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -112,10 +113,10 @@ class Import extends Base {
foreach ($mounts as $mount) {
foreach ($existingMounts as $existingMount) {
if (
- $existingMount->getMountPoint() === $mount->getMountPoint() &&
- $existingMount->getApplicableGroups() === $mount->getApplicableGroups() &&
- $existingMount->getApplicableUsers() === $mount->getApplicableUsers() &&
- $existingMount->getBackendOptions() === $mount->getBackendOptions()
+ $existingMount->getMountPoint() === $mount->getMountPoint()
+ && $existingMount->getApplicableGroups() === $mount->getApplicableGroups()
+ && $existingMount->getApplicableUsers() === $mount->getApplicableUsers()
+ && $existingMount->getBackendOptions() === $mount->getBackendOptions()
) {
$output->writeln('<error>Duplicate mount (' . $mount->getMountPoint() . ')</error>');
return self::FAILURE;
diff --git a/apps/files_external/lib/Command/ListCommand.php b/apps/files_external/lib/Command/ListCommand.php
index 84c1b569e9d..350916b6c2c 100644
--- a/apps/files_external/lib/Command/ListCommand.php
+++ b/apps/files_external/lib/Command/ListCommand.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Option.php b/apps/files_external/lib/Command/Option.php
index 6051c9c5fbd..3fda3fcb3cf 100644
--- a/apps/files_external/lib/Command/Option.php
+++ b/apps/files_external/lib/Command/Option.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Command/Scan.php b/apps/files_external/lib/Command/Scan.php
index 4f29dae1ce0..75d98878baa 100644
--- a/apps/files_external/lib/Command/Scan.php
+++ b/apps/files_external/lib/Command/Scan.php
@@ -54,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();
}
@@ -84,7 +89,15 @@ class Scan extends StorageAuthBase {
});
try {
- $scanner->scan($path);
+ 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::') {
diff --git a/apps/files_external/lib/Command/Verify.php b/apps/files_external/lib/Command/Verify.php
index 32c94fc582a..18cbc5a6774 100644
--- a/apps/files_external/lib/Command/Verify.php
+++ b/apps/files_external/lib/Command/Verify.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Config/ConfigAdapter.php b/apps/files_external/lib/Config/ConfigAdapter.php
index db53c8cf6c9..a46c0fd5c66 100644
--- a/apps/files_external/lib/Config/ConfigAdapter.php
+++ b/apps/files_external/lib/Config/ConfigAdapter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Config/ExternalMountPoint.php b/apps/files_external/lib/Config/ExternalMountPoint.php
index 0dc2eab5120..97569ed2913 100644
--- a/apps/files_external/lib/Config/ExternalMountPoint.php
+++ b/apps/files_external/lib/Config/ExternalMountPoint.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Config/IConfigHandler.php b/apps/files_external/lib/Config/IConfigHandler.php
index 2f1604e232b..9e8283cc58b 100644
--- a/apps/files_external/lib/Config/IConfigHandler.php
+++ b/apps/files_external/lib/Config/IConfigHandler.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Config/SimpleSubstitutionTrait.php b/apps/files_external/lib/Config/SimpleSubstitutionTrait.php
index 21269d7526e..85a76054fa8 100644
--- a/apps/files_external/lib/Config/SimpleSubstitutionTrait.php
+++ b/apps/files_external/lib/Config/SimpleSubstitutionTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Config/UserContext.php b/apps/files_external/lib/Config/UserContext.php
index 6fe679c60b2..fb5c79a9329 100644
--- a/apps/files_external/lib/Config/UserContext.php
+++ b/apps/files_external/lib/Config/UserContext.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Config/UserPlaceholderHandler.php b/apps/files_external/lib/Config/UserPlaceholderHandler.php
index ec91df5fb7a..d158e6923c1 100644
--- a/apps/files_external/lib/Config/UserPlaceholderHandler.php
+++ b/apps/files_external/lib/Config/UserPlaceholderHandler.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Controller/AjaxController.php b/apps/files_external/lib/Controller/AjaxController.php
index 4d5497b73cb..5cee6422530 100644
--- a/apps/files_external/lib/Controller/AjaxController.php
+++ b/apps/files_external/lib/Controller/AjaxController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php
index 466c4f6f551..132295f6b35 100644
--- a/apps/files_external/lib/Controller/GlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/GlobalStoragesController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php
index 72bcbd48a4c..18f8d3164b7 100644
--- a/apps/files_external/lib/Controller/StoragesController.php
+++ b/apps/files_external/lib/Controller/StoragesController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
index a7c4fc61997..5f428db9661 100644
--- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php
index 6d797b5818d..7b0c858e51b 100644
--- a/apps/files_external/lib/Controller/UserStoragesController.php
+++ b/apps/files_external/lib/Controller/UserStoragesController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/AmazonS3/AccessKey.php b/apps/files_external/lib/Lib/Auth/AmazonS3/AccessKey.php
index 04019404a90..c86c88a13d7 100644
--- a/apps/files_external/lib/Lib/Auth/AmazonS3/AccessKey.php
+++ b/apps/files_external/lib/Lib/Auth/AmazonS3/AccessKey.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/AuthMechanism.php b/apps/files_external/lib/Lib/Auth/AuthMechanism.php
index ebdf768cda3..dfe4a74b1b2 100644
--- a/apps/files_external/lib/Lib/Auth/AuthMechanism.php
+++ b/apps/files_external/lib/Lib/Auth/AuthMechanism.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Builtin.php b/apps/files_external/lib/Lib/Auth/Builtin.php
index cd4b8a22af4..8e12a6daca6 100644
--- a/apps/files_external/lib/Lib/Auth/Builtin.php
+++ b/apps/files_external/lib/Lib/Auth/Builtin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/IUserProvided.php b/apps/files_external/lib/Lib/Auth/IUserProvided.php
index 60f978f673d..2350d7f6db4 100644
--- a/apps/files_external/lib/Lib/Auth/IUserProvided.php
+++ b/apps/files_external/lib/Lib/Auth/IUserProvided.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_external/lib/Lib/Auth/InvalidAuth.php b/apps/files_external/lib/Lib/Auth/InvalidAuth.php
index d5a6fdcbe5d..2af24f1ea07 100644
--- a/apps/files_external/lib/Lib/Auth/InvalidAuth.php
+++ b/apps/files_external/lib/Lib/Auth/InvalidAuth.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
diff --git a/apps/files_external/lib/Lib/Auth/NullMechanism.php b/apps/files_external/lib/Lib/Auth/NullMechanism.php
index 7847c111415..8e2e5b656b2 100644
--- a/apps/files_external/lib/Lib/Auth/NullMechanism.php
+++ b/apps/files_external/lib/Lib/Auth/NullMechanism.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
index 688e04c4210..054c33f3b50 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
index b6c1e1d9557..beaf73c2344 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php
index 3be4169831b..3b1c9f123af 100644
--- a/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php
+++ b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/OpenStack/Rackspace.php b/apps/files_external/lib/Lib/Auth/OpenStack/Rackspace.php
index a47d2ea0ca8..b1d1068e586 100644
--- a/apps/files_external/lib/Lib/Auth/OpenStack/Rackspace.php
+++ b/apps/files_external/lib/Lib/Auth/OpenStack/Rackspace.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php b/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php
index ee23c28b993..916b496b506 100644
--- a/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php
+++ b/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2015 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
index 57df6316361..ce38140b6ee 100644
--- a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2015 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Password/Password.php b/apps/files_external/lib/Lib/Auth/Password/Password.php
index e3393233840..d4291148e3e 100644
--- a/apps/files_external/lib/Lib/Auth/Password/Password.php
+++ b/apps/files_external/lib/Lib/Auth/Password/Password.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
index 8af82ab228c..8f161073771 100644
--- a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/Password/UserProvided.php b/apps/files_external/lib/Lib/Auth/Password/UserProvided.php
index 7f937cf14c1..b158392f6eb 100644
--- a/apps/files_external/lib/Lib/Auth/Password/UserProvided.php
+++ b/apps/files_external/lib/Lib/Auth/Password/UserProvided.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2015 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
index 87072299d6d..ad95c743d2d 100644
--- a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
+++ b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php b/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php
index 8c2e2f3d6ec..8f58b71d5ac 100644
--- a/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php
+++ b/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Lib/Auth/SMB/KerberosAuth.php b/apps/files_external/lib/Lib/Auth/SMB/KerberosAuth.php
index e7a0884d1bd..9210209192a 100644
--- a/apps/files_external/lib/Lib/Auth/SMB/KerberosAuth.php
+++ b/apps/files_external/lib/Lib/Auth/SMB/KerberosAuth.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Lib/Backend/AmazonS3.php b/apps/files_external/lib/Lib/Backend/AmazonS3.php
index f71ca40cdfc..464b03b55e0 100644
--- a/apps/files_external/lib/Lib/Backend/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Backend/AmazonS3.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/Backend.php b/apps/files_external/lib/Lib/Backend/Backend.php
index f965e246d42..f7500ee24a4 100644
--- a/apps/files_external/lib/Lib/Backend/Backend.php
+++ b/apps/files_external/lib/Lib/Backend/Backend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/DAV.php b/apps/files_external/lib/Lib/Backend/DAV.php
index 9eb206f0272..dea9e7c5e77 100644
--- a/apps/files_external/lib/Lib/Backend/DAV.php
+++ b/apps/files_external/lib/Lib/Backend/DAV.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/FTP.php b/apps/files_external/lib/Lib/Backend/FTP.php
index cdf7d187b4d..72a8184c9b9 100644
--- a/apps/files_external/lib/Lib/Backend/FTP.php
+++ b/apps/files_external/lib/Lib/Backend/FTP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/InvalidBackend.php b/apps/files_external/lib/Lib/Backend/InvalidBackend.php
index 6082d46bd67..48912c0e49e 100644
--- a/apps/files_external/lib/Lib/Backend/InvalidBackend.php
+++ b/apps/files_external/lib/Lib/Backend/InvalidBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
diff --git a/apps/files_external/lib/Lib/Backend/LegacyBackend.php b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
index a74412e8373..9c7e5b01bc3 100644
--- a/apps/files_external/lib/Lib/Backend/LegacyBackend.php
+++ b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/Local.php b/apps/files_external/lib/Lib/Backend/Local.php
index 2902ba770c6..56940b8e83b 100644
--- a/apps/files_external/lib/Lib/Backend/Local.php
+++ b/apps/files_external/lib/Lib/Backend/Local.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/OwnCloud.php b/apps/files_external/lib/Lib/Backend/OwnCloud.php
index c0bd6891864..0c0e2c6d300 100644
--- a/apps/files_external/lib/Lib/Backend/OwnCloud.php
+++ b/apps/files_external/lib/Lib/Backend/OwnCloud.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/SFTP.php b/apps/files_external/lib/Lib/Backend/SFTP.php
index 93a5d87a5ff..0926cf7fd93 100644
--- a/apps/files_external/lib/Lib/Backend/SFTP.php
+++ b/apps/files_external/lib/Lib/Backend/SFTP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/SFTP_Key.php b/apps/files_external/lib/Lib/Backend/SFTP_Key.php
index a657dce66e5..278fae3fba7 100644
--- a/apps/files_external/lib/Lib/Backend/SFTP_Key.php
+++ b/apps/files_external/lib/Lib/Backend/SFTP_Key.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/SMB.php b/apps/files_external/lib/Lib/Backend/SMB.php
index 3549f69cbe3..4479ecdcaaa 100644
--- a/apps/files_external/lib/Lib/Backend/SMB.php
+++ b/apps/files_external/lib/Lib/Backend/SMB.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/SMB_OC.php b/apps/files_external/lib/Lib/Backend/SMB_OC.php
index 55edec8a464..bcb8d0fbf16 100644
--- a/apps/files_external/lib/Lib/Backend/SMB_OC.php
+++ b/apps/files_external/lib/Lib/Backend/SMB_OC.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Backend/Swift.php b/apps/files_external/lib/Lib/Backend/Swift.php
index 386604e6e1d..37527ba3dbb 100644
--- a/apps/files_external/lib/Lib/Backend/Swift.php
+++ b/apps/files_external/lib/Lib/Backend/Swift.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php b/apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php
index 1d0cc3cca78..0c2e90a243c 100644
--- a/apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php
+++ b/apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Config/IBackendProvider.php b/apps/files_external/lib/Lib/Config/IBackendProvider.php
index 3f66966950d..44c460c3138 100644
--- a/apps/files_external/lib/Lib/Config/IBackendProvider.php
+++ b/apps/files_external/lib/Lib/Config/IBackendProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/DefinitionParameter.php b/apps/files_external/lib/Lib/DefinitionParameter.php
index 3c668c6b83d..a73dd2df967 100644
--- a/apps/files_external/lib/Lib/DefinitionParameter.php
+++ b/apps/files_external/lib/Lib/DefinitionParameter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/DependencyTrait.php b/apps/files_external/lib/Lib/DependencyTrait.php
index 1d112532128..644132b82bc 100644
--- a/apps/files_external/lib/Lib/DependencyTrait.php
+++ b/apps/files_external/lib/Lib/DependencyTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/FrontendDefinitionTrait.php b/apps/files_external/lib/Lib/FrontendDefinitionTrait.php
index 5602345fe89..0f280d1d486 100644
--- a/apps/files_external/lib/Lib/FrontendDefinitionTrait.php
+++ b/apps/files_external/lib/Lib/FrontendDefinitionTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/IFrontendDefinition.php b/apps/files_external/lib/Lib/IFrontendDefinition.php
index 0184d5f536c..c8b06a1c30b 100644
--- a/apps/files_external/lib/Lib/IFrontendDefinition.php
+++ b/apps/files_external/lib/Lib/IFrontendDefinition.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Lib/IIdentifier.php b/apps/files_external/lib/Lib/IIdentifier.php
index df77d02b542..0677409a3cf 100644
--- a/apps/files_external/lib/Lib/IIdentifier.php
+++ b/apps/files_external/lib/Lib/IIdentifier.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Lib/IdentifierTrait.php b/apps/files_external/lib/Lib/IdentifierTrait.php
index ff7bb8a465e..f5ffde32307 100644
--- a/apps/files_external/lib/Lib/IdentifierTrait.php
+++ b/apps/files_external/lib/Lib/IdentifierTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php b/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php
index b2400f4be28..1e872b35072 100644
--- a/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php
+++ b/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/LegacyDependencyCheckPolyfill.php b/apps/files_external/lib/Lib/LegacyDependencyCheckPolyfill.php
index 313d4ae8cb2..f6311fae83e 100644
--- a/apps/files_external/lib/Lib/LegacyDependencyCheckPolyfill.php
+++ b/apps/files_external/lib/Lib/LegacyDependencyCheckPolyfill.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/MissingDependency.php b/apps/files_external/lib/Lib/MissingDependency.php
index da4cbb1de46..c2da7fcadbf 100644
--- a/apps/files_external/lib/Lib/MissingDependency.php
+++ b/apps/files_external/lib/Lib/MissingDependency.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php b/apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php
index deaf005e2c6..2812df6ad6a 100644
--- a/apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php
+++ b/apps/files_external/lib/Lib/Notify/SMBNotifyHandler.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Lib/PersonalMount.php b/apps/files_external/lib/Lib/PersonalMount.php
index 01daddd7e2a..d9dbddd1449 100644
--- a/apps/files_external/lib/Lib/PersonalMount.php
+++ b/apps/files_external/lib/Lib/PersonalMount.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/PriorityTrait.php b/apps/files_external/lib/Lib/PriorityTrait.php
index fef308a56dd..fad2c07e58c 100644
--- a/apps/files_external/lib/Lib/PriorityTrait.php
+++ b/apps/files_external/lib/Lib/PriorityTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/SessionStorageWrapper.php b/apps/files_external/lib/Lib/SessionStorageWrapper.php
index 06bece3bf7c..8754041b2fa 100644
--- a/apps/files_external/lib/Lib/SessionStorageWrapper.php
+++ b/apps/files_external/lib/Lib/SessionStorageWrapper.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php
index 47967a3908d..5dc9e114532 100644
--- a/apps/files_external/lib/Lib/Storage/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Storage/FTP.php b/apps/files_external/lib/Lib/Storage/FTP.php
index e23fc791297..944964de7a6 100644
--- a/apps/files_external/lib/Lib/Storage/FTP.php
+++ b/apps/files_external/lib/Lib/Storage/FTP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_external/lib/Lib/Storage/OwnCloud.php b/apps/files_external/lib/Lib/Storage/OwnCloud.php
index 1bcf19b460e..12c305de750 100644
--- a/apps/files_external/lib/Lib/Storage/OwnCloud.php
+++ b/apps/files_external/lib/Lib/Storage/OwnCloud.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Storage/SFTP.php b/apps/files_external/lib/Lib/Storage/SFTP.php
index 2619e678565..a2f5bafcca1 100644
--- a/apps/files_external/lib/Lib/Storage/SFTP.php
+++ b/apps/files_external/lib/Lib/Storage/SFTP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index fc1f9b9ecd1..0899d2ac093 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -198,7 +199,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 +427,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 +455,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 +476,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/StreamWrapper.php b/apps/files_external/lib/Lib/Storage/StreamWrapper.php
index 0490acc98e1..1272b9d4d8a 100644
--- a/apps/files_external/lib/Lib/Storage/StreamWrapper.php
+++ b/apps/files_external/lib/Lib/Storage/StreamWrapper.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/StorageConfig.php b/apps/files_external/lib/Lib/StorageConfig.php
index a9a03528b8f..2cb82d3790a 100644
--- a/apps/files_external/lib/Lib/StorageConfig.php
+++ b/apps/files_external/lib/Lib/StorageConfig.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/StorageModifierTrait.php b/apps/files_external/lib/Lib/StorageModifierTrait.php
index 4b9264f4223..4062ff1635e 100644
--- a/apps/files_external/lib/Lib/StorageModifierTrait.php
+++ b/apps/files_external/lib/Lib/StorageModifierTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Lib/VisibilityTrait.php b/apps/files_external/lib/Lib/VisibilityTrait.php
index 63aa709b21c..62b26f3edb1 100644
--- a/apps/files_external/lib/Lib/VisibilityTrait.php
+++ b/apps/files_external/lib/Lib/VisibilityTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Migration/DummyUserSession.php b/apps/files_external/lib/Migration/DummyUserSession.php
index 3d9412bd755..1ebf0e1ec4f 100644
--- a/apps/files_external/lib/Migration/DummyUserSession.php
+++ b/apps/files_external/lib/Migration/DummyUserSession.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/MountConfig.php b/apps/files_external/lib/MountConfig.php
index 2289a5008e5..a7d9e6f2603 100644
--- a/apps/files_external/lib/MountConfig.php
+++ b/apps/files_external/lib/MountConfig.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/NotFoundException.php b/apps/files_external/lib/NotFoundException.php
index 78fbda2a4b8..411a2212513 100644
--- a/apps/files_external/lib/NotFoundException.php
+++ b/apps/files_external/lib/NotFoundException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/BackendService.php b/apps/files_external/lib/Service/BackendService.php
index 586ce5330ad..3a688ee66e6 100644
--- a/apps/files_external/lib/Service/BackendService.php
+++ b/apps/files_external/lib/Service/BackendService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -258,8 +259,8 @@ class BackendService {
* @return bool
*/
protected function isAllowedUserBackend(Backend $backend) {
- if ($this->userMountingAllowed &&
- array_intersect($backend->getIdentifierAliases(), $this->userMountingBackends)
+ if ($this->userMountingAllowed
+ && array_intersect($backend->getIdentifierAliases(), $this->userMountingBackends)
) {
return true;
}
diff --git a/apps/files_external/lib/Service/DBConfigService.php b/apps/files_external/lib/Service/DBConfigService.php
index 3820f6b0d96..41ec4512d70 100644
--- a/apps/files_external/lib/Service/DBConfigService.php
+++ b/apps/files_external/lib/Service/DBConfigService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/GlobalStoragesService.php b/apps/files_external/lib/Service/GlobalStoragesService.php
index 92961d73228..5b1a9f41e48 100644
--- a/apps/files_external/lib/Service/GlobalStoragesService.php
+++ b/apps/files_external/lib/Service/GlobalStoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/ImportLegacyStoragesService.php b/apps/files_external/lib/Service/ImportLegacyStoragesService.php
index fe5e71c1a47..7d9840e9f5e 100644
--- a/apps/files_external/lib/Service/ImportLegacyStoragesService.php
+++ b/apps/files_external/lib/Service/ImportLegacyStoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_external/lib/Service/LegacyStoragesService.php b/apps/files_external/lib/Service/LegacyStoragesService.php
index 5be1a084b66..9f199a89b3f 100644
--- a/apps/files_external/lib/Service/LegacyStoragesService.php
+++ b/apps/files_external/lib/Service/LegacyStoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/StoragesService.php b/apps/files_external/lib/Service/StoragesService.php
index 73642d85f88..a12a8fc245a 100644
--- a/apps/files_external/lib/Service/StoragesService.php
+++ b/apps/files_external/lib/Service/StoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/UserGlobalStoragesService.php b/apps/files_external/lib/Service/UserGlobalStoragesService.php
index 01bc91ef3ff..aaa59c85d62 100644
--- a/apps/files_external/lib/Service/UserGlobalStoragesService.php
+++ b/apps/files_external/lib/Service/UserGlobalStoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/UserStoragesService.php b/apps/files_external/lib/Service/UserStoragesService.php
index defa97451cd..9d4192734b6 100644
--- a/apps/files_external/lib/Service/UserStoragesService.php
+++ b/apps/files_external/lib/Service/UserStoragesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Service/UserTrait.php b/apps/files_external/lib/Service/UserTrait.php
index 25713894e1f..679066283a5 100644
--- a/apps/files_external/lib/Service/UserTrait.php
+++ b/apps/files_external/lib/Service/UserTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/lib/Settings/Admin.php b/apps/files_external/lib/Settings/Admin.php
index 8476e87f3c6..9af0f3c61c1 100644
--- a/apps/files_external/lib/Settings/Admin.php
+++ b/apps/files_external/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Settings/Personal.php b/apps/files_external/lib/Settings/Personal.php
index f691c14270e..8478badb842 100644
--- a/apps/files_external/lib/Settings/Personal.php
+++ b/apps/files_external/lib/Settings/Personal.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Settings/PersonalSection.php b/apps/files_external/lib/Settings/PersonalSection.php
index df494edce27..c6eb1c6b889 100644
--- a/apps/files_external/lib/Settings/PersonalSection.php
+++ b/apps/files_external/lib/Settings/PersonalSection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/lib/Settings/Section.php b/apps/files_external/lib/Settings/Section.php
index 8bc0814bb67..cf3b73472d7 100644
--- a/apps/files_external/lib/Settings/Section.php
+++ b/apps/files_external/lib/Settings/Section.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/tests/Auth/AuthMechanismTest.php b/apps/files_external/tests/Auth/AuthMechanismTest.php
index 682d2e1326f..e999cecf181 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],
@@ -35,12 +37,10 @@ class AuthMechanismTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider validateStorageProvider
- */
- public function testValidateStorage($expectedSuccess, $scheme, $definitionSuccess): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('validateStorageProvider')]
+ 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 +48,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..6d83655403e 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 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..1653c354e16 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,19 +34,17 @@ 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],
];
}
- /**
- * @dataProvider validateStorageProvider
- */
- public function testValidateStorage($expectedSuccess, $definitionSuccess): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('validateStorageProvider')]
+ 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 cea46c1a0cd..c4ddfedf6e2 100644
--- a/apps/files_external/tests/Backend/LegacyBackendTest.php
+++ b/apps/files_external/tests/Backend/LegacyBackendTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -6,6 +7,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,18 +17,16 @@ 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',
@@ -43,7 +43,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());
@@ -74,11 +74,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..e42ad9cd68a 100644
--- a/apps/files_external/tests/Command/CommandTest.php
+++ b/apps/files_external/tests/Command/CommandTestCase.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,21 +10,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 +31,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 +70,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 +82,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..13d25ce5075 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']],
@@ -61,18 +53,14 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider optionProvider
- */
- public function testHandle($option, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('optionProvider')]
+ public function testHandle(string|array $option, string|array $expected): void {
$this->setUser();
$this->assertSame($expected, $this->handler->handle($option));
}
- /**
- * @dataProvider optionProvider
- */
- public function testHandleNoUser($option): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('optionProvider')]
+ 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..74a27eb15e4 100644
--- a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,6 +10,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 +19,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 +31,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..1eb52f9b459 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 [
[''],
['/'],
@@ -192,9 +186,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider mountPointNamesProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('mountPointNamesProvider')]
public function testAddOrUpdateStorageInvalidMountPoint($mountPoint): void {
$storageConfig = new StorageConfig(1);
$storageConfig->setMountPoint($mountPoint);
@@ -212,8 +204,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 +218,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,
[],
[],
[],
@@ -241,7 +233,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
public function testAddOrUpdateStorageInvalidBackend(): void {
$this->service->expects($this->exactly(2))
->method('createStorage')
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
$this->service->expects($this->never())
->method('addStorage');
$this->service->expects($this->never())
@@ -250,7 +242,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 +256,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
1,
'mount',
'\OC\Files\Storage\InvalidStorage',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -298,13 +290,13 @@ abstract class StoragesControllerTest extends \Test\TestCase {
->willReturn($storageConfig);
$this->service->expects($this->once())
->method('updateStorage')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$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,
[],
[],
[],
@@ -326,7 +318,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
public function testDeleteStorageNonExisting(): void {
$this->service->expects($this->once())
->method('removeStorage')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$response = $this->controller->destroy(255);
$this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus());
@@ -354,7 +346,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],
@@ -363,10 +355,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider validateStorageProvider
- */
- public function testValidateStorage($backendValidate, $authMechValidate, $expectSuccess): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('validateStorageProvider')]
+ public function testValidateStorage(bool $backendValidate, bool $authMechValidate, bool $expectSuccess): void {
$backend = $this->getBackendMock();
$backend->method('validateStorage')
->willReturn($backendValidate);
@@ -401,8 +391,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 3fc65eaf897..c535481bf66 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.
@@ -48,7 +50,7 @@ class DefinitionParameterTest extends \Test\TestCase {
], $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],
@@ -66,9 +68,7 @@ class DefinitionParameterTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider validateValueProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('validateValueProvider')]
public function testValidateValue($type, $flags, $value, $success, $expectedValue = null): void {
$param = new Param('foo', 'bar');
$param->setType($type);
diff --git a/apps/files_external/tests/FrontendDefinitionTraitTest.php b/apps/files_external/tests/FrontendDefinitionTraitTest.php
index bc5d88ff3f0..e0bf066e70a 100644
--- a/apps/files_external/tests/FrontendDefinitionTraitTest.php
+++ b/apps/files_external/tests/FrontendDefinitionTraitTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,6 +8,7 @@
namespace OCA\Files_External\Tests;
use OCA\Files_External\Lib\DefinitionParameter;
+use OCA\Files_External\Lib\FrontendDefinitionTrait;
use OCA\Files_External\Lib\StorageConfig;
class FrontendDefinitionTraitTest extends \Test\TestCase {
@@ -16,7 +18,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
->getMock();
$param->method('getName')->willReturn('foo');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameters([$param]);
$trait->addCustomJs('foo/bar.js');
@@ -32,17 +34,15 @@ 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]]
];
}
- /**
- * @dataProvider validateStorageProvider
- */
- public function testValidateStorage($expectedSuccess, $params): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('validateStorageProvider')]
+ 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(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(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..d26aa752ea1 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.
@@ -6,6 +8,7 @@
*/
namespace OCA\Files_External\Tests;
+use OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
use OCA\Files_External\Lib\MissingDependency;
class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
@@ -13,7 +16,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 +24,10 @@ class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
}
public function testCheckDependencies(): void {
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill');
+ $trait = $this->getMockForTrait(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..2e052cb86b0 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 [
[
[
@@ -85,10 +87,8 @@ class OwnCloudFunctionsTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider configUrlProvider
- */
- public function testConfig($config, $expectedUri): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('configUrlProvider')]
+ 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 c3a77d81b67..ef545688040 100644
--- a/apps/files_external/tests/Service/BackendServiceTest.php
+++ b/apps/files_external/tests/Service/BackendServiceTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,25 +14,20 @@ use OCA\Files_External\Lib\Config\IAuthMechanismProvider;
use OCA\Files_External\Lib\Config\IBackendProvider;
use OCA\Files_External\Service\BackendService;
use OCP\IAppConfig;
+use PHPUnit\Framework\MockObject\MockObject;
class BackendServiceTest extends \Test\TestCase {
-
- /** @var IAppConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $appConfig;
+ protected IAppConfig&MockObject $appConfig;
protected function setUp(): void {
$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,12 +36,10 @@ 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;
@@ -56,10 +50,8 @@ class BackendServiceTest extends \Test\TestCase {
$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')
@@ -85,7 +77,7 @@ class BackendServiceTest extends \Test\TestCase {
$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')
@@ -104,7 +96,7 @@ class BackendServiceTest extends \Test\TestCase {
$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')
@@ -125,13 +117,13 @@ class BackendServiceTest extends \Test\TestCase {
$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')
@@ -202,7 +194,7 @@ class BackendServiceTest extends \Test\TestCase {
$this->assertArrayNotHasKey('identifier:\Backend\NotAvailable', $availableBackends);
}
- public function invalidConfigPlaceholderProvider() {
+ public static function invalidConfigPlaceholderProvider(): array {
return [
[['@user']],
[['$user']],
@@ -216,9 +208,7 @@ class BackendServiceTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider invalidConfigPlaceholderProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('invalidConfigPlaceholderProvider')]
public function testRegisterConfigHandlerInvalid(array $placeholders): void {
$this->expectException(\RuntimeException::class);
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..0a3749981c8 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
[
@@ -113,9 +115,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
];
}
- /**
- * @dataProvider storageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('storageDataProvider')]
public function testAddStorage($storageParams): void {
$storage = $this->makeStorageConfig($storageParams);
$newStorage = $this->service->addStorage($storage);
@@ -137,9 +137,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
$this->assertEquals($baseId + 1, $nextStorage->getId());
}
- /**
- * @dataProvider storageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('storageDataProvider')]
public function testUpdateStorage($updatedStorageParams): void {
$updatedStorage = $this->makeStorageConfig($updatedStorageParams);
$storage = $this->makeStorageConfig([
@@ -166,13 +164,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
[
@@ -279,9 +277,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
];
}
- /**
- * @dataProvider hooksAddStorageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('hooksAddStorageDataProvider')]
public function testHooksAddStorage($applicableUsers, $applicableGroups, $expectedCalls): void {
$storage = $this->makeTestStorageData();
$storage->setApplicableUsers($applicableUsers);
@@ -301,7 +297,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksUpdateStorageDataProvider() {
+ public static function hooksUpdateStorageDataProvider(): array {
return [
[
// nothing to multiple users and groups
@@ -417,15 +413,14 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
];
}
- /**
- * @dataProvider hooksUpdateStorageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\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 +527,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksDeleteStorageDataProvider() {
+ public static function hooksDeleteStorageDataProvider(): array {
return [
[
['user1', 'user2'],
@@ -576,13 +571,12 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
];
}
- /**
- * @dataProvider hooksDeleteStorageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\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..b41eb409468 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
[
@@ -283,10 +250,8 @@ abstract class StoragesServiceTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider deleteStorageDataProvider
- */
- public function testDeleteStorage($backendOptions, $rustyStorageId): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('deleteStorageDataProvider')]
+ 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 +428,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..2a2f4596fda 100644
--- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,6 +17,7 @@ use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
/**
@@ -24,20 +26,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 +40,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 +78,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
);
}
- public function applicableStorageProvider() {
+ public static function applicableStorageProvider(): array {
return [
[[], [], true],
@@ -107,9 +98,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
];
}
- /**
- * @dataProvider applicableStorageProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('applicableStorageProvider')]
public function testGetStorageWithApplicable($applicableUsers, $applicableGroups, $isVisible): void {
$backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\SMB');
$authMechanism = $this->backendService->getAuthMechanism('identifier:\Auth\Mechanism');
@@ -183,9 +172,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->ActualNonExistingStorageTest();
}
- /**
- * @dataProvider deleteStorageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('deleteStorageDataProvider')]
public function testDeleteStorage($backendOptions, $rustyStorageId): void {
$this->expectException(\DomainException::class);
@@ -211,7 +198,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],
@@ -239,9 +226,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
];
}
- /**
- * @dataProvider getUniqueStoragesProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('getUniqueStoragesProvider')]
public function testGetUniqueStorages(
$priority1, $applicableUsers1, $applicableGroups1,
$priority2, $applicableUsers2, $applicableGroups2,
diff --git a/apps/files_external/tests/Service/UserStoragesServiceTest.php b/apps/files_external/tests/Service/UserStoragesServiceTest.php
index a7b9f200417..0a2f291f6e4 100644
--- a/apps/files_external/tests/Service/UserStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserStoragesServiceTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,6 +8,7 @@
namespace OCA\Files_External\Tests\Service;
use OC\Files\Filesystem;
+use OC\User\User;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\MountConfig;
use OCA\Files_External\NotFoundException;
@@ -17,22 +19,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;
-
- private $userId;
+ protected User $user;
- /**
- * @var StoragesService
- */
- protected $globalStoragesService;
+ protected string $userId;
+ protected StoragesService $globalStoragesService;
protected function setUp(): void {
parent::setUp();
@@ -43,7 +42,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())
@@ -129,9 +128,7 @@ class UserStoragesServiceTest extends StoragesServiceTest {
$this->assertEmpty(self::$hookCalls);
}
- /**
- * @dataProvider deleteStorageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('deleteStorageDataProvider')]
public function testDeleteStorage($backendOptions, $rustyStorageId): void {
parent::testDeleteStorage($backendOptions, $rustyStorageId);
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 81b92e0fae9..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.
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..ebfc8ab3c1f 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.
@@ -44,15 +46,13 @@ class SftpTest extends \Test\Files\Storage\Storage {
parent::tearDown();
}
- /**
- * @dataProvider configProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('configProvider')]
public function testStorageId($config, $expectedStorageId): void {
$instance = new SFTP($config);
$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 51737d05dc6..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.
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/config.php b/apps/files_external/tests/config.php
index 13fc0c2401e..ec860cf05a4 100644
--- a/apps/files_external/tests/config.php
+++ b/apps/files_external/tests/config.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2012-2016 ownCloud, Inc.
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/fr.js b/apps/files_reminders/l10n/fr.js
index 5db5e281323..2047eabb255 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 files_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..107c89ef133 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 files_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/sw.js b/apps/files_reminders/l10n/sw.js
new file mode 100644
index 00000000000..92d9d55fb40
--- /dev/null
+++ b/apps/files_reminders/l10n/sw.js
@@ -0,0 +1,37 @@
+OC.L10N.register(
+ "files_reminders",
+ {
+ "File reminders" : "Vikumbusho vya faili",
+ "Reminder for {name}" : " Kikumbusho kwa {name}",
+ "View file" : "Tazama faili",
+ "View folder" : "Tazama folda",
+ "Files reminder" : "Kikumbusho cha faili",
+ "The \"files_reminders\" app can work properly." : "Programu ya \"files_reminders\" inaweza kufanya kazi ipasavyo.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "Programu ya \"files_reminders\" inahitaji programu ya arifa kufanya kazi ipasavyo. Unapaswa kuwezesha arifa au kuzima kikumbusho cha faili.",
+ "Set file reminders" : "Weka vikumbusho vya faili",
+ "**📣 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." : "**📣 Vikumbusho vya faili**\n\nWeka vikumbusho vya faili.\n\nKumbuka: ili kutumia programu ya `Vikumbusho vya faili`, hakikisha kuwa programu ya `Arifa` imesakinishwa na kuwashwa. Programu ya `Arifa` hutoa API zinazohitajika ili programu ya `Vikumbusho vya Faili` ifanye kazi ipasavyo.",
+ "Set reminder for \"{fileName}\"" : "Weka kikumbusho kwa \"{fileName}\"",
+ "Set reminder at custom date & time" : "Weka kikumbusho kwa tarehe na saa maalum",
+ "Clear reminder" : "Futa kikumbusho ",
+ "Please choose a valid date & time" : " Tafadhali chagua tarehe na saa halali",
+ "Reminder set for \"{fileName}\"" : " Kikumbusho kimewekwa \"{fileName}\"",
+ "Failed to set reminder" : "Imeshindwa kuweka kikumbusho",
+ "Reminder cleared for \"{fileName}\"" : "Kikumbusho kimefutwa kwa \"{fileName}\"",
+ "Failed to clear reminder" : "Imeshindwa kufuta kikumbusho",
+ "We will remind you of this file" : "Tutakukumbusha kuhusu faili hii",
+ "Cancel" : "Ghairi",
+ "Set reminder" : "Weka ukumbusho",
+ "Reminder set" : " Kikumbusho kimewekwa",
+ "Set custom reminder" : " Weka kikumbusho maalum",
+ "Later today" : "Baadaye leo",
+ "Set reminder for later today" : "Weka kikumbusho cha baadaye leo",
+ "Tomorrow" : "Kesho",
+ "Set reminder for tomorrow" : "Weka kikumbusho cha kesho",
+ "This weekend" : "Wikendi hii",
+ "Set reminder for this weekend" : "Weka kikumbusho cha wikendi hii",
+ "Next week" : "Wiki ijayo",
+ "Set reminder for next week" : " Weka kikumbusho cha wiki ijayo",
+ "This files_reminder can work properly." : " Kikumbusho hiki cha faili kinaweza kufanya kazi vizuri.",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "Programu ya kikumbusho cha faili inahitaji programu ya arifa kufanya kazi vizuri. Unapaswa kuwezesha arifa au kuzima kikumbusho cha faili"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_reminders/l10n/sw.json b/apps/files_reminders/l10n/sw.json
new file mode 100644
index 00000000000..35a3f951171
--- /dev/null
+++ b/apps/files_reminders/l10n/sw.json
@@ -0,0 +1,35 @@
+{ "translations": {
+ "File reminders" : "Vikumbusho vya faili",
+ "Reminder for {name}" : " Kikumbusho kwa {name}",
+ "View file" : "Tazama faili",
+ "View folder" : "Tazama folda",
+ "Files reminder" : "Kikumbusho cha faili",
+ "The \"files_reminders\" app can work properly." : "Programu ya \"files_reminders\" inaweza kufanya kazi ipasavyo.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "Programu ya \"files_reminders\" inahitaji programu ya arifa kufanya kazi ipasavyo. Unapaswa kuwezesha arifa au kuzima kikumbusho cha faili.",
+ "Set file reminders" : "Weka vikumbusho vya faili",
+ "**📣 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." : "**📣 Vikumbusho vya faili**\n\nWeka vikumbusho vya faili.\n\nKumbuka: ili kutumia programu ya `Vikumbusho vya faili`, hakikisha kuwa programu ya `Arifa` imesakinishwa na kuwashwa. Programu ya `Arifa` hutoa API zinazohitajika ili programu ya `Vikumbusho vya Faili` ifanye kazi ipasavyo.",
+ "Set reminder for \"{fileName}\"" : "Weka kikumbusho kwa \"{fileName}\"",
+ "Set reminder at custom date & time" : "Weka kikumbusho kwa tarehe na saa maalum",
+ "Clear reminder" : "Futa kikumbusho ",
+ "Please choose a valid date & time" : " Tafadhali chagua tarehe na saa halali",
+ "Reminder set for \"{fileName}\"" : " Kikumbusho kimewekwa \"{fileName}\"",
+ "Failed to set reminder" : "Imeshindwa kuweka kikumbusho",
+ "Reminder cleared for \"{fileName}\"" : "Kikumbusho kimefutwa kwa \"{fileName}\"",
+ "Failed to clear reminder" : "Imeshindwa kufuta kikumbusho",
+ "We will remind you of this file" : "Tutakukumbusha kuhusu faili hii",
+ "Cancel" : "Ghairi",
+ "Set reminder" : "Weka ukumbusho",
+ "Reminder set" : " Kikumbusho kimewekwa",
+ "Set custom reminder" : " Weka kikumbusho maalum",
+ "Later today" : "Baadaye leo",
+ "Set reminder for later today" : "Weka kikumbusho cha baadaye leo",
+ "Tomorrow" : "Kesho",
+ "Set reminder for tomorrow" : "Weka kikumbusho cha kesho",
+ "This weekend" : "Wikendi hii",
+ "Set reminder for this weekend" : "Weka kikumbusho cha wikendi hii",
+ "Next week" : "Wiki ijayo",
+ "Set reminder for next week" : " Weka kikumbusho cha wiki ijayo",
+ "This files_reminder can work properly." : " Kikumbusho hiki cha faili kinaweza kufanya kazi vizuri.",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "Programu ya kikumbusho cha faili inahitaji programu ya arifa kufanya kazi vizuri. Unapaswa kuwezesha arifa au kuzima kikumbusho cha faili"
+},"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/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/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index f86aeedd2c2..f9e10ebb106 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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 f1f2b87e7e4..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" : "شارِك مع مجموعة",
@@ -382,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" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -412,16 +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" : "الملفّات",
- "Download all files" : "تنزيل كافة الملفات",
- "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" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
+ "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} عناوين إيميل تمت إضافتها"],
- "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة"
+ "Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
+ "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "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 e992b33fcb7..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" : "شارِك مع مجموعة",
@@ -380,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" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -410,16 +405,17 @@
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
- "Files" : "الملفّات",
- "Download all files" : "تنزيل كافة الملفات",
- "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" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
+ "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} عناوين إيميل تمت إضافتها"],
- "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة"
+ "Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
+ "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "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 b2d3d998762..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",
@@ -382,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",
@@ -412,16 +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",
- "Download all files" : "Baixa tots els fitxers",
- "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",
+ "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"],
- "Email, federated cloud id" : "Correu, identificador del núvol federat"
+ "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
+ "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
+ "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 80c01c4b562..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",
@@ -380,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",
@@ -410,16 +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",
- "Download all files" : "Baixa tots els fitxers",
- "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",
+ "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"],
- "Email, federated cloud id" : "Correu, identificador del núvol federat"
+ "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
+ "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
+ "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 b81d24b6513..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,7 +308,10 @@ 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.",
@@ -370,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Stáhnout všechny soubory",
- "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",
+ "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",
+ "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"
+ "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 fc3d8509e17..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,7 +306,10 @@
"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.",
@@ -368,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",
@@ -380,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",
@@ -410,17 +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",
- "Download all files" : "Stáhnout všechny soubory",
- "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",
+ "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",
+ "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"
+ "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 de52d70bb36..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",
@@ -382,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",
@@ -412,16 +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",
- "Download all files" : "Download alle filer",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, sammenkoblings cloud id"
+ "Search for share recipients" : "Søge efter delemodtagerefor share recipients",
+ "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "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 9cfd2f58530..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",
@@ -380,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",
@@ -410,16 +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",
- "Download all files" : "Download alle filer",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, sammenkoblings cloud id"
+ "Search for share recipients" : "Søge efter delemodtagerefor share recipients",
+ "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "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 f6aa0685ab2..924bb029de8 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -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,11 +305,12 @@ 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",
@@ -359,7 +355,7 @@ OC.L10N.register(
"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 mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "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",
@@ -367,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",
@@ -384,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",
@@ -414,17 +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",
- "Download all files" : "Alle Dateien herunterladen",
- "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",
+ "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.",
+ "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"
+ "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 52b17773dbd..05ff5637b68 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -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,11 +303,12 @@
"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",
@@ -357,7 +353,7 @@
"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 mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "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",
@@ -365,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Alle Dateien herunterladen",
- "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",
+ "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.",
+ "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"
+ "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 1269c6a0cfb..42f8084872a 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -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,11 +305,12 @@ 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",
@@ -348,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",
+ "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",
@@ -367,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",
@@ -384,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",
@@ -414,17 +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",
- "Download all files" : "Alle Dateien herunterladen",
- "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",
+ "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.",
+ "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"
+ "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 0a61a725d3e..875aa3a5f6c 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -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,11 +303,12 @@
"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",
@@ -346,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",
+ "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",
@@ -365,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Alle Dateien herunterladen",
- "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",
+ "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.",
+ "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"
+ "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 bc251e25b28..913f08150a7 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",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error deleting the share: {errorMessage}" : "Error deleting the share: {errorMessage}",
+ "Error deleting the share" : "Error deleting the share",
"Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
"Error updating the share" : "Error updating the share",
"File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
@@ -384,6 +382,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",
@@ -414,17 +423,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",
- "Download all files" : "Download all files",
- "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",
+ "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.",
+ "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"
+ "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 5c90c9dd3a4..f9a6190251e 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",
@@ -313,6 +308,7 @@
"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}",
@@ -370,6 +366,8 @@
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error deleting the share: {errorMessage}" : "Error deleting the share: {errorMessage}",
+ "Error deleting the share" : "Error deleting the share",
"Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
"Error updating the share" : "Error updating the share",
"File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
@@ -382,6 +380,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",
@@ -412,17 +421,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",
- "Download all files" : "Download all files",
- "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",
+ "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.",
+ "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"
+ "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 11c78e8daf2..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",
@@ -370,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Descargar todos los archivos",
- "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",
+ "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.",
+ "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"
+ "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 b04f7a769ad..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",
@@ -368,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",
@@ -380,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",
@@ -410,17 +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",
- "Download all files" : "Descargar todos los archivos",
- "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",
+ "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.",
+ "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"
+ "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 4936e43efc1..c8f541077f4 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -80,15 +80,18 @@ OC.L10N.register(
"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 ei õnnestunud lukustada",
+ "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“",
@@ -113,6 +116,7 @@ OC.L10N.register(
"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.",
@@ -181,7 +185,7 @@ OC.L10N.register(
"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",
@@ -230,7 +234,7 @@ OC.L10N.register(
"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…",
@@ -253,14 +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}",
- "Submit name" : "Salvesta nimi",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
- "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
- "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",
@@ -284,6 +283,7 @@ 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",
@@ -306,8 +306,11 @@ OC.L10N.register(
"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}",
@@ -356,7 +359,7 @@ OC.L10N.register(
"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äringus saavad olema nähtavad siin.",
+ "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",
@@ -365,6 +368,8 @@ OC.L10N.register(
"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",
@@ -377,6 +382,17 @@ 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",
@@ -407,17 +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",
- "Search for share recipients" : "Otsi jaosmeedia saajaid",
- "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"],
+ "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"
+ "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 85ded811275..3926f473c7c 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -78,15 +78,18 @@
"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 ei õnnestunud lukustada",
+ "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“",
@@ -111,6 +114,7 @@
"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.",
@@ -179,7 +183,7 @@
"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",
@@ -228,7 +232,7 @@
"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…",
@@ -251,14 +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}",
- "Submit name" : "Salvesta nimi",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
- "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
- "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",
@@ -282,6 +281,7 @@
"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",
@@ -304,8 +304,11 @@
"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}",
@@ -354,7 +357,7 @@
"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äringus saavad olema nähtavad siin.",
+ "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",
@@ -363,6 +366,8 @@
"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",
@@ -375,6 +380,17 @@
"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",
@@ -405,17 +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",
- "Search for share recipients" : "Otsi jaosmeedia saajaid",
- "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"],
+ "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"
+ "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 07989259c35..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" : "پیوند به یک پرونده",
@@ -158,6 +158,7 @@ OC.L10N.register(
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
"Public file share" : "اشتراک عمومی پرونده",
"Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
@@ -215,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 417bcc39e94..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" : "پیوند به یک پرونده",
@@ -156,6 +156,7 @@
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
"Public file share" : "اشتراک عمومی پرونده",
"Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
@@ -213,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 3f64ecb6e64..b2676a3670b 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,7 +308,10 @@ 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",
@@ -368,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 pour téléverser des fichiers dans {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Les noms ne doivent pas être vides.",
+ "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",
@@ -410,16 +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",
- "Download all files" : "Télécharger tous les fichiers",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, ID de cloud fédéré"
+ "Search for share recipients" : "Recherche de destinataires de partages",
+ "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "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 412370041ff..e97302d656d 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,7 +306,10 @@
"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",
@@ -366,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 pour téléverser des fichiers dans {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Les noms ne doivent pas être vides.",
+ "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",
@@ -408,16 +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",
- "Download all files" : "Télécharger tous les fichiers",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, ID de cloud fédéré"
+ "Search for share recipients" : "Recherche de destinataires de partages",
+ "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "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 f8ddae9a8ea..3544d011fb1 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",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "Liosta scaireanna neamhcheadaithe.",
"No pending shares" : "Gan scaireanna ar feitheamh",
"Shares you have received but not approved will show up here" : "Taispeánfar scaireanna atá faighte agat ach nár faomhadh anseo",
+ "Error deleting the share: {errorMessage}" : "Earráid ag scriosadh an chomhroinnte: {errorMessage}",
+ "Error deleting the share" : "Earráid ag scriosadh an chomhroinnte",
"Error updating the share: {errorMessage}" : "Earráid agus an sciar á nuashonrú: {errorMessage}",
"Error updating the share" : "Earráid agus an sciar á nuashonrú",
"File \"{path}\" has been unshared" : "Comhad \"{path}\" díroinnte",
@@ -384,6 +382,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",
@@ -414,17 +423,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",
- "Download all files" : "Gach comhaid a íoslódáil",
- "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",
+ "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.",
+ "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"
+ "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 f556e802f52..060b111ae6c 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",
@@ -313,6 +308,7 @@
"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}",
@@ -370,6 +366,8 @@
"List of unapproved shares." : "Liosta scaireanna neamhcheadaithe.",
"No pending shares" : "Gan scaireanna ar feitheamh",
"Shares you have received but not approved will show up here" : "Taispeánfar scaireanna atá faighte agat ach nár faomhadh anseo",
+ "Error deleting the share: {errorMessage}" : "Earráid ag scriosadh an chomhroinnte: {errorMessage}",
+ "Error deleting the share" : "Earráid ag scriosadh an chomhroinnte",
"Error updating the share: {errorMessage}" : "Earráid agus an sciar á nuashonrú: {errorMessage}",
"Error updating the share" : "Earráid agus an sciar á nuashonrú",
"File \"{path}\" has been unshared" : "Comhad \"{path}\" díroinnte",
@@ -382,6 +380,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",
@@ -412,17 +421,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",
- "Download all files" : "Gach comhaid a íoslódáil",
- "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",
+ "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.",
+ "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"
+ "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 e4e22208e85..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",
@@ -368,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}».",
@@ -380,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",
@@ -410,16 +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",
- "Download all files" : "Descargar todos os ficheiros",
- "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",
+ "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"],
- "Email, federated cloud id" : "Correo-e, ID da nube federada"
+ "Search for share recipients" : "Buscar destinatarios de comparticións",
+ "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
+ "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 a160b911d21..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",
@@ -366,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}».",
@@ -378,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",
@@ -408,16 +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",
- "Download all files" : "Descargar todos os ficheiros",
- "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",
+ "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"],
- "Email, federated cloud id" : "Correo-e, ID da nube federada"
+ "Search for share recipients" : "Buscar destinatarios de comparticións",
+ "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
+ "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 be0b3053f38..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",
@@ -354,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ð",
@@ -384,15 +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",
- "Download all files" : "Sækja allar skrár",
- "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.",
+ "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ð"],
- "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)"
+ "Search for share recipients" : "Leita að viðtakendum sameignar",
+ "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
+ "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 02dcf39b0f0..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",
@@ -352,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ð",
@@ -382,15 +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",
- "Download all files" : "Sækja allar skrár",
- "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.",
+ "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ð"],
- "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)"
+ "Search for share recipients" : "Leita að viðtakendum sameignar",
+ "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
+ "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 5ca25ca3da1..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",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,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",
@@ -384,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",
@@ -414,17 +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",
- "Download all files" : "Scarica tutti i file",
- "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",
+ "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.",
+ "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"
+ "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 106ae7b7630..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",
@@ -313,6 +308,7 @@
"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}",
@@ -370,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Scarica tutti i file",
- "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",
+ "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.",
+ "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"
+ "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 062614d2fe3..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,7 +308,10 @@ 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." : "この共有は期限切れになりました。",
@@ -370,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}\" が共有解除されました",
@@ -382,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" : "パスワードが正常に作成されました",
@@ -412,16 +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" : "ファイル",
- "Download all files" : "すべてのファイルをダウンロード",
- "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" : "あなたが所有していない共有リンクを編集することは許可されていません",
+ "Download all files" : "すべてのファイルをダウンロード",
"_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
"_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
- "Email, federated cloud id" : "電子メール、連携クラウドID"
+ "Search for share recipients" : "共有の受信者を検索",
+ "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
+ "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 c2657abce02..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,7 +306,10 @@
"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." : "この共有は期限切れになりました。",
@@ -368,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}\" が共有解除されました",
@@ -380,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" : "パスワードが正常に作成されました",
@@ -410,16 +421,18 @@
"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." : "推奨事項はありません。 入力を開始します。",
- "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" : "あなたが所有していない共有リンクを編集することは許可されていません",
+ "Download all files" : "すべてのファイルをダウンロード",
"_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
"_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
- "Email, federated cloud id" : "電子メール、連携クラウドID"
+ "Search for share recipients" : "共有の受信者を検索",
+ "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
+ "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 6c6967c59a8..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,7 +304,7 @@ 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" : "계정 및 팀과 공유",
@@ -384,6 +377,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" : "암호가 성공적으로 생성됨",
@@ -414,17 +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" : "파일",
- "Download all files" : "모든 파일 다운로드",
- "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" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
+ "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." : "추천 없음. 타이핑을 시작하십시오",
+ "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"
+ "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 d08e914da29..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,7 +302,7 @@
"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" : "계정 및 팀과 공유",
@@ -382,6 +375,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" : "암호가 성공적으로 생성됨",
@@ -412,17 +407,18 @@
"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." : "추천 없음. 타이핑을 시작하십시오",
- "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" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
+ "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." : "추천 없음. 타이핑을 시작하십시오",
+ "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"
+ "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 0c5e7b6b39d..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" : "Сподели со група",
@@ -359,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}\" повеќе не се споделува",
@@ -369,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" : "Успрешно е креирана лозинка",
@@ -399,15 +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" : "Датотеки",
- "Download all files" : "Преземи ги сите датотеки",
- "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" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
+ "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} е-пошта адреси се додадени"],
- "Email, federated cloud id" : "Е-пошта, федерален ИД"
+ "Search for share recipients" : "Пребарај за примачи на споделувањето",
+ "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
+ "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 e96fdbbce84..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" : "Сподели со група",
@@ -357,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}\" повеќе не се споделува",
@@ -367,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" : "Успрешно е креирана лозинка",
@@ -397,15 +403,17 @@
"No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
"Invalid server URL" : "Неправилна URL на сервер",
"Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
- "Files" : "Датотеки",
- "Download all files" : "Преземи ги сите датотеки",
- "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" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
+ "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} е-пошта адреси се додадени"],
- "Email, federated cloud id" : "Е-пошта, федерален ИД"
+ "Search for share recipients" : "Пребарај за примачи на споделувањето",
+ "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
+ "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 369d8eb5eab..9737349cafc 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -185,7 +185,7 @@ 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: {date}" : "Data wygaśnięcia udostępnienia: {date}",
"Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
@@ -257,14 +257,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 +293,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,7 +308,10 @@ 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",
+ "Federated cloud ID" : "Federacyjny identyfikator chmury",
+ "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.",
@@ -370,6 +368,8 @@ 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: {errorMessage}" : "Błąd podczas usuwania udostępnienia: {errorMessage}",
+ "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}\"",
@@ -382,6 +382,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",
@@ -412,17 +423,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",
- "Download all files" : "Pobierz wszystkie pliki",
- "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",
+ "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ć.",
+ "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"
+ "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 278d634474f..5d4b320ffa4 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -183,7 +183,7 @@
"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: {date}" : "Data wygaśnięcia udostępnienia: {date}",
"Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
@@ -255,14 +255,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 +291,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,7 +306,10 @@
"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",
+ "Federated cloud ID" : "Federacyjny identyfikator chmury",
+ "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.",
@@ -368,6 +366,8 @@
"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: {errorMessage}" : "Błąd podczas usuwania udostępnienia: {errorMessage}",
+ "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}\"",
@@ -380,6 +380,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",
@@ -410,17 +421,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",
- "Download all files" : "Pobierz wszystkie pliki",
- "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",
+ "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ć.",
+ "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"
+ "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 fa2ed461add..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.",
@@ -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,10 +209,10 @@ 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" : "Copiar link público de \"{title}\" para a área de transferência",
@@ -226,14 +226,14 @@ OC.L10N.register(
"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",
@@ -251,20 +251,15 @@ 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" : "Depósito de arquivos",
- "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.",
+ "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}" : "Compartilhar com {userName}",
"Share with email {email}" : "Compartilhar com e-mail {email}",
"Share with group" : "Compartilhar com grupo",
@@ -274,7 +269,7 @@ OC.L10N.register(
"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,12 +291,12 @@ 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",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -364,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",
@@ -380,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 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",
@@ -414,17 +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",
- "Download all files" : "Baixar todos os arquivos",
- "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",
+ "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.",
+ "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"
+ "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 36233e767db..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.",
@@ -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,10 +207,10 @@
"{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" : "Copiar link público de \"{title}\" para a área de transferência",
@@ -224,14 +224,14 @@
"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",
@@ -249,20 +249,15 @@
"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" : "Depósito de arquivos",
- "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.",
+ "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}" : "Compartilhar com {userName}",
"Share with email {email}" : "Compartilhar com e-mail {email}",
"Share with group" : "Compartilhar com grupo",
@@ -272,7 +267,7 @@
"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,12 +289,12 @@
"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",
@@ -313,6 +308,7 @@
"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}",
@@ -362,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",
@@ -378,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 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",
@@ -412,17 +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",
- "Download all files" : "Baixar todos os arquivos",
- "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",
+ "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.",
+ "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"
+ "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 782c58d0673..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,13 +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" : "Внешние ссылки",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
"Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
"Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
@@ -352,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}»",
@@ -361,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" : "Пароль создан",
@@ -393,13 +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" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
- "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака"
+ "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 12de42f1966..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,13 +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" : "Внешние ссылки",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
"Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
"Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
@@ -350,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}»",
@@ -359,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" : "Пароль создан",
@@ -391,13 +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" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
- "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака"
+ "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 9c8159b8f8c..fd3d247f573 100644
--- a/apps/files_sharing/l10n/sc.js
+++ b/apps/files_sharing/l10n/sc.js
@@ -156,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",
@@ -237,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 501522cb184..3962119a2ef 100644
--- a/apps/files_sharing/l10n/sc.json
+++ b/apps/files_sharing/l10n/sc.json
@@ -154,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",
@@ -235,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 764171382db..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",
@@ -370,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.",
@@ -382,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é.",
@@ -412,16 +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",
- "Download all files" : "Stiahnuť všetky súbory",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, id federovaného cloudu"
+ "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
+ "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
+ "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 506a19fff84..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",
@@ -368,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.",
@@ -380,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é.",
@@ -410,16 +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",
- "Download all files" : "Stiahnuť všetky súbory",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-mail, id federovaného cloudu"
+ "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
+ "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
+ "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 26f8840d067..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,7 +308,10 @@ 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." : "ово дељење је управо истекло.",
@@ -370,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}” се више не дели",
@@ -382,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" : "Лозинка је успешно креирана",
@@ -412,17 +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" : "Фајлови",
- "Download all files" : "Преузми све фајлове",
- "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" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
+ "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." : "Нема препорука. Започните куцање.",
+ "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 здруженог облака"
+ "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 4d33aa6ab03..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,7 +306,10 @@
"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." : "ово дељење је управо истекло.",
@@ -368,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}” се више не дели",
@@ -380,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" : "Лозинка је успешно креирана",
@@ -410,17 +420,18 @@
"No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
"Invalid server URL" : "Неисправна адреса сервера",
"Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
- "Files" : "Фајлови",
- "Download all files" : "Преузми све фајлове",
- "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" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
+ "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." : "Нема препорука. Започните куцање.",
+ "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 здруженог облака"
+ "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 d773545bfa5..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",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,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",
@@ -384,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",
@@ -414,17 +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",
- "Download all files" : "Hämta alla filer",
- "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",
+ "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.",
+ "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"
+ "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 c2063565baa..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",
@@ -313,6 +308,7 @@
"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}",
@@ -370,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",
@@ -382,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",
@@ -412,17 +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",
- "Download all files" : "Hämta alla filer",
- "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",
+ "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.",
+ "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"
+ "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 cd9580d7ae8..d4b3d519b7d 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,18 +257,13 @@ 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ş",
- "Share in conversation" : "Yazışmada paylaş",
+ "Share in conversation" : "Görüşmede paylaş",
"Share with {user} on remote server {server}" : "{server} uzak sunucusundaki {user} ile paylaş",
"Share with remote group" : "Uzaktaki grupla paylaş",
"Share with guest" : "Konukla 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,7 +308,10 @@ 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ş.",
@@ -370,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ı",
@@ -382,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",
@@ -412,16 +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",
- "Download all files" : "Tüm dosyaları indir",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği"
+ "Search for share recipients" : "Paylaşım alıcıları ara",
+ "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
+ "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 8864f55661b..119bce79875 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,18 +255,13 @@
"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ş",
- "Share in conversation" : "Yazışmada paylaş",
+ "Share in conversation" : "Görüşmede paylaş",
"Share with {user} on remote server {server}" : "{server} uzak sunucusundaki {user} ile paylaş",
"Share with remote group" : "Uzaktaki grupla paylaş",
"Share with guest" : "Konukla 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,7 +306,10 @@
"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ş.",
@@ -368,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ı",
@@ -380,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",
@@ -410,16 +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",
- "Download all files" : "Tüm dosyaları indir",
- "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",
+ "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"],
- "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği"
+ "Search for share recipients" : "Paylaşım alıcıları ara",
+ "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
+ "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 d8ee9fd3298..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,7 +307,10 @@ 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." : "термін дії спільного доступу вичерпано.",
@@ -381,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" : "Успішно створено пароль",
@@ -411,16 +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" : "Файли",
- "Download all files" : "Звантажити всі файли",
- "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" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
+ "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} адрес ел. пошти"],
- "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари"
+ "Search for share recipients" : "Виберіть отримувачів",
+ "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
+ "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 e58b7a78779..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,7 +305,10 @@
"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." : "термін дії спільного доступу вичерпано.",
@@ -379,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" : "Успішно створено пароль",
@@ -409,16 +418,18 @@
"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." : "Відсутні рекомендації. Будь ласка, додайте.",
- "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" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
+ "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} адрес ел. пошти"],
- "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари"
+ "Search for share recipients" : "Виберіть отримувачів",
+ "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
+ "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 6599ff51426..5460b042c95 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" : "分享至群组",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,7 +368,9 @@ OC.L10N.register(
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
- "Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
+ "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}”已取消共享",
"Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
@@ -384,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" : "密码已创建成功",
@@ -414,17 +423,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" : "文件",
- "Download all files" : "下载所有文件",
- "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" : "不允许编辑不属于您的链接共享",
+ "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." : "无建议。开始输入。",
+ "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"
+ "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 56b38f5a650..b23c34ef1b2 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" : "分享至群组",
@@ -313,6 +308,7 @@
"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}",
@@ -370,7 +366,9 @@
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
- "Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
+ "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}”已取消共享",
"Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
@@ -382,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" : "密码已创建成功",
@@ -412,17 +421,18 @@
"No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
"Invalid server URL" : "无效的服务器地址",
"Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
- "Files" : "文件",
- "Download all files" : "下载所有文件",
- "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" : "不允许编辑不属于您的链接共享",
+ "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." : "无建议。开始输入。",
+ "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"
+ "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 97acfee6560..55fd2561ffe 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" : "與群組分享",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,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}” 已取消共享",
@@ -384,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" : "成功創建了密碼",
@@ -414,17 +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" : "檔案",
- "Download all files" : "下載所有檔案",
- "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" : "您無權編輯不屬於您的鏈接共享",
+ "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." : "沒有建議。開始輸入。",
+ "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"
+ "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 f3ff5ddd6eb..ecf5ad545f6 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" : "與群組分享",
@@ -313,6 +308,7 @@
"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}",
@@ -370,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}” 已取消共享",
@@ -382,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" : "成功創建了密碼",
@@ -412,17 +421,18 @@
"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." : "沒有建議。開始輸入。",
- "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" : "您無權編輯不屬於您的鏈接共享",
+ "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." : "沒有建議。開始輸入。",
+ "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"
+ "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 49b24027fb3..60c564129b7 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" : "與群組分享",
@@ -315,6 +310,7 @@ OC.L10N.register(
"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}",
@@ -372,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}」已取消分享",
@@ -384,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" : "成功建立密碼",
@@ -414,17 +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" : "檔案",
- "Download all files" : "下載所有檔案",
- "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" : "您無權編輯不屬於您的連結分享",
+ "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." : "沒有建議。請開始輸入。",
+ "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"
+ "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 17441d219b3..849e35c758e 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" : "與群組分享",
@@ -313,6 +308,7 @@
"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}",
@@ -370,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}」已取消分享",
@@ -382,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" : "成功建立密碼",
@@ -412,17 +421,18 @@
"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." : "沒有建議。請開始輸入。",
- "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" : "您無權編輯不屬於您的連結分享",
+ "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." : "沒有建議。請開始輸入。",
+ "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"
+ "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/Filter.php b/apps/files_sharing/lib/Activity/Filter.php
index 7dc2a46e70f..4f3c4a7c914 100644
--- a/apps/files_sharing/lib/Activity/Filter.php
+++ b/apps/files_sharing/lib/Activity/Filter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Providers/Base.php b/apps/files_sharing/lib/Activity/Providers/Base.php
index 464cb336042..7428af382fc 100644
--- a/apps/files_sharing/lib/Activity/Providers/Base.php
+++ b/apps/files_sharing/lib/Activity/Providers/Base.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Providers/Downloads.php b/apps/files_sharing/lib/Activity/Providers/Downloads.php
index ac9522ef93b..bddf2d30f73 100644
--- a/apps/files_sharing/lib/Activity/Providers/Downloads.php
+++ b/apps/files_sharing/lib/Activity/Providers/Downloads.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -23,11 +24,11 @@ class Downloads extends Base {
public function parseShortVersion(IEvent $event) {
$parsedParameters = $this->getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
$subject = $this->l->t('Downloaded via public link');
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('Downloaded by {email}');
} else {
throw new \InvalidArgumentException();
@@ -53,8 +54,8 @@ class Downloads extends Base {
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) {
$parsedParameters = $this->getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
if (!isset($parsedParameters['remote-address-hash']['type'])) {
$subject = $this->l->t('{file} downloaded via public link');
$this->setSubjects($event, $subject, $parsedParameters);
@@ -63,8 +64,8 @@ class Downloads extends Base {
$this->setSubjects($event, $subject, $parsedParameters);
$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
}
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('{email} downloaded {file}');
$this->setSubjects($event, $subject, $parsedParameters);
} else {
diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php
index b64104739db..d0086c05ced 100644
--- a/apps/files_sharing/lib/Activity/Providers/Groups.php
+++ b/apps/files_sharing/lib/Activity/Providers/Groups.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
index 6cf5c05d874..15ffaf2cdb0 100644
--- a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
+++ b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
index 1971f935d30..750d0747b62 100644
--- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
+++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Providers/Users.php b/apps/files_sharing/lib/Activity/Providers/Users.php
index 6c136d1f383..5c833ffae93 100644
--- a/apps/files_sharing/lib/Activity/Providers/Users.php
+++ b/apps/files_sharing/lib/Activity/Providers/Users.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
index 12a543f1e7f..0d3d00d2a7b 100644
--- a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
+++ b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
index 00bf7d0dde9..fd55752632d 100644
--- a/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
+++ b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -61,6 +62,6 @@ class PublicLinksUpload extends ShareActivitySettings {
* @since 11.0.0
*/
public function isDefaultEnabledMail() {
- return true;
+ return false;
}
}
diff --git a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
index 339e634638b..c04364bef20 100644
--- a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
+++ b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Activity/Settings/Shared.php b/apps/files_sharing/lib/Activity/Settings/Shared.php
index 30b5e68b04c..3717512eebd 100644
--- a/apps/files_sharing/lib/Activity/Settings/Shared.php
+++ b/apps/files_sharing/lib/Activity/Settings/Shared.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php
index 024df5d3f43..f9042fc0765 100644
--- a/apps/files_sharing/lib/Cache.php
+++ b/apps/files_sharing/lib/Cache.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index 1f491216abe..b4fe5a1bb73 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php b/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
index 993dba64888..803dfd6325f 100644
--- a/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
+++ b/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
index 7e21768afee..809481e5c0f 100644
--- a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
+++ b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
diff --git a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
index c4cf09d6f03..f4a2cd500e1 100644
--- a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
*/
namespace OCA\Files_Sharing\Controller;
+use OCA\Deck\Sharing\ShareAPIHelper;
use OCA\Files_Sharing\ResponseDefinitions;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
@@ -210,7 +211,7 @@ class DeletedShareAPIController extends OCSController {
* If the Deck application is not enabled or the helper is not available
* a QueryException is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws QueryException
*/
private function getDeckShareHelper() {
@@ -227,7 +228,7 @@ class DeletedShareAPIController extends OCSController {
* If the sciencemesh application is not enabled or the helper is not available
* a QueryException is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws QueryException
*/
private function getSciencemeshShareHelper() {
diff --git a/apps/files_sharing/lib/Controller/ExternalSharesController.php b/apps/files_sharing/lib/Controller/ExternalSharesController.php
index 9d15b03c6cd..fa828a9d2c2 100644
--- a/apps/files_sharing/lib/Controller/ExternalSharesController.php
+++ b/apps/files_sharing/lib/Controller/ExternalSharesController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php
index 16886e930fa..d917f6e0ebb 100644
--- a/apps/files_sharing/lib/Controller/PublicPreviewController.php
+++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -102,12 +103,12 @@ class PublicPreviewController extends PublicShareController {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
- $attributes = $share->getAttributes();
// Only explicitly set to false will forbid the download!
- $downloadForbidden = $attributes?->getAttribute('permissions', 'download') === false;
+ $downloadForbidden = !$share->canSeeContent();
+
// 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
@@ -181,8 +182,7 @@ class PublicPreviewController extends PublicShareController {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
- $attributes = $share->getAttributes();
- if ($attributes !== null && $attributes->getAttribute('permissions', 'download') === false) {
+ if (!$share->canSeeContent()) {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
diff --git a/apps/files_sharing/lib/Controller/RemoteController.php b/apps/files_sharing/lib/Controller/RemoteController.php
index e23ae51f219..8c15cd8463e 100644
--- a/apps/files_sharing/lib/Controller/RemoteController.php
+++ b/apps/files_sharing/lib/Controller/RemoteController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 446db0b8fcc..a19eb50faf7 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -10,8 +10,10 @@ declare(strict_types=1);
namespace OCA\Files_Sharing\Controller;
use Exception;
+use OC\Files\FileInfo;
use OC\Files\Storage\Wrapper\Wrapper;
use OCA\Circles\Api\v1\Circles;
+use OCA\Deck\Sharing\ShareAPIHelper;
use OCA\Files\Helper;
use OCA\Files_Sharing\Exceptions\SharingRightsException;
use OCA\Files_Sharing\External\Storage;
@@ -94,6 +96,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 +475,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];
}
@@ -595,7 +598,7 @@ class ShareAPIController extends OCSController {
// combine all permissions to determine if the user can share this file
$nodes = $userFolder->getById($node->getId());
foreach ($nodes as $nodeById) {
- /** @var \OC\Files\FileInfo $fileInfo */
+ /** @var FileInfo $fileInfo */
$fileInfo = $node->getFileInfo();
$fileInfo['permissions'] |= $nodeById->getPermissions();
}
@@ -847,7 +850,7 @@ class ShareAPIController extends OCSController {
}
if ($includeTags) {
- $formatted = Helper::populateTags($formatted, Server::get(ITagManager::class));
+ $formatted = $this->populateTags($formatted);
}
return $formatted;
@@ -1100,8 +1103,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;
@@ -1258,17 +1260,17 @@ class ShareAPIController extends OCSController {
}
if (
- $permissions === null &&
- $password === null &&
- $sendPasswordByTalk === null &&
- $publicUpload === null &&
- $expireDate === null &&
- $note === null &&
- $label === null &&
- $hideDownload === null &&
- $attributes === null &&
- $sendMail === null &&
- $token === null
+ $permissions === null
+ && $password === null
+ && $sendPasswordByTalk === null
+ && $publicUpload === null
+ && $expireDate === null
+ && $note === null
+ && $label === null
+ && $hideDownload === null
+ && $attributes === null
+ && $sendMail === null
+ && $token === null
) {
throw new OCSBadRequestException($this->l->t('Wrong or no update parameter given'));
}
@@ -1563,8 +1565,8 @@ class ShareAPIController extends OCSController {
// The owner of the file and the creator of the share
// can always edit the share
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
@@ -1596,16 +1598,16 @@ class ShareAPIController extends OCSController {
// if the user is the recipient, i can unshare
// the share with self
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $this->userId
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $this->userId
) {
return true;
}
// The owner of the file and the creator of the share
// can always delete the share
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
@@ -1632,16 +1634,16 @@ class ShareAPIController extends OCSController {
* @suppress PhanUndeclaredClassMethod
*/
protected function canDeleteShareFromSelf(IShare $share): bool {
- if ($share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM &&
- $share->getShareType() !== IShare::TYPE_DECK &&
- $share->getShareType() !== IShare::TYPE_SCIENCEMESH
+ if ($share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
+ && $share->getShareType() !== IShare::TYPE_DECK
+ && $share->getShareType() !== IShare::TYPE_SCIENCEMESH
) {
return false;
}
- if ($share->getShareOwner() === $this->userId ||
- $share->getSharedBy() === $this->userId
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
// Delete the whole share, not just for self
return false;
@@ -1820,7 +1822,7 @@ class ShareAPIController extends OCSController {
* If the Deck application is not enabled or the helper is not available
* a ContainerExceptionInterface is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws ContainerExceptionInterface
*/
private function getDeckShareHelper() {
@@ -1837,7 +1839,7 @@ class ShareAPIController extends OCSController {
* If the sciencemesh application is not enabled or the helper is not available
* a ContainerExceptionInterface is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws ContainerExceptionInterface
*/
private function getSciencemeshShareHelper() {
@@ -1874,8 +1876,8 @@ class ShareAPIController extends OCSController {
continue;
}
- $providerShares =
- $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
+ $providerShares
+ = $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
$shares = array_merge($shares, $providerShares);
}
@@ -2221,4 +2223,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/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index ad8023ba6bb..5a776379fce 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -251,9 +252,9 @@ class ShareController extends AuthPublicShareController {
* Emit a ShareLinkAccessedEvent event when a share is accessed, downloaded, auth...
*/
protected function emitShareAccessEvent(IShare $share, string $step = '', int $errorCode = 200, string $errorMessage = ''): void {
- if ($step !== self::SHARE_ACCESS &&
- $step !== self::SHARE_AUTH &&
- $step !== self::SHARE_DOWNLOAD) {
+ if ($step !== self::SHARE_ACCESS
+ && $step !== self::SHARE_AUTH
+ && $step !== self::SHARE_DOWNLOAD) {
return;
}
$this->eventDispatcher->dispatchTyped(new ShareLinkAccessedEvent($share, $step, $errorCode, $errorMessage));
diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php
index 0a290d69c65..b7e79aec830 100644
--- a/apps/files_sharing/lib/Controller/ShareInfoController.php
+++ b/apps/files_sharing/lib/Controller/ShareInfoController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/Exceptions/BrokenPath.php b/apps/files_sharing/lib/Exceptions/BrokenPath.php
index 11b3599d609..a68a8fc05d4 100644
--- a/apps/files_sharing/lib/Exceptions/BrokenPath.php
+++ b/apps/files_sharing/lib/Exceptions/BrokenPath.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Exceptions/S2SException.php b/apps/files_sharing/lib/Exceptions/S2SException.php
index fb60b20774a..10360820432 100644
--- a/apps/files_sharing/lib/Exceptions/S2SException.php
+++ b/apps/files_sharing/lib/Exceptions/S2SException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_sharing/lib/Exceptions/SharingRightsException.php b/apps/files_sharing/lib/Exceptions/SharingRightsException.php
index 548873cfbfd..2ffe72c4e69 100644
--- a/apps/files_sharing/lib/Exceptions/SharingRightsException.php
+++ b/apps/files_sharing/lib/Exceptions/SharingRightsException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/ExpireSharesJob.php b/apps/files_sharing/lib/ExpireSharesJob.php
index d78352cfeaa..b1c6c592e80 100644
--- a/apps/files_sharing/lib/ExpireSharesJob.php
+++ b/apps/files_sharing/lib/ExpireSharesJob.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/External/Cache.php b/apps/files_sharing/lib/External/Cache.php
index 3bf6d09e681..027f682d818 100644
--- a/apps/files_sharing/lib/External/Cache.php
+++ b/apps/files_sharing/lib/External/Cache.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php
index ff7f2dd3c48..ff4781eba0f 100644
--- a/apps/files_sharing/lib/External/Manager.php
+++ b/apps/files_sharing/lib/External/Manager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -40,12 +41,9 @@ class Manager {
/** @var string|null */
private $uid;
- /** @var \OC\Files\Mount\Manager */
- private $mountManager;
-
public function __construct(
private IDBConnection $connection,
- \OC\Files\Mount\Manager $mountManager,
+ private \OC\Files\Mount\Manager $mountManager,
private IStorageFactory $storageLoader,
private IClientService $clientService,
private IManager $notificationManager,
@@ -59,7 +57,6 @@ class Manager {
private LoggerInterface $logger,
) {
$user = $userSession->getUser();
- $this->mountManager = $mountManager;
$this->uid = $user ? $user->getUID() : null;
}
diff --git a/apps/files_sharing/lib/External/Mount.php b/apps/files_sharing/lib/External/Mount.php
index d7ab61e0364..f50c379f85f 100644
--- a/apps/files_sharing/lib/External/Mount.php
+++ b/apps/files_sharing/lib/External/Mount.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/External/MountProvider.php b/apps/files_sharing/lib/External/MountProvider.php
index ad6e2ef1779..a5781d5d35a 100644
--- a/apps/files_sharing/lib/External/MountProvider.php
+++ b/apps/files_sharing/lib/External/MountProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/External/Scanner.php b/apps/files_sharing/lib/External/Scanner.php
index 2b0741b4b96..0d57248595b 100644
--- a/apps/files_sharing/lib/External/Scanner.php
+++ b/apps/files_sharing/lib/External/Scanner.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/External/Watcher.php b/apps/files_sharing/lib/External/Watcher.php
index ccd6bd179b3..f3616feabba 100644
--- a/apps/files_sharing/lib/External/Watcher.php
+++ b/apps/files_sharing/lib/External/Watcher.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php
index fe0cc88ba5f..92e874b73db 100644
--- a/apps/files_sharing/lib/Helper.php
+++ b/apps/files_sharing/lib/Helper.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Hooks.php b/apps/files_sharing/lib/Hooks.php
index 7c8b80fb47a..e90b9f5c23d 100644
--- a/apps/files_sharing/lib/Hooks.php
+++ b/apps/files_sharing/lib/Hooks.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/ISharedStorage.php b/apps/files_sharing/lib/ISharedStorage.php
index dfd8b134db1..9bd3e4c9476 100644
--- a/apps/files_sharing/lib/ISharedStorage.php
+++ b/apps/files_sharing/lib/ISharedStorage.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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/Middleware/OCSShareAPIMiddleware.php b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
index ad34a1d2ab9..6671a78efff 100644
--- a/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
index 1f29e855eb5..e96940979bf 100644
--- a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
index 75ee8d3fb83..8ea2eb59d73 100644
--- a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
@@ -52,8 +52,8 @@ class SharingCheckMiddleware extends Middleware {
throw new NotFoundException('Sharing is disabled.');
}
- if ($controller instanceof ExternalSharesController &&
- !$this->externalSharesChecks()) {
+ if ($controller instanceof ExternalSharesController
+ && !$this->externalSharesChecks()) {
throw new S2SException('Federated sharing not allowed');
}
}
@@ -84,13 +84,13 @@ class SharingCheckMiddleware extends Middleware {
* @return bool
*/
private function externalSharesChecks(): bool {
- if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
- if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
diff --git a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
index c9511eaa136..3718306e380 100644
--- a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
+++ b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -51,7 +52,7 @@ class OwncloudGuestShareType implements IRepairStep {
protected function shouldRun() {
$appVersion = $this->config->getAppValue('files_sharing', 'installed_version', '0.0.0');
- return $appVersion === '0.10.0' ||
- $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
+ return $appVersion === '0.10.0'
+ || $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
}
}
diff --git a/apps/files_sharing/lib/Migration/SetPasswordColumn.php b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
index 647e3bef8d3..f60af2817d4 100644
--- a/apps/files_sharing/lib/Migration/SetPasswordColumn.php
+++ b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index 91c392de6eb..7a0b1f135a6 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -55,7 +56,7 @@ class MountProvider implements IMountProvider {
// filter out excluded shares and group shares that includes self
$shares = array_filter($shares, function (IShare $share) use ($user) {
- return $share->getPermissions() > 0 && $share->getShareOwner() !== $user->getUID();
+ return $share->getPermissions() > 0 && $share->getShareOwner() !== $user->getUID() && $share->getSharedBy() !== $user->getUID();
});
$superShares = $this->buildSuperShares($shares, $user);
@@ -77,10 +78,10 @@ class MountProvider implements IMountProvider {
/** @var IShare $parentShare */
$parentShare = $share[0];
- if ($parentShare->getStatus() !== IShare::STATUS_ACCEPTED &&
- ($parentShare->getShareType() === IShare::TYPE_GROUP ||
- $parentShare->getShareType() === IShare::TYPE_USERGROUP ||
- $parentShare->getShareType() === IShare::TYPE_USER)) {
+ if ($parentShare->getStatus() !== IShare::STATUS_ACCEPTED
+ && ($parentShare->getShareType() === IShare::TYPE_GROUP
+ || $parentShare->getShareType() === IShare::TYPE_USERGROUP
+ || $parentShare->getShareType() === IShare::TYPE_USER)) {
continue;
}
diff --git a/apps/files_sharing/lib/Notification/Listener.php b/apps/files_sharing/lib/Notification/Listener.php
index c40ad6e8f7b..1cf0f845e7a 100644
--- a/apps/files_sharing/lib/Notification/Listener.php
+++ b/apps/files_sharing/lib/Notification/Listener.php
@@ -40,8 +40,8 @@ class Listener {
$group = $this->groupManager->get($share->getSharedWith());
foreach ($group->getUsers() as $user) {
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
@@ -72,8 +72,8 @@ class Listener {
continue;
}
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
diff --git a/apps/files_sharing/lib/Notification/Notifier.php b/apps/files_sharing/lib/Notification/Notifier.php
index 43f61258395..e4434ef0b37 100644
--- a/apps/files_sharing/lib/Notification/Notifier.php
+++ b/apps/files_sharing/lib/Notification/Notifier.php
@@ -67,9 +67,9 @@ class Notifier implements INotifier {
* @since 9.0.0
*/
public function prepare(INotification $notification, string $languageCode): INotification {
- if ($notification->getApp() !== 'files_sharing' ||
- ($notification->getSubject() !== 'expiresTomorrow' &&
- $notification->getObjectType() !== 'share')) {
+ if ($notification->getApp() !== 'files_sharing'
+ || ($notification->getSubject() !== 'expiresTomorrow'
+ && $notification->getObjectType() !== 'share')) {
throw new UnknownNotificationException('Unhandled app or subject');
}
diff --git a/apps/files_sharing/lib/Scanner.php b/apps/files_sharing/lib/Scanner.php
index 8a695ce9539..28972c1b462 100644
--- a/apps/files_sharing/lib/Scanner.php
+++ b/apps/files_sharing/lib/Scanner.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/ShareBackend/Folder.php b/apps/files_sharing/lib/ShareBackend/Folder.php
index 9df0ed3bbd3..df5529c3c4a 100644
--- a/apps/files_sharing/lib/ShareBackend/Folder.php
+++ b/apps/files_sharing/lib/ShareBackend/Folder.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 3ac843af311..692a6c8979b 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php
index 1014b0d37d9..e310c5f3138 100644
--- a/apps/files_sharing/lib/SharedStorage.php
+++ b/apps/files_sharing/lib/SharedStorage.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/lib/Updater.php b/apps/files_sharing/lib/Updater.php
index 998be54fc61..24e82330d43 100644
--- a/apps/files_sharing/lib/Updater.php
+++ b/apps/files_sharing/lib/Updater.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -75,8 +76,8 @@ class Updater {
foreach ($subShares as $subShare) {
$shareCacheEntry = $shareSources[$subShare->getNodeId()] ?? null;
if (
- $shareCacheEntry &&
- str_starts_with($shareCacheEntry->getPath(), $sourceInternalPath . '/')
+ $shareCacheEntry
+ && str_starts_with($shareCacheEntry->getPath(), $sourceInternalPath . '/')
) {
$shares[] = $subShare;
}
@@ -95,9 +96,9 @@ class Updater {
//Ownership is moved over
foreach ($shares as $share) {
if (
- $share->getShareType() !== IShare::TYPE_USER &&
- $share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM
+ $share->getShareType() !== IShare::TYPE_USER
+ && $share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
) {
continue;
}
diff --git a/apps/files_sharing/lib/ViewOnly.php b/apps/files_sharing/lib/ViewOnly.php
index 2204d26388b..e075677248a 100644
--- a/apps/files_sharing/lib/ViewOnly.php
+++ b/apps/files_sharing/lib/ViewOnly.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2019 ownCloud GmbH
diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json
index 68420dde80e..627c25ce8ea 100644
--- a/apps/files_sharing/openapi.json
+++ b/apps/files_sharing/openapi.json
@@ -1490,6 +1490,13 @@
1
]
}
+ },
+ {
+ "name": "x-nc-preview",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
@@ -1574,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": {
@@ -1782,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": {
@@ -1799,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"
@@ -1818,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": {
@@ -1838,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"
@@ -2297,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"
}
}
@@ -3099,7 +3127,8 @@
"description": "Limit to specific item types",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -3128,6 +3157,7 @@
"description": "Limit to specific share types",
"schema": {
"nullable": true,
+ "default": null,
"oneOf": [
{
"type": "integer",
@@ -3267,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/files_actions/openInFilesAction.spec.ts b/apps/files_sharing/src/files_actions/openInFilesAction.spec.ts
index 95bd2812db7..23c0938545c 100644
--- a/apps/files_sharing/src/files_actions/openInFilesAction.spec.ts
+++ b/apps/files_sharing/src/files_actions/openInFilesAction.spec.ts
@@ -29,7 +29,7 @@ const invalidViews = [
describe('Open in files action conditions tests', () => {
test('Default values', () => {
expect(action).toBeInstanceOf(FileAction)
- expect(action.id).toBe('open-in-files')
+ expect(action.id).toBe('files_sharing:open-in-files')
expect(action.displayName([], validViews[0])).toBe('Open in Files')
expect(action.iconSvgInline([], validViews[0])).toBe('')
expect(action.default).toBe(DefaultType.HIDDEN)
diff --git a/apps/files_sharing/src/files_actions/openInFilesAction.ts b/apps/files_sharing/src/files_actions/openInFilesAction.ts
index e9e07179fc4..133b4531bb5 100644
--- a/apps/files_sharing/src/files_actions/openInFilesAction.ts
+++ b/apps/files_sharing/src/files_actions/openInFilesAction.ts
@@ -2,15 +2,15 @@
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+
import type { Node } from '@nextcloud/files'
import { registerFileAction, FileAction, DefaultType, FileType } from '@nextcloud/files'
import { translate as t } from '@nextcloud/l10n'
-
import { sharesViewId, sharedWithYouViewId, sharedWithOthersViewId, sharingByLinksViewId } from '../files_views/shares'
export const action = new FileAction({
- id: 'open-in-files',
+ id: 'files_sharing:open-in-files',
displayName: () => t('files_sharing', 'Open in Files'),
iconSvgInline: () => '',
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/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 8912ff340b7..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"
diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue
index e50c3292055..82a11dea2e0 100644
--- a/apps/files_sharing/src/views/SharingTab.vue
+++ b/apps/files_sharing/src/views/SharingTab.vue
@@ -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,7 +243,24 @@ 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() {
@@ -257,6 +275,9 @@ export default {
},
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')
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index 4ef9f536cb9..bb686c1ea8c 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -26,6 +27,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 +113,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 +134,7 @@ class ApiTest extends TestCase {
$logger,
$providerFactory,
$mailer,
+ $tagManager,
$userId,
);
}
@@ -237,11 +241,11 @@ class ApiTest extends TestCase {
$data = $result->getData();
$this->assertEquals(
- Constants::PERMISSION_READ |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_DELETE |
- Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | Constants::PERMISSION_SHARE,
$data['permissions']
);
$this->assertEmpty($data['expiration']);
@@ -1018,11 +1022,11 @@ class ApiTest extends TestCase {
$share1 = $this->shareManager->getShareById($share1->getFullId());
$this->assertEquals(
- Constants::PERMISSION_READ |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_DELETE |
- Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | Constants::PERMISSION_SHARE,
$share1->getPermissions()
);
@@ -1277,7 +1281,7 @@ class ApiTest extends TestCase {
\OC_Hook::clear('\OCA\Files_Sharing\Tests\ApiTest', 'initTestMountPointsHook');
}
- public function datesProvider() {
+ public static function datesProvider() {
$date = new \DateTime();
$date->setTime(0, 0);
$date->add(new \DateInterval('P5D'));
@@ -1293,9 +1297,9 @@ class ApiTest extends TestCase {
/**
* Make sure only ISO 8601 dates are accepted
*
- * @dataProvider datesProvider
* @group RoutingWeirdness
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('datesProvider')]
public function testPublicLinkExpireDate($date, $valid): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_sharing/tests/ApplicationTest.php b/apps/files_sharing/tests/ApplicationTest.php
index b1a635406b2..84a3f4b372b 100644
--- a/apps/files_sharing/tests/ApplicationTest.php
+++ b/apps/files_sharing/tests/ApplicationTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -86,9 +87,7 @@ class ApplicationTest extends TestCase {
return $result;
}
- /**
- * @dataProvider providesDataForCanGet
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesDataForCanGet')]
public function testCheckDirectCanBeDownloaded(string $path, Folder $userFolder, bool $run): void {
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('test');
@@ -167,9 +166,7 @@ class ApplicationTest extends TestCase {
return $return;
}
- /**
- * @dataProvider providesDataForCanZip
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesDataForCanZip')]
public function testCheckZipCanBeDownloaded(string $dir, array $files, Folder $userFolder, bool $run): void {
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('test');
diff --git a/apps/files_sharing/tests/CacheTest.php b/apps/files_sharing/tests/CacheTest.php
index 53e9efd5d9e..e95d3d4f91a 100644
--- a/apps/files_sharing/tests/CacheTest.php
+++ b/apps/files_sharing/tests/CacheTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php
index 737362e2195..2600bd9d925 100644
--- a/apps/files_sharing/tests/CapabilitiesTest.php
+++ b/apps/files_sharing/tests/CapabilitiesTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php b/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
index 2bef0b0e922..572463a9ebc 100644
--- a/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
+++ b/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -35,9 +36,9 @@ class ShareRecipientSorterTest extends TestCase {
}
/**
- * @dataProvider sortDataProvider
* @param $data
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('sortDataProvider')]
public function testSort($data): void {
$node = $this->createMock(Node::class);
@@ -114,39 +115,37 @@ class ShareRecipientSorterTest extends TestCase {
$this->assertEquals($originalArray, $workArray);
}
- public function sortDataProvider() {
+ public static function sortDataProvider() {
return [[
[
#0 – sort properly and otherwise keep existing order
'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => ['celia', 'darius', 'faruk', 'gail'], 'bots' => ['r2-d2']],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'elena']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'elena']],
+ ],
'bots' => [
['value' => ['shareWith' => 'r2-d2']],
['value' => ['shareWith' => 'c-3po']],
@@ -158,32 +157,30 @@ class ShareRecipientSorterTest extends TestCase {
'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => false],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
@@ -195,32 +192,30 @@ class ShareRecipientSorterTest extends TestCase {
'context' => ['itemType' => 'announcements', 'itemId' => '42'],
'accessList' => null, // not needed
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
index 888b2cdd596..6f0960bf46c 100644
--- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
+++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
@@ -11,6 +12,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 +26,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 +68,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 +112,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,19 +165,18 @@ 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): void {
+ $outputCalls[] = $text;
+ });
$this->cloudIdManager
->expects($this->any())
->method('getCloudId')
- ->will($this->returnCallback(function (string $user, string $remote) {
+ ->willReturnCallback(function (string $user, string $remote) {
$cloudIdMock = $this->createMock(ICloudId::class);
// The remotes are already sanitized in the original data, so
@@ -197,7 +187,7 @@ class CleanupRemoteStoragesTest extends TestCase {
->willReturn($remote);
return $cloudIdMock;
- }));
+ });
$this->command->execute($input, $output);
@@ -206,5 +196,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/Command/FixShareOwnersTest.php b/apps/files_sharing/tests/Command/FixShareOwnersTest.php
index 939fad03d7c..0fde61895b1 100644
--- a/apps/files_sharing/tests/Command/FixShareOwnersTest.php
+++ b/apps/files_sharing/tests/Command/FixShareOwnersTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
index 5e8e32c06d8..7e054d9a6dc 100644
--- a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
index 9750274ff62..f49d839e8d4 100644
--- a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
+++ b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,7 +21,6 @@ use OCP\IRequest;
use OCP\ISession;
use OCP\Preview\IMimeIconProvider;
use OCP\Share\Exceptions\ShareNotFound;
-use OCP\Share\IAttributes;
use OCP\Share\IManager;
use OCP\Share\IShare;
use PHPUnit\Framework\MockObject\MockObject;
@@ -114,12 +114,8 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getPermissions')
->willReturn(Constants::PERMISSION_READ);
- $attributes = $this->createMock(IAttributes::class);
- $attributes->method('getAttribute')
- ->with('permissions', 'download')
+ $share->method('canSeeContent')
->willReturn(false);
- $share->method('getAttributes')
- ->willReturn($attributes);
$res = $this->controller->getPreview('token', 'file', 10, 10);
$expected = new DataResponse([], Http::STATUS_FORBIDDEN);
@@ -136,15 +132,11 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getPermissions')
->willReturn(Constants::PERMISSION_READ);
- $attributes = $this->createMock(IAttributes::class);
- $attributes->method('getAttribute')
- ->with('permissions', 'download')
+ $share->method('canSeeContent')
->willReturn(false);
- $share->method('getAttributes')
- ->willReturn($attributes);
$this->request->method('getHeader')
- ->with('X-NC-Preview')
+ ->with('x-nc-preview')
->willReturn('true');
$file = $this->createMock(File::class);
@@ -176,15 +168,11 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getPermissions')
->willReturn(Constants::PERMISSION_READ);
- $attributes = $this->createMock(IAttributes::class);
- $attributes->method('getAttribute')
- ->with('permissions', 'download')
+ $share->method('canSeeContent')
->willReturn(true);
- $share->method('getAttributes')
- ->willReturn($attributes);
$this->request->method('getHeader')
- ->with('X-NC-Preview')
+ ->with('x-nc-preview')
->willReturn('true');
$file = $this->createMock(File::class);
@@ -220,6 +208,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($file);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$preview = $this->createMock(ISimpleFile::class);
$preview->method('getName')->willReturn('name');
$preview->method('getMTime')->willReturn(42);
@@ -249,6 +240,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($folder);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$folder->method('get')
->with($this->equalTo('file'))
->willThrowException(new NotFoundException());
@@ -272,6 +266,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($folder);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$file = $this->createMock(File::class);
$folder->method('get')
->with($this->equalTo('file'))
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index 29eae2dc581..8bb220d684b 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,6 +29,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 +79,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 +115,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 +135,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
);
}
@@ -157,6 +163,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
])->onlyMethods(['formatShare'])
->getMock();
@@ -265,7 +272,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
->with(ILockingProvider::LOCK_SHARED)
- ->will($this->throwException(new LockedException('mypath')));
+ ->willThrowException(new LockedException('mypath'));
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteFromSelf', [$share]));
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteShare', [$share]));
@@ -586,9 +593,9 @@ class ShareAPIControllerTest extends TestCase {
$share->method('getToken')->willReturn($token);
$share->method('getPassword')->willReturn($password);
- if ($shareType === IShare::TYPE_USER ||
- $shareType === IShare::TYPE_GROUP ||
- $shareType === IShare::TYPE_LINK) {
+ if ($shareType === IShare::TYPE_USER
+ || $shareType === IShare::TYPE_GROUP
+ || $shareType === IShare::TYPE_LINK) {
$share->method('getFullId')->willReturn('ocinternal:' . $id);
}
@@ -817,9 +824,7 @@ class ShareAPIControllerTest extends TestCase {
return $data;
}
- /**
- * @dataProvider dataGetShare
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetShare')]
public function testGetShare(IShare $share, array $result): void {
/** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
@@ -841,8 +846,8 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
-
])
->onlyMethods(['canAccessShare'])
->getMock();
@@ -1450,9 +1455,7 @@ class ShareAPIControllerTest extends TestCase {
return $data;
}
- /**
- * @dataProvider dataGetShares
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetShares')]
public function testGetShares(array $getSharesParameters, array $shares, array $extraShareTypes, array $expected): void {
/** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
@@ -1474,6 +1477,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
])
->onlyMethods(['formatShare'])
@@ -1535,84 +1539,125 @@ 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]));
+ }
+
+ #[\PHPUnit\Framework\Attributes\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();
+ #[\PHPUnit\Framework\Attributes\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() {
@@ -1642,13 +1687,13 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataCanAccessRoomShare
*
* @param bool $expects
* @param IShare $share
* @param bool helperAvailable
* @param bool canAccessShareByHelper
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCanAccessRoomShare')]
public function testCanAccessRoomShare(bool $expected, IShare $share, bool $helperAvailable, bool $canAccessShareByHelper): void {
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
$this->rootFolder->method('getUserFolder')
@@ -1668,8 +1713,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)
@@ -1705,7 +1753,7 @@ class ShareAPIControllerTest extends TestCase {
$userFolder->expects($this->once())
->method('get')
->with('invalid-path')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->ocs->createShare('invalid-path');
}
@@ -1816,8 +1864,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -1841,15 +1890,15 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === 'validUser' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === 'validUser'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -1913,8 +1962,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
$this->request
@@ -1951,11 +2001,11 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getShareType() === IShare::TYPE_GROUP &&
- $share->getSharedWith() === 'validGroup' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getShareType() === IShare::TYPE_GROUP
+ && $share->getSharedWith() === 'validGroup'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2068,7 +2118,7 @@ class ShareAPIControllerTest extends TestCase {
$file = $this->createMock(File::class);
$file->method('getId')->willReturn(42);
$file->method('getStorage')->willReturn($storage);
-
+
$this->rootFolder->method('getUserFolder')->with($this->currentUser)->willReturnSelf();
$this->rootFolder->method('get')->with('valid-path')->willReturn($file);
$this->rootFolder->method('getById')
@@ -2104,12 +2154,12 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('createShare')->with(
$this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2184,13 +2234,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('createShare')->with(
$this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === (Constants::PERMISSION_ALL & ~(Constants::PERMISSION_SHARE)) &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === null;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_ALL & ~(Constants::PERMISSION_SHARE))
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2270,12 +2320,12 @@ class ShareAPIControllerTest extends TestCase {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === Constants::PERMISSION_READ | Constants::PERMISSION_SHARE &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() == $date;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() == $date;
})
)->willReturnArgument(0);
@@ -2338,8 +2388,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -2363,15 +2414,15 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE &&
- $share->getSharedWith() === 'user@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE
+ && $share->getSharedWith() === 'user@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2408,8 +2459,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -2433,15 +2485,15 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('createShare')
->with($this->callback(function (IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE_GROUP &&
- $share->getSharedWith() === 'group@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE_GROUP
+ && $share->getSharedWith() === 'group@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
@@ -2481,16 +2533,19 @@ 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(
$share,
'recipientRoom',
- Constants::PERMISSION_ALL &
- ~Constants::PERMISSION_DELETE &
- ~Constants::PERMISSION_CREATE,
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE,
''
)->willReturnCallback(
function ($share): void {
@@ -2587,7 +2642,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 +2697,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();
@@ -2776,14 +2835,14 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) {
- return $share->getPermissions() === Constants::PERMISSION_READ &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null &&
+ return $share->getPermissions() === Constants::PERMISSION_READ
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null
// Once set a note or a label are never back to null, only to an
// empty string.
- $share->getNote() === '' &&
- $share->getLabel() === '' &&
- $share->getHideDownload() === false;
+ && $share->getNote() === ''
+ && $share->getLabel() === ''
+ && $share->getHideDownload() === false;
})
)->willReturnArgument(0);
@@ -2835,12 +2894,12 @@ class ShareAPIControllerTest extends TestCase {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -2868,9 +2927,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- /**
- * @dataProvider publicUploadParamsProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicUploadParamsProvider')]
public function testUpdateLinkShareEnablePublicUpload($permissions, $publicUpload, $expireDate, $password): void {
$ocs = $this->mockFormatShare();
@@ -2891,9 +2948,9 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() === null;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2919,7 +2976,7 @@ class ShareAPIControllerTest extends TestCase {
}
- public function publicLinkValidPermissionsProvider() {
+ public static function publicLinkValidPermissionsProvider() {
return [
[Constants::PERMISSION_CREATE],
[Constants::PERMISSION_READ],
@@ -2929,9 +2986,7 @@ class ShareAPIControllerTest extends TestCase {
];
}
- /**
- * @dataProvider publicLinkValidPermissionsProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkValidPermissionsProvider')]
public function testUpdateLinkShareSetCRUDPermissions($permissions): void {
$ocs = $this->mockFormatShare();
@@ -2976,7 +3031,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function publicLinkInvalidPermissionsProvider1() {
+ public static function publicLinkInvalidPermissionsProvider1() {
return [
[Constants::PERMISSION_DELETE],
[Constants::PERMISSION_UPDATE],
@@ -2984,9 +3039,7 @@ class ShareAPIControllerTest extends TestCase {
];
}
- /**
- * @dataProvider publicLinkInvalidPermissionsProvider1
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkInvalidPermissionsProvider1')]
public function testUpdateLinkShareSetInvalidCRUDPermissions1($permissions): void {
$this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Share must at least have READ or CREATE permissions');
@@ -2994,16 +3047,14 @@ class ShareAPIControllerTest extends TestCase {
$this->testUpdateLinkShareSetCRUDPermissions($permissions, null);
}
- public function publicLinkInvalidPermissionsProvider2() {
+ public static function publicLinkInvalidPermissionsProvider2() {
return [
[Constants::PERMISSION_CREATE | Constants::PERMISSION_DELETE],
[Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE],
];
}
- /**
- * @dataProvider publicLinkInvalidPermissionsProvider2
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkInvalidPermissionsProvider2')]
public function testUpdateLinkShareSetInvalidCRUDPermissions2($permissions): void {
$this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set');
@@ -3039,7 +3090,7 @@ class ShareAPIControllerTest extends TestCase {
$ocs->updateShare(42, null, 'password', null, 'true', '2000-01-a');
}
- public function publicUploadParamsProvider() {
+ public static function publicUploadParamsProvider() {
return [
[null, 'true', null, 'password'],
// legacy had no delete
@@ -3055,9 +3106,7 @@ class ShareAPIControllerTest extends TestCase {
];
}
- /**
- * @dataProvider publicUploadParamsProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicUploadParamsProvider')]
public function testUpdateLinkSharePublicUploadNotAllowed($permissions, $publicUpload, $expireDate, $password): void {
$this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('Public upload disabled by the administrator');
@@ -3159,13 +3208,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'newpassword' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'newpassword'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3213,13 +3262,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3311,13 +3360,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3361,13 +3410,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3429,13 +3478,13 @@ class ShareAPIControllerTest extends TestCase {
$date = new \DateTime('2010-12-23');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3487,13 +3536,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3548,13 +3597,13 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->once())->method('updateShare')->with(
$this->callback(function (IShare $share) use ($date): bool {
- return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3610,13 +3659,13 @@ class ShareAPIControllerTest extends TestCase {
->method('updateShare')
->with(
$this->callback(function (IShare $share) use ($date) {
- return $share->getPermissions() === Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -4833,13 +4882,13 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataFormatShare
*
* @param array $expects
* @param IShare $share
* @param array $users
* @param $exception
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFormatShare')]
public function testFormatShare(array $expects, IShare $share, array $users, $exception): void {
$this->userManager->method('get')->willReturnMap($users);
@@ -5052,13 +5101,13 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataFormatRoomShare
*
* @param array $expects
* @param IShare $share
* @param bool $helperAvailable
* @param array $formatShareByHelper
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFormatRoomShare')]
public function testFormatRoomShare(array $expects, IShare $share, bool $helperAvailable, array $formatShareByHelper): void {
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
@@ -5081,8 +5130,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 +5190,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..011210aff42 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -175,7 +176,7 @@ class ShareControllerTest extends \Test\TestCase {
->expects($this->once())
->method('getShareByToken')
->with('invalidtoken')
- ->will($this->throwException(new ShareNotFound()));
+ ->willThrowException(new ShareNotFound());
$this->expectException(NotFoundException::class);
@@ -261,8 +262,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 +337,7 @@ class ShareControllerTest extends \Test\TestCase {
'fileId' => 111,
'owner' => 'ownerUID',
'ownerDisplayName' => 'ownerDisplay',
+ 'isFileRequest' => false,
];
$response = $this->shareController->showShare();
@@ -395,6 +401,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 +482,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 +494,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 +563,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);
@@ -598,9 +613,9 @@ class ShareControllerTest extends \Test\TestCase {
$this->l10n->expects($this->any())
->method('t')
- ->will($this->returnCallback(function ($text, $parameters) {
+ ->willReturnCallback(function ($text, $parameters) {
return vsprintf($text, $parameters);
- }));
+ });
$this->defaults->expects(self::any())
->method('getProductName')
diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
index f2df74fd01b..1a678610805 100644
--- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,15 +16,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 +30,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/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
index c8113558f6c..18e1bf0347b 100644
--- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -69,7 +70,7 @@ class ShareesAPIControllerTest extends TestCase {
);
}
- public function dataSearch(): array {
+ public static function dataSearch(): array {
$noRemote = [IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_EMAIL];
$allTypes = [IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_REMOTE, IShare::TYPE_REMOTE_GROUP, IShare::TYPE_EMAIL];
@@ -197,7 +198,6 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataSearch
*
* @param array $getData
* @param string $apiSetting
@@ -211,6 +211,7 @@ class ShareesAPIControllerTest extends TestCase {
* @param bool $allowGroupSharing
* @throws OCSBadRequestException
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearch')]
public function testSearch(
array $getData,
string $apiSetting,
@@ -301,7 +302,7 @@ class ShareesAPIControllerTest extends TestCase {
$this->assertInstanceOf(DataResponse::class, $sharees->search($search, $itemType, $page, $perPage, $shareType));
}
- public function dataSearchInvalid(): array {
+ public static function dataSearchInvalid(): array {
return [
// Test invalid pagination
[[
@@ -328,11 +329,11 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataSearchInvalid
*
* @param array $getData
* @param string $message
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearchInvalid')]
public function testSearchInvalid($getData, $message): void {
$page = $getData['page'] ?? 1;
$perPage = $getData['perPage'] ?? 200;
@@ -376,7 +377,7 @@ class ShareesAPIControllerTest extends TestCase {
}
}
- public function dataIsRemoteSharingAllowed() {
+ public static function dataIsRemoteSharingAllowed() {
return [
['file', true],
['folder', true],
@@ -386,11 +387,11 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataIsRemoteSharingAllowed
*
* @param string $itemType
* @param bool $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsRemoteSharingAllowed')]
public function testIsRemoteSharingAllowed($itemType, $expected): void {
$this->assertSame($expected, $this->invokePrivate($this->sharees, 'isRemoteSharingAllowed', [$itemType]));
}
@@ -419,7 +420,7 @@ class ShareesAPIControllerTest extends TestCase {
$this->sharees->search('', null, 1, 10, [], false);
}
- public function dataGetPaginationLink() {
+ public static function dataGetPaginationLink() {
return [
[1, '/ocs/v1.php', ['perPage' => 2], '<?perPage=2&page=2>; rel="next"'],
[10, '/ocs/v2.php', ['perPage' => 2], '<?perPage=2&page=11>; rel="next"'],
@@ -427,13 +428,13 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataGetPaginationLink
*
* @param int $page
* @param string $scriptName
* @param array $params
* @param array $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetPaginationLink')]
public function testGetPaginationLink($page, $scriptName, $params, $expected): void {
$this->request->expects($this->once())
->method('getScriptName')
@@ -442,7 +443,7 @@ class ShareesAPIControllerTest extends TestCase {
$this->assertEquals($expected, $this->invokePrivate($this->sharees, 'getPaginationLink', [$page, $params]));
}
- public function dataIsV2() {
+ public static function dataIsV2() {
return [
['/ocs/v1.php', false],
['/ocs/v2.php', true],
@@ -450,11 +451,11 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataIsV2
*
* @param string $scriptName
* @param bool $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsV2')]
public function testIsV2($scriptName, $expected): void {
$this->request->expects($this->once())
->method('getScriptName')
diff --git a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
index 727b0a16cc5..c245d157151 100644
--- a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
+++ b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/EncryptedSizePropagationTest.php b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
index a416cd14715..1be17df3957 100644
--- a/apps/files_sharing/tests/EncryptedSizePropagationTest.php
+++ b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -24,14 +25,19 @@ class EncryptedSizePropagationTest extends SizePropagationTest {
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->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/EtagPropagationTest.php b/apps/files_sharing/tests/EtagPropagationTest.php
index 930279a531c..d8580ea92d5 100644
--- a/apps/files_sharing/tests/EtagPropagationTest.php
+++ b/apps/files_sharing/tests/EtagPropagationTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/ExpireSharesJobTest.php b/apps/files_sharing/tests/ExpireSharesJobTest.php
index e636a52c05c..42bc5a4b659 100644
--- a/apps/files_sharing/tests/ExpireSharesJobTest.php
+++ b/apps/files_sharing/tests/ExpireSharesJobTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -89,7 +90,7 @@ class ExpireSharesJobTest extends \Test\TestCase {
return $shares;
}
- public function dataExpireLinkShare() {
+ public static function dataExpireLinkShare() {
return [
[false, '', false, false],
[false, '', true, false],
@@ -105,13 +106,13 @@ class ExpireSharesJobTest extends \Test\TestCase {
}
/**
- * @dataProvider dataExpireLinkShare
*
* @param bool addExpiration Should we add an expire date
* @param string $interval The dateInterval
* @param bool $addInterval If true add to the current time if false subtract
* @param bool $shouldExpire Should this share be expired
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExpireLinkShare')]
public function testExpireLinkShare($addExpiration, $interval, $addInterval, $shouldExpire): void {
$this->loginAsUser($this->user1);
diff --git a/apps/files_sharing/tests/External/CacheTest.php b/apps/files_sharing/tests/External/CacheTest.php
index 5a862d8ddc0..60820013f11 100644
--- a/apps/files_sharing/tests/External/CacheTest.php
+++ b/apps/files_sharing/tests/External/CacheTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php
index 611392c286e..fbe6eb1e85b 100644
--- a/apps/files_sharing/tests/External/ManagerTest.php
+++ b/apps/files_sharing/tests/External/ManagerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -33,6 +34,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 +48,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();
@@ -129,10 +108,10 @@ class ManagerTest extends TestCase {
$this->userManager->expects($this->any())->method('get')->willReturn($this->user);
$this->groupManager->expects($this->any())->method(('getUserGroups'))->willReturn([$group1, $group2]);
$this->groupManager->expects($this->any())->method(('get'))
- ->will($this->returnValueMap([
+ ->willReturnMap([
['group1', $group1],
['group2', $group2],
- ]));
+ ]);
}
protected function tearDown(): void {
@@ -169,7 +148,7 @@ class ManagerTest extends TestCase {
$this->eventDispatcher,
$this->logger,
]
- )->setMethods(['tryOCMEndPoint'])->getMock();
+ )->onlyMethods(['tryOCMEndPoint'])->getMock();
}
private function setupMounts() {
@@ -222,14 +201,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/External/ScannerTest.php b/apps/files_sharing/tests/External/ScannerTest.php
index 6241174fb28..8b44d47f2b1 100644
--- a/apps/files_sharing/tests/External/ScannerTest.php
+++ b/apps/files_sharing/tests/External/ScannerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/ExternalStorageTest.php b/apps/files_sharing/tests/ExternalStorageTest.php
index ef69e85d71b..1d9d2eed7bd 100644
--- a/apps/files_sharing/tests/ExternalStorageTest.php
+++ b/apps/files_sharing/tests/ExternalStorageTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,7 +20,7 @@ use OCP\Http\Client\IResponse;
* @group DB
*/
class ExternalStorageTest extends \Test\TestCase {
- public function optionsProvider() {
+ public static function optionsProvider() {
return [
[
'http://remoteserver:8080/owncloud',
@@ -87,9 +88,7 @@ class ExternalStorageTest extends \Test\TestCase {
);
}
- /**
- * @dataProvider optionsProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('optionsProvider')]
public function testStorageMountOptions($inputUri, $baseUri): void {
$storage = $this->getTestStorage($inputUri);
$this->assertEquals($baseUri, $storage->getBaseUri());
diff --git a/apps/files_sharing/tests/GroupEtagPropagationTest.php b/apps/files_sharing/tests/GroupEtagPropagationTest.php
index f2c74789697..da9c7c6bd07 100644
--- a/apps/files_sharing/tests/GroupEtagPropagationTest.php
+++ b/apps/files_sharing/tests/GroupEtagPropagationTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/HelperTest.php b/apps/files_sharing/tests/HelperTest.php
index d8b5b9a6f3f..4d0d747b3e4 100644
--- a/apps/files_sharing/tests/HelperTest.php
+++ b/apps/files_sharing/tests/HelperTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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/LockingTest.php b/apps/files_sharing/tests/LockingTest.php
index eba1e662907..280c364a136 100644
--- a/apps/files_sharing/tests/LockingTest.php
+++ b/apps/files_sharing/tests/LockingTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
index 30bae45f520..efc6b3f7f7f 100644
--- a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -72,12 +73,12 @@ class OCSShareAPIMiddlewareTest extends \Test\TestCase {
}
/**
- * @dataProvider dataBeforeController
*
* @param Controller $controller
* @param bool $enabled
* @param bool $exception
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataBeforeController')]
public function testBeforeController(Controller $controller, $enabled, $exception): void {
$this->shareManager->method('shareApiEnabled')->willReturn($enabled);
@@ -104,11 +105,11 @@ class OCSShareAPIMiddlewareTest extends \Test\TestCase {
}
/**
- * @dataProvider dataAfterController
*
* @param Controller $controller
* @param bool $called
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAfterController')]
public function testAfterController(Controller $controller): void {
if ($controller instanceof ShareAPIController) {
$controller->expects($this->once())->method('cleanup');
diff --git a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
index 44ef3bebdc8..631b6a0f51c 100644
--- a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
index 5b4f4de33d7..3d86007a54c 100644
--- a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -79,7 +80,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertFalse(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
- public function externalSharesChecksDataProvider() {
+ public static function externalSharesChecksDataProvider() {
$data = [];
foreach ([false, true] as $annIn) {
@@ -114,9 +115,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
return $data;
}
- /**
- * @dataProvider externalSharesChecksDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('externalSharesChecksDataProvider')]
public function testExternalSharesChecks($annotations, $config, $expectedResult): void {
$this->reflector
->expects($this->atLeastOnce())
@@ -130,9 +129,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertEquals($expectedResult, self::invokePrivate($this->sharingCheckMiddleware, 'externalSharesChecks'));
}
- /**
- * @dataProvider externalSharesChecksDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('externalSharesChecksDataProvider')]
public function testBeforeControllerWithExternalShareControllerWithSharingEnabled($annotations, $config, $noException): void {
$this->appManager
->expects($this->once())
diff --git a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
index 9dccfd80025..3cbbad0f8bc 100644
--- a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
+++ b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php
index 285af51f022..e043a1cb1ef 100644
--- a/apps/files_sharing/tests/MountProviderTest.php
+++ b/apps/files_sharing/tests/MountProviderTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,6 +10,7 @@ namespace OCA\Files_Sharing\Tests;
use OC\Memcache\NullCache;
use OC\Share20\Share;
use OCA\Files_Sharing\MountProvider;
+use OCA\Files_Sharing\SharedMount;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
@@ -20,29 +22,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;
-
- /** @var IUser|MockObject */
- private $user;
- /** @var IStorageFactory|MockObject */
- private $loader;
+ protected MountProvider $provider;
- /** @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();
@@ -68,8 +62,8 @@ class MountProviderTest extends \Test\TestCase {
$shareAttributes = $this->createMock(IShareAttributes::class);
$shareAttributes->method('toArray')->willReturn($attrs);
- $shareAttributes->method('getAttribute')->will(
- $this->returnCallback(function ($scope, $key) use ($attrs) {
+ $shareAttributes->method('getAttribute')->willReturnCallback(
+ function ($scope, $key) use ($attrs) {
$result = null;
foreach ($attrs as $attr) {
if ($attr['key'] === $key && $attr['scope'] === $scope) {
@@ -77,7 +71,7 @@ class MountProviderTest extends \Test\TestCase {
}
}
return $result;
- })
+ }
);
return $shareAttributes;
}
@@ -89,7 +83,7 @@ class MountProviderTest extends \Test\TestCase {
->willReturn($permissions);
$share->expects($this->any())
->method('getAttributes')
- ->will($this->returnValue($this->makeMockShareAttributes($attributes)));
+ ->willReturn($this->makeMockShareAttributes($attributes));
$share->expects($this->any())
->method('getShareOwner')
->willReturn($owner);
@@ -144,38 +138,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 SharedMount[] $mounts */
$mountedShare1 = $mounts[0]->getShare();
$this->assertEquals('2', $mountedShare1->getId());
$this->assertEquals('user2', $mountedShare1->getShareOwner());
@@ -204,7 +194,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 [
@@ -343,12 +333,12 @@ class MountProviderTest extends \Test\TestCase {
* Happens when sharing the same entry to a user through multiple ways,
* like several groups and also direct shares at the same time.
*
- * @dataProvider mergeSharesDataProvider
*
* @param array $userShares array of user share specs
* @param array $groupShares array of group share specs
* @param array $expectedShares array of expected supershare specs
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('mergeSharesDataProvider')]
public function testMergeShares($userShares, $groupShares, $expectedShares, $moveFails = false): void {
$rootFolder = $this->createMock(IRootFolder::class);
$userManager = $this->createMock(IUserManager::class);
@@ -368,24 +358,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) {
@@ -395,7 +379,7 @@ class MountProviderTest extends \Test\TestCase {
if ($moveFails) {
$this->shareManager->expects($this->any())
->method('moveShare')
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
}
$mounts = $this->provider->getMountsForUser($this->user, $this->loader);
@@ -407,6 +391,7 @@ class MountProviderTest extends \Test\TestCase {
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mount);
// supershare
+ /** @var SharedMount $mount */
$share = $mount->getShare();
$this->assertEquals($expectedShare[0], $share->getId());
diff --git a/apps/files_sharing/tests/PropagationTestCase.php b/apps/files_sharing/tests/PropagationTestCase.php
index 1c67b1b9337..98bf5ad92fd 100644
--- a/apps/files_sharing/tests/PropagationTestCase.php
+++ b/apps/files_sharing/tests/PropagationTestCase.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/ShareTest.php b/apps/files_sharing/tests/ShareTest.php
index a0458ab0ffb..737ad6dcb4e 100644
--- a/apps/files_sharing/tests/ShareTest.php
+++ b/apps/files_sharing/tests/ShareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -188,8 +189,8 @@ class ShareTest extends TestCase {
/**
* shared files should never have delete permissions
- * @dataProvider dataProviderTestFileSharePermissions
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderTestFileSharePermissions')]
public function testFileSharePermissions($permission, $expectedvalid): void {
$pass = true;
try {
@@ -207,7 +208,7 @@ class ShareTest extends TestCase {
$this->assertEquals($expectedvalid, $pass);
}
- public function dataProviderTestFileSharePermissions() {
+ public static function dataProviderTestFileSharePermissions() {
$permission1 = Constants::PERMISSION_ALL;
$permission3 = Constants::PERMISSION_READ;
$permission4 = Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE;
diff --git a/apps/files_sharing/tests/SharedMountTest.php b/apps/files_sharing/tests/SharedMountTest.php
index 56accb88db6..cc9c70a241f 100644
--- a/apps/files_sharing/tests/SharedMountTest.php
+++ b/apps/files_sharing/tests/SharedMountTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -224,11 +225,11 @@ class SharedMountTest extends TestCase {
}
/**
- * @dataProvider dataProviderTestStripUserFilesPath
* @param string $path
* @param string $expectedResult
* @param bool $exception if a exception is expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderTestStripUserFilesPath')]
public function testStripUserFilesPath($path, $expectedResult, $exception): void {
$testClass = new DummyTestClassSharedMount(null, null);
try {
@@ -243,7 +244,7 @@ class SharedMountTest extends TestCase {
}
}
- public function dataProviderTestStripUserFilesPath() {
+ public static function dataProviderTestStripUserFilesPath() {
return [
['/user/files/foo.txt', '/foo.txt', false],
['/user/files/folder/foo.txt', '/folder/foo.txt', false],
diff --git a/apps/files_sharing/tests/SharedStorageTest.php b/apps/files_sharing/tests/SharedStorageTest.php
index 55c16c2ebb3..1c1f0a7b71d 100644
--- a/apps/files_sharing/tests/SharedStorageTest.php
+++ b/apps/files_sharing/tests/SharedStorageTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -570,7 +571,7 @@ class SharedStorageTest extends TestCase {
$share->method('getShareOwner')->willReturn(self::TEST_FILES_SHARING_API_USER1);
$share->method('getNodeId')->willReturn(1);
$ownerView = $this->createMock(View::class);
- $ownerView->method('getPath')->will($this->throwException(new NotFoundException()));
+ $ownerView->method('getPath')->willThrowException(new NotFoundException());
$storage = new SharedStorage([
'ownerView' => $ownerView,
'superShare' => $share,
diff --git a/apps/files_sharing/tests/SharesReminderJobTest.php b/apps/files_sharing/tests/SharesReminderJobTest.php
index 7a480fccb23..ce468e279ec 100644
--- a/apps/files_sharing/tests/SharesReminderJobTest.php
+++ b/apps/files_sharing/tests/SharesReminderJobTest.php
@@ -95,7 +95,7 @@ class SharesReminderJobTest extends \Test\TestCase {
parent::tearDown();
}
- public function dataSharesReminder() {
+ public static function dataSharesReminder() {
$someMail = 'test@test.com';
$noExpirationDate = null;
$today = new \DateTime();
@@ -144,7 +144,6 @@ class SharesReminderJobTest extends \Test\TestCase {
}
/**
- * @dataProvider dataSharesReminder
*
* @param \DateTime|null $expirationDate Share expiration date
* @param string $email Share with this email. If empty, the share is of type TYPE_USER and the sharee is user2
@@ -152,6 +151,7 @@ class SharesReminderJobTest extends \Test\TestCase {
* @param int $permissions
* @param bool $shouldBeReminded
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSharesReminder')]
public function testSharesReminder(
?\DateTime $expirationDate, string $email, bool $isEmpty, int $permissions, bool $shouldBeReminded,
): void {
diff --git a/apps/files_sharing/tests/SizePropagationTest.php b/apps/files_sharing/tests/SizePropagationTest.php
index 082348c31a0..e1b67abca90 100644
--- a/apps/files_sharing/tests/SizePropagationTest.php
+++ b/apps/files_sharing/tests/SizePropagationTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/TestCase.php b/apps/files_sharing/tests/TestCase.php
index 34e2d71fb02..9a6935e46b6 100644
--- a/apps/files_sharing/tests/TestCase.php
+++ b/apps/files_sharing/tests/TestCase.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/UnshareChildrenTest.php b/apps/files_sharing/tests/UnshareChildrenTest.php
index 61c4aa94213..ac870212c99 100644
--- a/apps/files_sharing/tests/UnshareChildrenTest.php
+++ b/apps/files_sharing/tests/UnshareChildrenTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_sharing/tests/UpdaterTest.php b/apps/files_sharing/tests/UpdaterTest.php
index efdbeebdf3f..23044e0b2f3 100644
--- a/apps/files_sharing/tests/UpdaterTest.php
+++ b/apps/files_sharing/tests/UpdaterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -123,7 +124,7 @@ class UpdaterTest extends TestCase {
Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
}
- public function shareFolderProvider() {
+ public static function shareFolderProvider() {
return [
['/'],
['/my_shares'],
@@ -133,10 +134,10 @@ class UpdaterTest extends TestCase {
/**
* if a file gets shared the etag for the recipients root should change
*
- * @dataProvider shareFolderProvider
*
* @param string $shareFolder share folder to use
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('shareFolderProvider')]
public function testShareFile($shareFolder): void {
$config = Server::get(IConfig::class);
$oldShareFolder = $config->getSystemValue('share_folder');
diff --git a/apps/files_sharing/tests/WatcherTest.php b/apps/files_sharing/tests/WatcherTest.php
index 2d1568e6a31..15676836915 100644
--- a/apps/files_sharing/tests/WatcherTest.php
+++ b/apps/files_sharing/tests/WatcherTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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 30f503f52d9..301e9f8b5ec 100644
--- a/apps/files_trashbin/l10n/de.js
+++ b/apps/files_trashbin/l10n/de.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"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.",
@@ -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" : "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 9017b23b0ca..3a0d2129645 100644
--- a/apps/files_trashbin/l10n/de.json
+++ b/apps/files_trashbin/l10n/de.json
@@ -5,6 +5,7 @@
"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.",
@@ -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" : "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 291f3733b02..58c9ebb01ff 100644
--- a/apps/files_trashbin/l10n/de_DE.js
+++ b/apps/files_trashbin/l10n/de_DE.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"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" : "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 645f7a146a0..38a7037401b 100644
--- a/apps/files_trashbin/l10n/de_DE.json
+++ b/apps/files_trashbin/l10n/de_DE.json
@@ -5,6 +5,7 @@
"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" : "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..0fb2cf6fcc8 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,12 +16,15 @@ 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",
"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"
+ "Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here",
+ "All files have been permanently deleted" : "All files have been permanently deleted",
+ "Failed to empty deleted files" : "Failed to empty deleted files"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/en_GB.json b/apps/files_trashbin/l10n/en_GB.json
index b4f372b73ca..39c2f293e68 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,12 +14,15 @@
"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",
"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"
+ "Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here",
+ "All files have been permanently deleted" : "All files have been permanently deleted",
+ "Failed to empty deleted files" : "Failed to empty deleted files"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
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..9398c33e8ea 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,12 +16,15 @@ 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",
"You" : "tu",
"List of files that have been deleted." : "Liosta de na comhaid a scriosadh.",
"No deleted files" : "Níl aon chomhaid scriosta",
- "Files and folders you have deleted will show up here" : "Taispeánfar na comhaid agus na fillteáin atá scriosta agat anseo"
+ "Files and folders you have deleted will show up here" : "Taispeánfar na comhaid agus na fillteáin atá scriosta agat anseo",
+ "All files have been permanently deleted" : "Scriosadh na comhaid go léir go buan",
+ "Failed to empty deleted files" : "Theip ar na comhaid scriosta a fholmhú"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/files_trashbin/l10n/ga.json b/apps/files_trashbin/l10n/ga.json
index 0a7738a7f1c..11f97907012 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,12 +14,15 @@
"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",
"You" : "tu",
"List of files that have been deleted." : "Liosta de na comhaid a scriosadh.",
"No deleted files" : "Níl aon chomhaid scriosta",
- "Files and folders you have deleted will show up here" : "Taispeánfar na comhaid agus na fillteáin atá scriosta agat anseo"
+ "Files and folders you have deleted will show up here" : "Taispeánfar na comhaid agus na fillteáin atá scriosta agat anseo",
+ "All files have been permanently deleted" : "Scriosadh na comhaid go léir go buan",
+ "Failed to empty deleted files" : "Theip ar na comhaid scriosta a fholmhú"
},"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_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..8e2b2002a91 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,12 +16,15 @@ OC.L10N.register(
"Original location" : "元の場所",
"Deleted by" : "削除者",
"Deleted" : "削除日時",
+ "few seconds ago" : "数秒前",
"A long time ago" : "ずっと以前に",
"Unknown" : "不明",
"All files" : "すべてのファイル",
"You" : "自分",
"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" : "削除したファイルとフォルダーがここに表示されます",
+ "All files have been permanently deleted" : "すべてのファイルが完全に削除されました",
+ "Failed to empty deleted files" : "削除されたファイルを空にできませんでした"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json
index 42e94b18508..bee5c6ce94b 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,12 +14,15 @@
"Original location" : "元の場所",
"Deleted by" : "削除者",
"Deleted" : "削除日時",
+ "few seconds ago" : "数秒前",
"A long time ago" : "ずっと以前に",
"Unknown" : "不明",
"All files" : "すべてのファイル",
"You" : "自分",
"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" : "削除したファイルとフォルダーがここに表示されます",
+ "All files have been permanently deleted" : "すべてのファイルが完全に削除されました",
+ "Failed to empty deleted files" : "削除されたファイルを空にできませんでした"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
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..381c6af8275 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,12 +16,15 @@ 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",
"You" : "Ty",
"List of files that have been deleted." : "Lista plików, które zostały usunięte.",
"No deleted files" : "Brak usuniętych plików",
- "Files and folders you have deleted will show up here" : "Tutaj pojawią się usunięte pliki i katalogi"
+ "Files and folders you have deleted will show up here" : "Tutaj pojawią się usunięte pliki i katalogi",
+ "All files have been permanently deleted" : "Wszystkie pliki zostały trwale usunięte",
+ "Failed to empty deleted files" : "Nie udało się opróżnić usuniętych plików"
},
"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_trashbin/l10n/pl.json b/apps/files_trashbin/l10n/pl.json
index d193345a74d..dab222a3c16 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,12 +14,15 @@
"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",
"You" : "Ty",
"List of files that have been deleted." : "Lista plików, które zostały usunięte.",
"No deleted files" : "Brak usuniętych plików",
- "Files and folders you have deleted will show up here" : "Tutaj pojawią się usunięte pliki i katalogi"
+ "Files and folders you have deleted will show up here" : "Tutaj pojawią się usunięte pliki i katalogi",
+ "All files have been permanently deleted" : "Wszystkie pliki zostały trwale usunięte",
+ "Failed to empty deleted files" : "Nie udało się opróżnić usuniętych plików"
},"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_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..b60db61c7ce 100644
--- a/apps/files_trashbin/l10n/zh_CN.js
+++ b/apps/files_trashbin/l10n/zh_CN.js
@@ -7,7 +7,8 @@ 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" : "恢复",
- "Empty deleted files" : "清空已删除的文件",
+ "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." : "是否确定要永久删除回收站中的所有文件和文件夹?此操作无法撤销。",
"Cancel" : "取消",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "初始位置",
"Deleted by" : "删除者",
"Deleted" : "已删除",
+ "few seconds ago" : "几秒钟前",
"A long time ago" : "很久之前",
"Unknown" : "未知",
"All files" : "全部文件",
"You" : "你",
"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" : "此处将显示您删除的文件和文件夹",
+ "All files have been permanently deleted" : "所有文件已被永久删除",
+ "Failed to empty deleted files" : "无法清空回收站"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/zh_CN.json b/apps/files_trashbin/l10n/zh_CN.json
index a1f624394cc..a6fbdc3b3ed 100644
--- a/apps/files_trashbin/l10n/zh_CN.json
+++ b/apps/files_trashbin/l10n/zh_CN.json
@@ -5,7 +5,8 @@
"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" : "恢复",
- "Empty deleted files" : "清空已删除的文件",
+ "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." : "是否确定要永久删除回收站中的所有文件和文件夹?此操作无法撤销。",
"Cancel" : "取消",
@@ -13,12 +14,15 @@
"Original location" : "初始位置",
"Deleted by" : "删除者",
"Deleted" : "已删除",
+ "few seconds ago" : "几秒钟前",
"A long time ago" : "很久之前",
"Unknown" : "未知",
"All files" : "全部文件",
"You" : "你",
"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" : "此处将显示您删除的文件和文件夹",
+ "All files have been permanently deleted" : "所有文件已被永久删除",
+ "Failed to empty deleted files" : "无法清空回收站"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/zh_HK.js b/apps/files_trashbin/l10n/zh_HK.js
index 9a13dce5326..7fddf91a5f5 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,12 +16,15 @@ OC.L10N.register(
"Original location" : "原先的位置",
"Deleted by" : "被以下人仕刪除",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "不詳",
"All files" : "所有檔案",
"You" : "您",
"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" : "您已刪除的檔案與資料夾將會在此處顯示",
+ "All files have been permanently deleted" : "所有檔案都已被永久刪除",
+ "Failed to empty deleted files" : "清空已刪除的檔案失敗"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/zh_HK.json b/apps/files_trashbin/l10n/zh_HK.json
index d45a562fcb2..79926613250 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,12 +14,15 @@
"Original location" : "原先的位置",
"Deleted by" : "被以下人仕刪除",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "不詳",
"All files" : "所有檔案",
"You" : "您",
"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" : "您已刪除的檔案與資料夾將會在此處顯示",
+ "All files have been permanently deleted" : "所有檔案都已被永久刪除",
+ "Failed to empty deleted files" : "清空已刪除的檔案失敗"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/zh_TW.js b/apps/files_trashbin/l10n/zh_TW.js
index 879c5aee231..4df774e705a 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,12 +16,15 @@ OC.L10N.register(
"Original location" : "原始位置",
"Deleted by" : "刪除者",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "未知",
"All files" : "所有檔案",
"You" : "您",
"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" : "您刪除的檔案與資料夾將會在此處顯示",
+ "All files have been permanently deleted" : "所有檔案都已被永久刪除",
+ "Failed to empty deleted files" : "清空已刪除的檔案失敗"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/zh_TW.json b/apps/files_trashbin/l10n/zh_TW.json
index 176a8861e08..2d1d11079fd 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,12 +14,15 @@
"Original location" : "原始位置",
"Deleted by" : "刪除者",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "未知",
"All files" : "所有檔案",
"You" : "您",
"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" : "您刪除的檔案與資料夾將會在此處顯示",
+ "All files have been permanently deleted" : "所有檔案都已被永久刪除",
+ "Failed to empty deleted files" : "清空已刪除的檔案失敗"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/lib/AppInfo/Application.php b/apps/files_trashbin/lib/AppInfo/Application.php
index d5b30a18def..76d566f4286 100644
--- a/apps/files_trashbin/lib/AppInfo/Application.php
+++ b/apps/files_trashbin/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
index 5b97901b302..bb383dab78d 100644
--- a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
+++ b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/Capabilities.php b/apps/files_trashbin/lib/Capabilities.php
index 62be7bcb1a1..53c17a475ff 100644
--- a/apps/files_trashbin/lib/Capabilities.php
+++ b/apps/files_trashbin/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/Command/Expire.php b/apps/files_trashbin/lib/Command/Expire.php
index 6c89b6d736c..73a42cd4749 100644
--- a/apps/files_trashbin/lib/Command/Expire.php
+++ b/apps/files_trashbin/lib/Command/Expire.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/Command/ExpireTrash.php b/apps/files_trashbin/lib/Command/ExpireTrash.php
index de1c2ab09b4..9b7fd3c04d8 100644
--- a/apps/files_trashbin/lib/Command/ExpireTrash.php
+++ b/apps/files_trashbin/lib/Command/ExpireTrash.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
diff --git a/apps/files_trashbin/lib/Command/RestoreAllFiles.php b/apps/files_trashbin/lib/Command/RestoreAllFiles.php
index cb4e7f97ecd..ce31f759c0e 100644
--- a/apps/files_trashbin/lib/Command/RestoreAllFiles.php
+++ b/apps/files_trashbin/lib/Command/RestoreAllFiles.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_trashbin/lib/Events/MoveToTrashEvent.php b/apps/files_trashbin/lib/Events/MoveToTrashEvent.php
index 1596315dd20..0d776b606b1 100644
--- a/apps/files_trashbin/lib/Events/MoveToTrashEvent.php
+++ b/apps/files_trashbin/lib/Events/MoveToTrashEvent.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Exceptions/CopyRecursiveException.php b/apps/files_trashbin/lib/Exceptions/CopyRecursiveException.php
index 9da2631c97b..3ea1293e5d7 100644
--- a/apps/files_trashbin/lib/Exceptions/CopyRecursiveException.php
+++ b/apps/files_trashbin/lib/Exceptions/CopyRecursiveException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/files_trashbin/lib/Expiration.php b/apps/files_trashbin/lib/Expiration.php
index ed5d62aa294..7d03c3517ec 100644
--- a/apps/files_trashbin/lib/Expiration.php
+++ b/apps/files_trashbin/lib/Expiration.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/Helper.php b/apps/files_trashbin/lib/Helper.php
index 50107b3bf71..746832e9280 100644
--- a/apps/files_trashbin/lib/Helper.php
+++ b/apps/files_trashbin/lib/Helper.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php b/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php
index 2a2e3a141dc..36237ca080b 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/lib/Storage.php b/apps/files_trashbin/lib/Storage.php
index 9ddb8e791fa..82b7af5a934 100644
--- a/apps/files_trashbin/lib/Storage.php
+++ b/apps/files_trashbin/lib/Storage.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -49,8 +50,8 @@ class Storage extends Wrapper {
} catch (GenericEncryptionException $e) {
// in case of a encryption exception we delete the file right away
$this->logger->info(
- "Can't move file " . $path .
- ' to the trash bin, therefore it was deleted right away');
+ "Can't move file " . $path
+ . ' to the trash bin, therefore it was deleted right away');
return $this->storage->unlink($path);
}
diff --git a/apps/files_trashbin/lib/Trash/BackendNotFoundException.php b/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
index 8e23a04851a..292b6ee293c 100644
--- a/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
+++ b/apps/files_trashbin/lib/Trash/BackendNotFoundException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/ITrashBackend.php b/apps/files_trashbin/lib/Trash/ITrashBackend.php
index f5d4657bfbc..11b3132bfba 100644
--- a/apps/files_trashbin/lib/Trash/ITrashBackend.php
+++ b/apps/files_trashbin/lib/Trash/ITrashBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/ITrashItem.php b/apps/files_trashbin/lib/Trash/ITrashItem.php
index f67276e6f54..299cac49a69 100644
--- a/apps/files_trashbin/lib/Trash/ITrashItem.php
+++ b/apps/files_trashbin/lib/Trash/ITrashItem.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/ITrashManager.php b/apps/files_trashbin/lib/Trash/ITrashManager.php
index 4a2eaead11b..743ea01358a 100644
--- a/apps/files_trashbin/lib/Trash/ITrashManager.php
+++ b/apps/files_trashbin/lib/Trash/ITrashManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php b/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php
index 0fd370a6cf1..204defde35c 100644
--- a/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php
+++ b/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/TrashItem.php b/apps/files_trashbin/lib/Trash/TrashItem.php
index 31dbb10def2..2ae999a2069 100644
--- a/apps/files_trashbin/lib/Trash/TrashItem.php
+++ b/apps/files_trashbin/lib/Trash/TrashItem.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_trashbin/lib/Trash/TrashManager.php b/apps/files_trashbin/lib/Trash/TrashManager.php
index bf3eaebdc2a..521a576c00a 100644
--- a/apps/files_trashbin/lib/Trash/TrashManager.php
+++ b/apps/files_trashbin/lib/Trash/TrashManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -60,8 +61,8 @@ class TrashManager implements ITrashManager {
$fullType = get_class($storage);
$foundType = array_reduce(array_keys($this->backends), function ($type, $registeredType) use ($storage) {
if (
- $storage->instanceOfStorage($registeredType) &&
- ($type === '' || is_subclass_of($registeredType, $type))
+ $storage->instanceOfStorage($registeredType)
+ && ($type === '' || is_subclass_of($registeredType, $type))
) {
return $registeredType;
} else {
diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php
index 1951379cfcb..667066c2fca 100644
--- a/apps/files_trashbin/lib/Trashbin.php
+++ b/apps/files_trashbin/lib/Trashbin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -467,9 +468,9 @@ class Trashbin implements IEventListener {
Server::get(LoggerInterface::class)->error('trash bin database inconsistent! ($user: ' . $user . ' $filename: ' . $filename . ', $timestamp: ' . $timestamp . ')', ['app' => 'files_trashbin']);
} else {
// if location no longer exists, restore file in the root directory
- if ($location !== '/' &&
- (!$view->is_dir('files/' . $location) ||
- !$view->isCreatable('files/' . $location))
+ if ($location !== '/'
+ && (!$view->is_dir('files/' . $location)
+ || !$view->isCreatable('files/' . $location))
) {
$location = '';
}
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..41ed0e1e960 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,20 +59,17 @@ 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
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestRemoveDeletedFiles')]
public function testRemoveDeletedFiles(bool $nodeExists): void {
$this->initTable();
$this->rootFolder
@@ -101,7 +87,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 +96,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 +110,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 +127,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(CleanUp::class)
+ ->onlyMethods(['removeDeletedFiles'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->dbConnection])
->getMock();
$instance->expects($this->exactly(count($userIds)))
@@ -152,8 +138,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 +147,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 +157,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(CleanUp::class)
+ ->onlyMethods(['removeDeletedFiles'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->dbConnection])
->getMock();
$backend = $this->createMock(UserInterface::class);
@@ -199,7 +183,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 +201,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 +219,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..3348edc4016 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;
@@ -80,16 +82,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('expirationData')]
+ public function testExpiration(string $retentionObligation, int $timeNow, int $timestamp, bool $quotaExceeded, bool $expectedResult): void {
$mockedConfig = $this->getMockedConfig($retentionObligation);
$mockedTimeFactory = $this->getMockedTimeFactory($timeNow);
@@ -100,7 +94,7 @@ class ExpirationTest extends \Test\TestCase {
}
- public function timestampTestData(): array {
+ public static function timestampTestData(): array {
return [
[ 'disabled', false],
[ 'auto', false ],
@@ -114,13 +108,8 @@ class ExpirationTest extends \Test\TestCase {
}
- /**
- * @dataProvider timestampTestData
- *
- * @param string $configValue
- * @param int $expectedMaxAgeTimestamp
- */
- public function testGetMaxAgeAsTimestamp($configValue, $expectedMaxAgeTimestamp): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('timestampTestData')]
+ public function testGetMaxAgeAsTimestamp(string $configValue, bool|int $expectedMaxAgeTimestamp): void {
$mockedConfig = $this->getMockedConfig($configValue);
$mockedTimeFactory = $this->getMockedTimeFactory(
self::FAKE_TIME_NOW
@@ -132,10 +121,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 +133,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..87aca2753ef
--- /dev/null
+++ b/apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php
@@ -0,0 +1,70 @@
+<?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);
+ }
+
+ #[\PHPUnit\Framework\Attributes\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..c58ddec97dd 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 = 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 = 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(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(Temporary::class)
->setConstructorArgs([[]])
- ->setMethods(['rename', 'unlink', 'rmdir'])
+ ->onlyMethods(['rename', 'unlink', 'rmdir'])
->getMock();
$storage->expects($this->any())
@@ -566,18 +557,15 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestShouldMoveToTrash')]
+ 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(Temporary::class);
$tmpStorage->expects($this->any())->method('getCache')->willReturn($cache);
$userManager = $this->getMockBuilder(IUserManager::class)
->disableOriginalConstructor()->getMock();
@@ -606,7 +594,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 +606,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 3d2ceee0dcd..6104a242104 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.
@@ -22,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;
@@ -41,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();
@@ -74,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');
@@ -190,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']);
@@ -285,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) {
@@ -304,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
@@ -361,7 +354,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a file
*/
public function testRestoreFileInRoot(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$file = $userFolder->newFile('file1.txt');
$file->putContent('foo');
@@ -393,7 +386,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a file in subfolder
*/
public function testRestoreFileInSubfolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -426,7 +419,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a folder
*/
public function testRestoreFolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -459,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 = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -493,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 = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -530,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 = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$file = $userFolder->newFile('file1.txt');
$file->putContent('foo');
@@ -570,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 = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -624,7 +617,7 @@ class TrashbinTest extends \Test\TestCase {
* the file to root instead
*/
public function testRestoreFileIntoReadOnlySourceFolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -680,7 +673,7 @@ class TrashbinTest extends \Test\TestCase {
Filesystem::tearDown();
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
- \OC::$server->getUserFolder($user);
+ Server::get(IRootFolder::class)->getUserFolder($user);
}
}
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index 11b5e0c783f..22ded5e8723 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
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/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php
index 1f35034d820..29158276415 100644
--- a/apps/files_versions/lib/AppInfo/Application.php
+++ b/apps/files_versions/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
index 6de29364835..794cbc5b882 100644
--- a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
+++ b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/Capabilities.php b/apps/files_versions/lib/Capabilities.php
index 4919006bce3..cb6394f0a36 100644
--- a/apps/files_versions/lib/Capabilities.php
+++ b/apps/files_versions/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/Command/CleanUp.php b/apps/files_versions/lib/Command/CleanUp.php
index 1cd3dccc4dd..e8c46afef16 100644
--- a/apps/files_versions/lib/Command/CleanUp.php
+++ b/apps/files_versions/lib/Command/CleanUp.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/Command/Expire.php b/apps/files_versions/lib/Command/Expire.php
index d1181087150..a30e623c347 100644
--- a/apps/files_versions/lib/Command/Expire.php
+++ b/apps/files_versions/lib/Command/Expire.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/Command/ExpireVersions.php b/apps/files_versions/lib/Command/ExpireVersions.php
index fd0118549c6..d3f341a21d2 100644
--- a/apps/files_versions/lib/Command/ExpireVersions.php
+++ b/apps/files_versions/lib/Command/ExpireVersions.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
diff --git a/apps/files_versions/lib/Controller/PreviewController.php b/apps/files_versions/lib/Controller/PreviewController.php
index be62c5eb957..2c3ff8da70d 100644
--- a/apps/files_versions/lib/Controller/PreviewController.php
+++ b/apps/files_versions/lib/Controller/PreviewController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_versions/lib/Events/CreateVersionEvent.php b/apps/files_versions/lib/Events/CreateVersionEvent.php
index 1399cdbb988..92ed26b2dd6 100644
--- a/apps/files_versions/lib/Events/CreateVersionEvent.php
+++ b/apps/files_versions/lib/Events/CreateVersionEvent.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_versions/lib/Expiration.php b/apps/files_versions/lib/Expiration.php
index 5ef749ad115..1e04d93379f 100644
--- a/apps/files_versions/lib/Expiration.php
+++ b/apps/files_versions/lib/Expiration.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php
index 4b7385d6e2d..0c13cda9933 100644
--- a/apps/files_versions/lib/Listener/FileEventsListener.php
+++ b/apps/files_versions/lib/Listener/FileEventsListener.php
@@ -12,6 +12,7 @@ use OC\DB\Exceptions\DbalException;
use OC\Files\Filesystem;
use OC\Files\Mount\MoveableMount;
use OC\Files\Node\NonExistingFile;
+use OC\Files\Node\NonExistingFolder;
use OC\Files\View;
use OCA\Files_Versions\Storage;
use OCA\Files_Versions\Versions\INeedSyncVersionBackend;
@@ -125,6 +126,22 @@ class FileEventsListener implements IEventListener {
}
public function touch_hook(Node $node): void {
+ // Do not handle folders.
+ if ($node instanceof Folder) {
+ return;
+ }
+
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create or update version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
$previousNode = $this->nodesTouched[$node->getId()] ?? null;
if ($previousNode === null) {
@@ -152,7 +169,22 @@ class FileEventsListener implements IEventListener {
public function created(Node $node): void {
// Do not handle folders.
- if ($node instanceof File && $this->versionManager instanceof INeedSyncVersionBackend) {
+ if (!($node instanceof File)) {
+ return;
+ }
+
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
+ if ($this->versionManager instanceof INeedSyncVersionBackend) {
$this->versionManager->createVersionEntity($node);
}
}
@@ -190,6 +222,17 @@ class FileEventsListener implements IEventListener {
return;
}
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create or update version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
$writeHookInfo = $this->writeHookInfo[$node->getId()] ?? null;
if ($writeHookInfo === null) {
@@ -402,6 +445,24 @@ class FileEventsListener implements IEventListener {
}
}
+ if (!($node instanceof NonExistingFile) && !($node instanceof NonExistingFolder)) {
+ $this->logger->debug('Failed to compute path for node', [
+ 'node' => [
+ 'path' => $node->getPath(),
+ 'owner' => $owner,
+ 'fileid' => $node->getId(),
+ 'size' => $node->getSize(),
+ 'mtime' => $node->getMTime(),
+ ]
+ ]);
+ } else {
+ $this->logger->debug('Failed to compute path for node', [
+ 'node' => [
+ 'path' => $node->getPath(),
+ 'owner' => $owner,
+ ]
+ ]);
+ }
return null;
}
}
diff --git a/apps/files_versions/lib/Sabre/RootCollection.php b/apps/files_versions/lib/Sabre/RootCollection.php
index ded4f3dda7b..1e7129f23da 100644
--- a/apps/files_versions/lib/Sabre/RootCollection.php
+++ b/apps/files_versions/lib/Sabre/RootCollection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_versions/lib/Sabre/VersionHome.php b/apps/files_versions/lib/Sabre/VersionHome.php
index 7f182958d94..07ac491f2a1 100644
--- a/apps/files_versions/lib/Sabre/VersionHome.php
+++ b/apps/files_versions/lib/Sabre/VersionHome.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index 19e7dd598ae..6d53a19a518 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\Files_Versions;
use OC\Files\Filesystem;
+use OC\Files\ObjectStore\ObjectStoreStorage;
use OC\Files\Search\SearchBinaryOperator;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
@@ -23,6 +25,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 +35,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 +420,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(ObjectStoreStorage::class)
+ || $storage2->instanceOfStorage(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/BackendNotFoundException.php b/apps/files_versions/lib/Versions/BackendNotFoundException.php
index af903e9abeb..f1fbecb852a 100644
--- a/apps/files_versions/lib/Versions/BackendNotFoundException.php
+++ b/apps/files_versions/lib/Versions/BackendNotFoundException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_versions/lib/Versions/VersionManager.php b/apps/files_versions/lib/Versions/VersionManager.php
index eb53f04d388..5f547939213 100644
--- a/apps/files_versions/lib/Versions/VersionManager.php
+++ b/apps/files_versions/lib/Versions/VersionManager.php
@@ -60,8 +60,8 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed
foreach ($backends as $type => $backendsForType) {
if (
- $storage->instanceOfStorage($type) &&
- ($foundType === '' || is_subclass_of($type, $foundType))
+ $storage->instanceOfStorage($type)
+ && ($foundType === '' || is_subclass_of($type, $foundType))
) {
foreach ($backendsForType as $backend) {
/** @var IVersionBackend $backend */
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..dd6665f5aef 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,37 +27,26 @@ 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);
}
/**
- * @dataProvider dataTestDeleteVersions
* @param boolean $nodeExists
*/
- public function testDeleteVersions($nodeExists): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestDeleteVersions')]
+ 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..8cf412c3fe0 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;
@@ -79,16 +81,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('expirationData')]
+ 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 +94,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 +103,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 eaa0a02e261..c9f7d27d7ab 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.
@@ -138,8 +140,8 @@ class VersioningTest extends \Test\TestCase {
/**
* @medium
* test expire logic
- * @dataProvider versionsProvider
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('versionsProvider')]
public function testGetExpireList($versions, $sizeOfAllDeletedFiles): void {
// last interval end at 2592000
@@ -163,7 +165,7 @@ class VersioningTest extends \Test\TestCase {
}
}
- public function versionsProvider() {
+ public static function versionsProvider(): array {
return [
// first set of versions uniformly distributed versions
[
@@ -683,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);
@@ -743,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())
@@ -763,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');
@@ -941,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');
@@ -967,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);
@@ -987,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/appinfo/routes.php b/apps/oauth2/appinfo/routes.php
index f40eaf96406..b34aff05552 100644
--- a/apps/oauth2/appinfo/routes.php
+++ b/apps/oauth2/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/oauth2/lib/Db/AccessToken.php b/apps/oauth2/lib/Db/AccessToken.php
index f9c0e6de51e..34adc4f4797 100644
--- a/apps/oauth2/lib/Db/AccessToken.php
+++ b/apps/oauth2/lib/Db/AccessToken.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/oauth2/lib/Db/Client.php b/apps/oauth2/lib/Db/Client.php
index 458d85b24ab..8fce0040c96 100644
--- a/apps/oauth2/lib/Db/Client.php
+++ b/apps/oauth2/lib/Db/Client.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php b/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php
index 1e090665735..04ac0bfbd28 100644
--- a/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php
+++ b/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/oauth2/tests/Controller/OauthApiControllerTest.php b/apps/oauth2/tests/Controller/OauthApiControllerTest.php
index 8d13265ec9e..53dd8549196 100644
--- a/apps/oauth2/tests/Controller/OauthApiControllerTest.php
+++ b/apps/oauth2/tests/Controller/OauthApiControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -222,7 +223,7 @@ class OauthApiControllerTest extends TestCase {
$this->assertEquals($expected, $this->oauthApiController->getToken('refresh_token', null, 'validrefresh', null, null));
}
- public function invalidClientProvider() {
+ public static function invalidClientProvider() {
return [
['invalidClientId', 'invalidClientSecret'],
['clientId', 'invalidClientSecret'],
@@ -231,11 +232,11 @@ class OauthApiControllerTest extends TestCase {
}
/**
- * @dataProvider invalidClientProvider
*
* @param string $clientId
* @param string $clientSecret
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('invalidClientProvider')]
public function testRefreshTokenInvalidClient($clientId, $clientSecret): void {
$expected = new JSONResponse([
'error' => 'invalid_client',
@@ -382,8 +383,8 @@ class OauthApiControllerTest extends TestCase {
->method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
@@ -478,8 +479,8 @@ class OauthApiControllerTest extends TestCase {
->method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
@@ -577,8 +578,8 @@ class OauthApiControllerTest extends TestCase {
->method('update')
->with(
$this->callback(function (AccessToken $token) {
- return $token->getHashedCode() === hash('sha512', 'random128') &&
- $token->getEncryptedToken() === 'newEncryptedToken';
+ return $token->getHashedCode() === hash('sha512', 'random128')
+ && $token->getEncryptedToken() === 'newEncryptedToken';
})
);
diff --git a/apps/oauth2/tests/Controller/SettingsControllerTest.php b/apps/oauth2/tests/Controller/SettingsControllerTest.php
index cdde611c957..030a220e3d7 100644
--- a/apps/oauth2/tests/Controller/SettingsControllerTest.php
+++ b/apps/oauth2/tests/Controller/SettingsControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -95,10 +96,10 @@ class SettingsControllerTest extends TestCase {
->expects($this->once())
->method('insert')
->with($this->callback(function (Client $c) {
- return $c->getName() === 'My Client Name' &&
- $c->getRedirectUri() === 'https://example.com/' &&
- $c->getSecret() === bin2hex('MyHashedSecret') &&
- $c->getClientIdentifier() === 'MyClientIdentifier';
+ return $c->getName() === 'My Client Name'
+ && $c->getRedirectUri() === 'https://example.com/'
+ && $c->getSecret() === bin2hex('MyHashedSecret')
+ && $c->getClientIdentifier() === 'MyClientIdentifier';
}))->willReturnCallback(function (Client $c) {
$c->setId(42);
return $c;
diff --git a/apps/oauth2/tests/Db/AccessTokenMapperTest.php b/apps/oauth2/tests/Db/AccessTokenMapperTest.php
index 1ed282dae1d..41a79fe725b 100644
--- a/apps/oauth2/tests/Db/AccessTokenMapperTest.php
+++ b/apps/oauth2/tests/Db/AccessTokenMapperTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/oauth2/tests/Db/ClientMapperTest.php b/apps/oauth2/tests/Db/ClientMapperTest.php
index fccc0cd96fe..2e8d20ad200 100644
--- a/apps/oauth2/tests/Db/ClientMapperTest.php
+++ b/apps/oauth2/tests/Db/ClientMapperTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/oauth2/tests/Settings/AdminTest.php b/apps/oauth2/tests/Settings/AdminTest.php
index ca9100669df..0f08bb30276 100644
--- a/apps/oauth2/tests/Settings/AdminTest.php
+++ b/apps/oauth2/tests/Settings/AdminTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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..f9d54112cbc
--- /dev/null
+++ b/apps/profile/l10n/sw.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "profile",
+ {
+ "Profile" : "Wasifu",
+ "This application provides the profile" : "Programu hii hutoa wasifu",
+ "Provides a customisable user profile interface." : "Hutoa kiolesura cha wasifu unaoweza kubinafsishwa.",
+ "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..311b0b44266
--- /dev/null
+++ b/apps/profile/l10n/sw.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Profile" : "Wasifu",
+ "This application provides the profile" : "Programu hii hutoa wasifu",
+ "Provides a customisable user profile interface." : "Hutoa kiolesura cha wasifu unaoweza kubinafsishwa.",
+ "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/profile/src/views/Profile.vue b/apps/profile/src/views/Profile.vue
index bc0ebaac2db..7865c0d05f1 100644
--- a/apps/profile/src/views/Profile.vue
+++ b/apps/profile/src/views/Profile.vue
@@ -461,9 +461,11 @@ $content-max-width: 640px;
flex-direction: column;
gap: 8px 0;
margin-top: 20px;
+ max-width: 300px;
&__primary {
margin: 0 auto;
+ max-width: 100%;
&__icon {
filter: var(--primary-invert-if-dark);
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
index 1a3b3c554f8..ccb9e76b8ac 100644
--- a/apps/provisioning_api/l10n/pl.js
+++ b/apps/provisioning_api/l10n/pl.js
@@ -1,8 +1,33 @@
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.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Zalogowane konto musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Could not create non-existing user ID" : "Nie można utworzyć nieistniejącego identyfikatora użytkownika",
"User already exists" : "Użytkownik już istnieje",
+ "Group %1$s does not exist" : "Grupa %1$s nie istnieje",
+ "Insufficient privileges for group %1$s" : "Niewystarczające uprawnienia do grupy %1$s",
+ "No group specified (required for sub-admins)" : "Nie określono grupy (wymagane dla podadministratorów)",
+ "Sub-admin group does not exist" : "Grupa podadministratorów nie istnieje",
+ "Cannot create sub-admins for admin group" : "Nie można tworzyć podadministratorów dla grupy administratorów",
+ "No permissions to promote sub-admins" : "Brak uprawnień do promowania podadministratorów",
+ "Invalid password value" : "Nieprawidłowa wartość hasła",
+ "An email address is required, to send a password link to the user." : "Wymagany jest adres e-mail, aby wysłać użytkownikowi link do ustawienia hasła.",
+ "Required email address was not provided" : "Nie podano wymaganego adresu e-mail",
+ "Invalid quota value: %1$s" : "Nieprawidłowa wartość limitu: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Nieprawidłowy limit. %1$s przekracza maksymalny dopuszczalny limit",
+ "Unlimited quota is forbidden on this instance" : "Nieograniczony limit jest zabroniony na tej instancji",
+ "Setting the password is not supported by the users backend" : "Ustawianie hasła nie jest obsługiwane przez backend użytkowników",
+ "Invalid language" : "Nieprawidłowy język",
+ "Invalid locale" : "Nieprawidłowa lokalizacja",
+ "Invalid first day of week" : "Nieprawidłowy pierwszy dzień tygodnia",
+ "Cannot remove yourself from the admin group" : "Nie możesz usunąć siebie z grupy administratorów",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Nie możesz usunąć siebie z tej grupy, ponieważ jesteś jej podadministratorem",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie można usunąć użytkownika z ostatniej grupy, której jest podadministratorem",
+ "User does not exist" : "Użytkownik nie istnieje",
+ "Group does not exist" : "Grupa nie istnieje",
+ "User is not a sub-admin of this group" : "Użytkownik nie jest podadministratorem tej grupy",
+ "Email address not available" : "Adres e-mail niedostępny",
+ "Sending email failed" : "Wysyłanie e-maila nie powiodło się",
"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ź",
@@ -12,7 +37,7 @@ OC.L10N.register(
"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."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Ta aplikacja umożliwia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do zarządzania kontami, grupami i aplikacjami.",
+ "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." : "Ta aplikacja udostępnia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do tworzenia, edytowania, usuwania i wyszukiwania kont użytkowników,\n\t\tatrybutów, zapytań, ustawiania i usuwania grup, limitów oraz zapytań o całkowite wykorzystanie przestrzeni w Nextcloud. Konta administratorów grup\n\t\tmogą również wykonywać zapytania do Nextcloud i działać jak administrator dla grup, którymi zarządzają. API umożliwia też administratorowi pobieranie aktywnych aplikacji, ich identyfikatorów, oraz włączanie lub wyłączanie aplikacji zdalnie.\n\t\tPo włączeniu aplikacji, zapytania HTTP mogą być wykonywane z nagłówkiem uwierzytelniającym Basic Auth, aby korzystać z funkcji\n\t\twymienionych powyżej. Więcej informacji znajduje się w dokumentacji API Provisioning, 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
index e35ae0c4279..ace8f19e8ab 100644
--- a/apps/provisioning_api/l10n/pl.json
+++ b/apps/provisioning_api/l10n/pl.json
@@ -1,6 +1,31 @@
{ "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.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Zalogowane konto musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Could not create non-existing user ID" : "Nie można utworzyć nieistniejącego identyfikatora użytkownika",
"User already exists" : "Użytkownik już istnieje",
+ "Group %1$s does not exist" : "Grupa %1$s nie istnieje",
+ "Insufficient privileges for group %1$s" : "Niewystarczające uprawnienia do grupy %1$s",
+ "No group specified (required for sub-admins)" : "Nie określono grupy (wymagane dla podadministratorów)",
+ "Sub-admin group does not exist" : "Grupa podadministratorów nie istnieje",
+ "Cannot create sub-admins for admin group" : "Nie można tworzyć podadministratorów dla grupy administratorów",
+ "No permissions to promote sub-admins" : "Brak uprawnień do promowania podadministratorów",
+ "Invalid password value" : "Nieprawidłowa wartość hasła",
+ "An email address is required, to send a password link to the user." : "Wymagany jest adres e-mail, aby wysłać użytkownikowi link do ustawienia hasła.",
+ "Required email address was not provided" : "Nie podano wymaganego adresu e-mail",
+ "Invalid quota value: %1$s" : "Nieprawidłowa wartość limitu: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Nieprawidłowy limit. %1$s przekracza maksymalny dopuszczalny limit",
+ "Unlimited quota is forbidden on this instance" : "Nieograniczony limit jest zabroniony na tej instancji",
+ "Setting the password is not supported by the users backend" : "Ustawianie hasła nie jest obsługiwane przez backend użytkowników",
+ "Invalid language" : "Nieprawidłowy język",
+ "Invalid locale" : "Nieprawidłowa lokalizacja",
+ "Invalid first day of week" : "Nieprawidłowy pierwszy dzień tygodnia",
+ "Cannot remove yourself from the admin group" : "Nie możesz usunąć siebie z grupy administratorów",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Nie możesz usunąć siebie z tej grupy, ponieważ jesteś jej podadministratorem",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie można usunąć użytkownika z ostatniej grupy, której jest podadministratorem",
+ "User does not exist" : "Użytkownik nie istnieje",
+ "Group does not exist" : "Grupa nie istnieje",
+ "User is not a sub-admin of this group" : "Użytkownik nie jest podadministratorem tej grupy",
+ "Email address not available" : "Adres e-mail niedostępny",
+ "Sending email failed" : "Wysyłanie e-maila nie powiodło się",
"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ź",
@@ -10,7 +35,7 @@
"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."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Ta aplikacja umożliwia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do zarządzania kontami, grupami i aplikacjami.",
+ "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." : "Ta aplikacja udostępnia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do tworzenia, edytowania, usuwania i wyszukiwania kont użytkowników,\n\t\tatrybutów, zapytań, ustawiania i usuwania grup, limitów oraz zapytań o całkowite wykorzystanie przestrzeni w Nextcloud. Konta administratorów grup\n\t\tmogą również wykonywać zapytania do Nextcloud i działać jak administrator dla grup, którymi zarządzają. API umożliwia też administratorowi pobieranie aktywnych aplikacji, ich identyfikatorów, oraz włączanie lub wyłączanie aplikacji zdalnie.\n\t\tPo włączeniu aplikacji, zapytania HTTP mogą być wykonywane z nagłówkiem uwierzytelniającym Basic Auth, aby korzystać z funkcji\n\t\twymienionych powyżej. Więcej informacji znajduje się w dokumentacji API Provisioning, 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/AppInfo/Application.php b/apps/provisioning_api/lib/AppInfo/Application.php
index b13f2b0eba5..57de9dad416 100644
--- a/apps/provisioning_api/lib/AppInfo/Application.php
+++ b/apps/provisioning_api/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/provisioning_api/lib/Capabilities.php b/apps/provisioning_api/lib/Capabilities.php
index d3287e5666b..5becf6f611f 100644
--- a/apps/provisioning_api/lib/Capabilities.php
+++ b/apps/provisioning_api/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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..9136ded5b7a 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
@@ -931,17 +946,17 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = self::USER_FIELD_PASSWORD;
$permittedFields[] = self::USER_FIELD_NOTIFICATION_EMAIL;
if (
- $this->config->getSystemValue('force_language', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_language', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LANGUAGE;
}
if (
- $this->config->getSystemValue('force_locale', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_locale', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LOCALE;
$permittedFields[] = self::USER_FIELD_FIRST_DAY_OF_WEEK;
@@ -985,8 +1000,8 @@ class UsersController extends AUserDataOCSController {
// Check if admin / subadmin
$subAdminManager = $this->groupManager->getSubAdmin();
if (
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
+ $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
|| $subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)
) {
// They have permissions over the user
diff --git a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
index c7be073b8af..b014d6a1495 100644
--- a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
+++ b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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..86d2bb8c4fa 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],
@@ -49,16 +48,14 @@ class CapabilitiesTest extends TestCase {
];
}
- /**
- * @dataProvider getCapabilitiesProvider
- */
- public function testGetCapabilities($federationAppEnabled, $federatedFileSharingAppEnabled, $lookupServerEnabled, $expectedFederatedScopeEnabled, $expectedPublishedScopeEnabled): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('getCapabilitiesProvider')]
+ public function testGetCapabilities(bool $federationAppEnabled, bool $federatedFileSharingAppEnabled, bool $lookupServerEnabled, bool $expectedFederatedScopeEnabled, bool $expectedPublishedScopeEnabled): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
- ->will($this->returnValueMap([
+ ->willReturnMap([
['federation', null, $federationAppEnabled],
['federatedfilesharing', null, $federatedFileSharingAppEnabled],
- ]));
+ ]);
$federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->overwriteService(FederatedShareProvider::class, $federatedShareProvider);
diff --git a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
index 41739b6283f..1b09838cbc3 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,21 +96,15 @@ 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],
];
}
- /**
- * @dataProvider dataGetKeys
- * @param string $app
- * @param array|null $keys
- * @param \Exception|null $throws
- * @param int $status
- */
- public function testGetKeys($app, $keys, $throws, $status): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetKeys')]
+ 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,23 +135,15 @@ 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],
];
}
- /**
- * @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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetValue')]
+ 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 +171,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],
@@ -199,16 +186,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSetValue')]
+ 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 +276,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],
@@ -305,15 +284,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteValue')]
+ 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 +339,7 @@ class AppConfigControllerTest extends TestCase {
$this->addToAssertionCount(1);
}
- public function dataVerifyAppIdThrows() {
+ public static function dataVerifyAppIdThrows(): array {
return [
['activity..'],
['activity/'],
@@ -376,18 +348,15 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyAppIdThrows
- * @param string $app
- */
- public function testVerifyAppIdThrows($app): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyAppIdThrows')]
+ 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', ''],
@@ -396,19 +365,14 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyConfigKey
- * @param string $app
- * @param string $key
- * @param string $value
- */
- public function testVerifyConfigKey($app, $key, $value): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyConfigKey')]
+ 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', ''],
@@ -422,13 +386,8 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyConfigKeyThrows
- * @param string $app
- * @param string $key
- * @param string $value
- */
- public function testVerifyConfigKeyThrows($app, $key, $value): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyConfigKeyThrows')]
+ 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..85e5d733b1f 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(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],
@@ -175,14 +161,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetGroups')]
+ public function testGetGroups(?string $search, int $limit, int $offset): void {
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
$search = $search === null ? '' : $search;
@@ -198,12 +178,12 @@ class GroupsControllerTest extends \Test\TestCase {
}
/**
- * @dataProvider dataGetGroups
*
* @param string|null $search
* @param int|null $limit
* @param int|null $offset
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetGroups')]
public function testGetGroupsDetails($search, $limit, $offset): void {
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
@@ -509,7 +489,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 +534,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..cf35a4fb324 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();
@@ -212,8 +199,7 @@ class UsersControllerTest extends TestCase {
->willReturn($subAdminManager);
$this->groupManager
->expects($this->any())
- ->method('displayNamesInGroup')
- ->will($this->onConsecutiveCalls(['AnotherUserInTheFirstGroup' => []], ['UserInTheSecondGroup' => []]));
+ ->method('displayNamesInGroup')->willReturnOnConsecutiveCalls(['AnotherUserInTheFirstGroup' => []], ['UserInTheSecondGroup' => []]);
$expected = [
'users' => [
@@ -449,10 +435,6 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(2))
->method('groupExists')
- ->withConsecutive(
- ['ExistingGroup'],
- ['NonExistingGroup']
- )
->willReturnMap([
['ExistingGroup', true],
['NonExistingGroup', false]
@@ -522,6 +504,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['editUser'])
->getMock();
@@ -798,18 +781,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): void {
+ $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());
}
@@ -828,7 +813,7 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('createUser')
->with('NewUser', 'PasswordOfTheNewUser')
- ->will($this->throwException($exception));
+ ->willThrowException($exception);
$this->logger
->expects($this->once())
->method('error')
@@ -966,11 +951,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 +980,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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
$this->groupManager
@@ -1023,16 +1006,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 +1520,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, []],
@@ -1554,13 +1533,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataSearchByPhoneNumbers
- * @param string $location
- * @param array $search
- * @param int $status
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearchByPhoneNumbers')]
public function testSearchByPhoneNumbers(string $location, array $search, int $status, ?array $searchUsers, ?array $userMatches, array $expected): void {
$knownTo = 'knownTo';
$user = $this->createMock(IUser::class);
@@ -1870,7 +1843,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'],
@@ -1886,9 +1859,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider selfEditChangePropertyProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('selfEditChangePropertyProvider')]
public function testEditUserRegularUserSelfEditChangeProperty($propertyName, $oldValue, $newValue): void {
$loggedInUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
@@ -1964,9 +1935,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider selfEditChangePropertyProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('selfEditChangePropertyProvider')]
public function testEditUserRegularUserSelfEditChangePropertyScope($propertyName, $oldScope, $newScope): void {
$loggedInUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
@@ -2294,16 +2263,14 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'de')->getData());
}
- public function dataEditUserSelfEditChangeLanguageButForced() {
+ public static function dataEditUserSelfEditChangeLanguageButForced(): array {
return [
['de'],
[true],
];
}
- /**
- * @dataProvider dataEditUserSelfEditChangeLanguageButForced
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataEditUserSelfEditChangeLanguageButForced')]
public function testEditUserSelfEditChangeLanguageButForced($forced): void {
$this->expectException(OCSException::class);
@@ -2397,9 +2364,7 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'de')->getData());
}
- /**
- * @dataProvider dataEditUserSelfEditChangeLanguageButForced
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataEditUserSelfEditChangeLanguageButForced')]
public function testEditUserAdminEditChangeLanguageInvalidLanguage(): void {
$this->expectException(OCSException::class);
@@ -3825,6 +3790,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3916,6 +3882,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3942,11 +3909,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 +4229,7 @@ class UsersControllerTest extends TestCase {
}
- public function dataGetEditableFields() {
+ public static function dataGetEditableFields(): array {
return [
[false, true, ISetDisplayNameBackend::class, [
IAccountManager::PROPERTY_EMAIL,
@@ -4386,13 +4352,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetEditableFields
- *
- * @param bool $allowedToChangeDisplayName
- * @param string $userBackend
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetEditableFields')]
public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $allowedToChangeEmail, string $userBackend, array $expected): void {
$this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => match ($key) {
'allow_user_to_change_display_name' => $allowedToChangeDisplayName,
@@ -4427,7 +4387,7 @@ class UsersControllerTest extends TestCase {
$account = $this->createMock(IAccount::class);
$account->method('getProperty')
- ->will($this->returnValueMap($mockedProperties));
+ ->willReturnMap($mockedProperties);
$this->accountManager->expects($this->any())->method('getAccount')
->with($targetUser)
diff --git a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
index d097febb04f..c027e518a3d 100644
--- a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
+++ b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -24,34 +25,27 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAnnotation')]
+ public function testBeforeController(bool $subadminRequired, bool $isAdmin, bool $isSubAdmin, bool $hasSettingAuthorizationAnnotation, bool $shouldThrowException): void {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
$isAdmin,
@@ -80,20 +74,15 @@ class ProvisioningApiMiddlewareTest extends TestCase {
}
}
- public function dataAfterException() {
+ public static function dataAfterException(): array {
return [
[new NotSubAdminException(), false],
[new \Exception('test', 42), true],
];
}
- /**
- * @dataProvider dataAfterException
- *
- * @param \Exception $e
- * @param bool $forwared
- */
- public function testAfterException(\Exception $exception, $forwared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAfterException')]
+ 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..97d62f03ca6 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.",
@@ -488,13 +487,13 @@ OC.L10N.register(
"Details" : "التفاصيل",
"All" : "الكل",
"Limit app usage to groups" : "قصر استخدام التطبيق على بعض المجموعات",
- "No results" : "لا نتائج",
+ "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 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" : "الكاتب",
@@ -523,7 +522,7 @@ OC.L10N.register(
"Marked for remote wipe" : "مُعلَّمٌ ليتم مَحوُه عن بُعدٍ",
"Device settings" : "إعدادات الجهاز",
"Allow filesystem access" : "السماح بالنفاذ إلى نظام الملفات",
- "Rename" : "تعديل الاسم",
+ "Rename" : "إعادة التسمية",
"Revoke" : "سحب ",
"Wipe device" : "مَحوُ الجهاز",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "إبطال رمز Token قد يتسبب في منع محو جهازك إذا لم تكن عملية المحو قد بدأت حتى الآن",
@@ -561,6 +560,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,12 +583,9 @@ 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}\". لن يتم حذف الحسابات.",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
- "Remove group" : "حذف مجموعة",
"Current password" : "كلمة المرور الحالية",
"New password" : "كلمة المرور الجديدة",
"Change password" : "تغيير كلمة المرور",
@@ -643,7 +640,6 @@ OC.L10N.register(
"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" : "تمكين الملف الشخصي",
@@ -662,10 +658,10 @@ OC.L10N.register(
"Unable to update federation scope of the primary {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الأساسي/الأساسية",
"Unable to update federation scope of additional {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الإضافي/الإضافي",
"Add additional email" : "إضافة بريد إلكتروني إضافي",
- "Add" : "إضافة",
+ "Add" : "إضافة ",
"Create" : "إنشاء",
"Change" : "تعديل",
- "Delete" : "إلغاء",
+ "Delete" : "حذف",
"Reshare" : "إعادة المشاركة",
"Default language" : "اللغة الافتراضية",
"Common languages" : "اللغات الشائعة",
@@ -741,7 +737,7 @@ OC.L10N.register(
"Set the language" : "تعيين اللغة",
"Toggle account actions menu" : "تبديل قائمة إجراءات الحساب",
"Done" : "تمّ",
- "Edit" : "تعديل",
+ "Edit" : "تحرير",
"Account management settings" : "إعدادات إدارة الحساب",
"Visibility" : "الرؤية",
"Show language" : "لغة العرض",
@@ -888,51 +884,18 @@ 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" : "لا يوفر أي من تطبيقاتك المثبتة حاليًا وظيفة معالجة النصوص",
+ "- 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. ",
"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 من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
- "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" : "فشل تحميل المجموعات الفرعية مع التفاصيل"
},
"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..766a027c7b0 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.",
@@ -486,13 +485,13 @@
"Details" : "التفاصيل",
"All" : "الكل",
"Limit app usage to groups" : "قصر استخدام التطبيق على بعض المجموعات",
- "No results" : "لا نتائج",
+ "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 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" : "الكاتب",
@@ -521,7 +520,7 @@
"Marked for remote wipe" : "مُعلَّمٌ ليتم مَحوُه عن بُعدٍ",
"Device settings" : "إعدادات الجهاز",
"Allow filesystem access" : "السماح بالنفاذ إلى نظام الملفات",
- "Rename" : "تعديل الاسم",
+ "Rename" : "إعادة التسمية",
"Revoke" : "سحب ",
"Wipe device" : "مَحوُ الجهاز",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "إبطال رمز Token قد يتسبب في منع محو جهازك إذا لم تكن عملية المحو قد بدأت حتى الآن",
@@ -559,6 +558,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,12 +581,9 @@
"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}\". لن يتم حذف الحسابات.",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
- "Remove group" : "حذف مجموعة",
"Current password" : "كلمة المرور الحالية",
"New password" : "كلمة المرور الجديدة",
"Change password" : "تغيير كلمة المرور",
@@ -641,7 +638,6 @@
"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" : "تمكين الملف الشخصي",
@@ -660,10 +656,10 @@
"Unable to update federation scope of the primary {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الأساسي/الأساسية",
"Unable to update federation scope of additional {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الإضافي/الإضافي",
"Add additional email" : "إضافة بريد إلكتروني إضافي",
- "Add" : "إضافة",
+ "Add" : "إضافة ",
"Create" : "إنشاء",
"Change" : "تعديل",
- "Delete" : "إلغاء",
+ "Delete" : "حذف",
"Reshare" : "إعادة المشاركة",
"Default language" : "اللغة الافتراضية",
"Common languages" : "اللغات الشائعة",
@@ -739,7 +735,7 @@
"Set the language" : "تعيين اللغة",
"Toggle account actions menu" : "تبديل قائمة إجراءات الحساب",
"Done" : "تمّ",
- "Edit" : "تعديل",
+ "Edit" : "تحرير",
"Account management settings" : "إعدادات إدارة الحساب",
"Visibility" : "الرؤية",
"Show language" : "لغة العرض",
@@ -886,51 +882,18 @@
"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" : "لا يوفر أي من تطبيقاتك المثبتة حاليًا وظيفة معالجة النصوص",
+ "- 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. ",
"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 من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
- "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" : "فشل تحميل المجموعات الفرعية مع التفاصيل"
},"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..10f515a74fe 100644
--- a/apps/settings/l10n/ast.js
+++ b/apps/settings/l10n/ast.js
@@ -265,7 +265,7 @@ OC.L10N.register(
"Resources" : "Recursos",
"Documentation" : "Documentación",
"Interact" : "Interactuar",
- "Report a bug" : "Informar d'un fallju",
+ "Report a bug" : "Informar d'un fallu",
"Request feature" : "Pidir una función",
"Ask questions or discuss" : "Entrugar o discutir",
"Rate" : "Valorar",
@@ -317,6 +317,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,11 +325,9 @@ 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",
"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",
@@ -530,36 +529,11 @@ 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"
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ast.json b/apps/settings/l10n/ast.json
index e989236ce1a..051ecd727cf 100644
--- a/apps/settings/l10n/ast.json
+++ b/apps/settings/l10n/ast.json
@@ -263,7 +263,7 @@
"Resources" : "Recursos",
"Documentation" : "Documentación",
"Interact" : "Interactuar",
- "Report a bug" : "Informar d'un fallju",
+ "Report a bug" : "Informar d'un fallu",
"Request feature" : "Pidir una función",
"Ask questions or discuss" : "Entrugar o discutir",
"Rate" : "Valorar",
@@ -315,6 +315,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,11 +323,9 @@
"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",
"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",
@@ -528,36 +527,11 @@
"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"
+ "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>)"
},"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..fae12d1fa34 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,6 +184,7 @@ 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" : "Тип",
@@ -184,14 +192,15 @@ OC.L10N.register(
"Learn more" : "Научете повече",
"Confirm" : "Потвърдете",
"Cancel" : "Отказ",
- "View in store" : "Страница в магазина",
+ "Description" : "Описание",
+ "View in store" : "Преглед в магазина",
"Visit website" : "Уеб страницата",
"Admin documentation" : "Документация за администратори",
"Developer documentation" : "Документация за разработчици",
"Details" : "Подробности",
"All" : "Всички",
"Limit app usage to groups" : "Ограничаване използването на приложението от групи",
- "No results" : "Няма резултати",
+ "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. В бъдеще това ще бъде грешка.",
@@ -200,7 +209,8 @@ OC.L10N.register(
"Categories" : "Категории",
"Resources" : "Ресурси",
"Documentation" : "Документация",
- "Report a bug" : "Докладване на грешка",
+ "Interact" : "Взаимодействайте",
+ "Report a bug" : "Докладване за грешка",
"Request feature" : "Заявете функционалност",
"Ask questions or discuss" : "Задайте въпрос",
"Rate" : "Оценяване",
@@ -214,7 +224,7 @@ OC.L10N.register(
"Marked for remote wipe" : "Маркирано за отдалечено изтриване",
"Device settings" : "Настройки за устройството",
"Allow filesystem access" : "Разрешен достъп до файловете",
- "Rename" : "Преименувай",
+ "Rename" : "Преименуване",
"Revoke" : "Отнемане",
"Wipe device" : "Изтрий устройството",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.",
@@ -240,6 +250,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." : "Криптирането от страна на сървъра, прави възможно криптирането на файлове, които се качват на този сървър. Това идва с ограничения като намаляване на производителността, така че го активирайте, само ако е необходимо. ",
@@ -256,24 +267,28 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
- "Remove group" : "Премахване на групата",
"Current password" : "Текуща парола",
"New password" : "Нова парола",
- "Change 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 setting profile picture" : "Грешка при задаване на профилната снимка",
+ "Error cropping profile picture" : "Грешка при изрязване на профилната снимка",
"Error saving profile picture" : "Грешка при записване на профилната снимка",
- "Error removing profile picture" : "Грешка при премахване на профилна снимка",
+ "Error removing profile picture" : "Грешка при премахване на профилната снимка",
"Your profile picture" : "Вашата профилна снимка",
- "Upload profile picture" : "Качване на профилна снимка",
+ "Upload profile picture" : "Качи профилна снимка",
"Choose profile picture from Files" : "Избор на профилна снимка от Файлове",
- "Remove profile picture" : "Премахване на профилна снимка",
+ "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 часа, докато вашата профилна снимка бъде актуализирана навсякъде.",
+ "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" : "Опции за имейл",
@@ -290,30 +305,36 @@ OC.L10N.register(
"Unable to delete additional email address" : "Не може да се изтрие допълнителен имейл адрес",
"Primary email for password reset and notifications" : "Основен имейл за възстановяване на парола и известия",
"No email address set" : "Не е въведен имейл адрес",
- "Your handle" : "Вашият манипулатор",
+ "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" : "Езикът не може да се актуализира",
"Help translate" : "Помогнете с превода",
"No language set" : "Няма зададен език",
- "Unable to update locale" : "Не може да се актуализира езиково-географската променлива",
- "Week starts on {firstDayOfWeek}" : "Седмицата започва на {firstDayOfWeek}",
- "No locale set" : "Не е зададена езиково-географска променлива",
+ "Unable to update locale" : "Неуспешно обновяване на регионалните настройки",
+ "Locales" : "Регионални настройки",
+ "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." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.",
+ "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" : "Вашата уеб страница",
+ "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" : "Създай",
+ "Add" : "Добавяне",
+ "Create" : "Създаване",
"Change" : "Промени",
"Delete" : "Изтриване",
"Reshare" : "Повторно споделяне",
@@ -322,7 +343,7 @@ OC.L10N.register(
"Other languages" : "Други езици",
"Password change is disabled because the master key is disabled" : "Промяната на паролата е деактивирана, защото главният ключ е деактивиран",
"No accounts" : "Без сметки",
- "Display name" : "Вписване като",
+ "Display name" : "Име за визуализация",
"Email" : "Имейл",
"Quota" : "Квота",
"Language" : "Език",
@@ -343,8 +364,9 @@ OC.L10N.register(
"Account deletion" : "Изтриване на профил",
"Delete {userid}'s account" : "Изтриване на профил на {userid}",
"Welcome mail sent!" : "Изпратена е поща за добре дошли!",
- "Done" : "Готово",
+ "Done" : "Завършено",
"Edit" : "Редактиране",
+ "Visibility" : "Видимост",
"Show storage path" : "Показване на пътя за хранилище",
"Show last login" : "Показвай последното вписване",
"Send email" : "Изпрати имейл",
@@ -370,17 +392,22 @@ OC.L10N.register(
"Location" : "Местоположение",
"Profile picture" : "Снимка за профила",
"About" : "Относно",
+ "Date of birth" : "Дата на раждане",
"Full name" : "Име",
"Additional email" : "Допълнителен имейл",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)",
"Headline" : "Заглавие",
"Organisation" : "Организация",
"Phone number" : "Тел. номер",
+ "Pronouns" : "Обръщение",
"Role" : "Роля",
"Website" : "Уеб страница",
"Profile visibility" : "Видимост на профил",
- "Locale" : "Локален/Местен/",
+ "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" : "Изключени приложения",
@@ -440,21 +467,9 @@ 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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Използвате <strong>{usage}</strong> от <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json
index f121cc1cad9..76a5f45bd1d 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,6 +182,7 @@
"_%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" : "Тип",
@@ -182,14 +190,15 @@
"Learn more" : "Научете повече",
"Confirm" : "Потвърдете",
"Cancel" : "Отказ",
- "View in store" : "Страница в магазина",
+ "Description" : "Описание",
+ "View in store" : "Преглед в магазина",
"Visit website" : "Уеб страницата",
"Admin documentation" : "Документация за администратори",
"Developer documentation" : "Документация за разработчици",
"Details" : "Подробности",
"All" : "Всички",
"Limit app usage to groups" : "Ограничаване използването на приложението от групи",
- "No results" : "Няма резултати",
+ "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. В бъдеще това ще бъде грешка.",
@@ -198,7 +207,8 @@
"Categories" : "Категории",
"Resources" : "Ресурси",
"Documentation" : "Документация",
- "Report a bug" : "Докладване на грешка",
+ "Interact" : "Взаимодействайте",
+ "Report a bug" : "Докладване за грешка",
"Request feature" : "Заявете функционалност",
"Ask questions or discuss" : "Задайте въпрос",
"Rate" : "Оценяване",
@@ -212,7 +222,7 @@
"Marked for remote wipe" : "Маркирано за отдалечено изтриване",
"Device settings" : "Настройки за устройството",
"Allow filesystem access" : "Разрешен достъп до файловете",
- "Rename" : "Преименувай",
+ "Rename" : "Преименуване",
"Revoke" : "Отнемане",
"Wipe device" : "Изтрий устройството",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.",
@@ -238,6 +248,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." : "Криптирането от страна на сървъра, прави възможно криптирането на файлове, които се качват на този сървър. Това идва с ограничения като намаляване на производителността, така че го активирайте, само ако е необходимо. ",
@@ -254,24 +265,28 @@
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
- "Remove group" : "Премахване на групата",
"Current password" : "Текуща парола",
"New password" : "Нова парола",
- "Change 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 setting profile picture" : "Грешка при задаване на профилната снимка",
+ "Error cropping profile picture" : "Грешка при изрязване на профилната снимка",
"Error saving profile picture" : "Грешка при записване на профилната снимка",
- "Error removing profile picture" : "Грешка при премахване на профилна снимка",
+ "Error removing profile picture" : "Грешка при премахване на профилната снимка",
"Your profile picture" : "Вашата профилна снимка",
- "Upload profile picture" : "Качване на профилна снимка",
+ "Upload profile picture" : "Качи профилна снимка",
"Choose profile picture from Files" : "Избор на профилна снимка от Файлове",
- "Remove profile picture" : "Премахване на профилна снимка",
+ "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 часа, докато вашата профилна снимка бъде актуализирана навсякъде.",
+ "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" : "Опции за имейл",
@@ -288,30 +303,36 @@
"Unable to delete additional email address" : "Не може да се изтрие допълнителен имейл адрес",
"Primary email for password reset and notifications" : "Основен имейл за възстановяване на парола и известия",
"No email address set" : "Не е въведен имейл адрес",
- "Your handle" : "Вашият манипулатор",
+ "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" : "Езикът не може да се актуализира",
"Help translate" : "Помогнете с превода",
"No language set" : "Няма зададен език",
- "Unable to update locale" : "Не може да се актуализира езиково-географската променлива",
- "Week starts on {firstDayOfWeek}" : "Седмицата започва на {firstDayOfWeek}",
- "No locale set" : "Не е зададена езиково-географска променлива",
+ "Unable to update locale" : "Неуспешно обновяване на регионалните настройки",
+ "Locales" : "Регионални настройки",
+ "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." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.",
+ "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" : "Вашата уеб страница",
+ "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" : "Създай",
+ "Add" : "Добавяне",
+ "Create" : "Създаване",
"Change" : "Промени",
"Delete" : "Изтриване",
"Reshare" : "Повторно споделяне",
@@ -320,7 +341,7 @@
"Other languages" : "Други езици",
"Password change is disabled because the master key is disabled" : "Промяната на паролата е деактивирана, защото главният ключ е деактивиран",
"No accounts" : "Без сметки",
- "Display name" : "Вписване като",
+ "Display name" : "Име за визуализация",
"Email" : "Имейл",
"Quota" : "Квота",
"Language" : "Език",
@@ -341,8 +362,9 @@
"Account deletion" : "Изтриване на профил",
"Delete {userid}'s account" : "Изтриване на профил на {userid}",
"Welcome mail sent!" : "Изпратена е поща за добре дошли!",
- "Done" : "Готово",
+ "Done" : "Завършено",
"Edit" : "Редактиране",
+ "Visibility" : "Видимост",
"Show storage path" : "Показване на пътя за хранилище",
"Show last login" : "Показвай последното вписване",
"Send email" : "Изпрати имейл",
@@ -368,17 +390,22 @@
"Location" : "Местоположение",
"Profile picture" : "Снимка за профила",
"About" : "Относно",
+ "Date of birth" : "Дата на раждане",
"Full name" : "Име",
"Additional email" : "Допълнителен имейл",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)",
"Headline" : "Заглавие",
"Organisation" : "Организация",
"Phone number" : "Тел. номер",
+ "Pronouns" : "Обръщение",
"Role" : "Роля",
"Website" : "Уеб страница",
"Profile visibility" : "Видимост на профил",
- "Locale" : "Локален/Местен/",
+ "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" : "Изключени приложения",
@@ -438,21 +465,9 @@
"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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Използвате <strong>{usage}</strong> от <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},"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..bf6fc6c32b4 100644
--- a/apps/settings/l10n/br.js
+++ b/apps/settings/l10n/br.js
@@ -149,7 +149,7 @@ OC.L10N.register(
"Confirm" : "Kadarnañ",
"Cancel" : "Nullañ",
"Description" : "Deskrivadur",
- "View in store" : "Gwellet er stall",
+ "View in store" : "Gwelet er stal",
"Visit website" : "Mont war al lec'hienn",
"Admin documentation" : "Dielvadur ar merour",
"Developer documentation" : "Diellvadur an digeler",
@@ -165,6 +165,7 @@ OC.L10N.register(
"Documentation" : "Diellvadur",
"Report a bug" : "Dugas ur gudenn",
"Google Chrome for Android" : "Google Chrome evit Android",
+ "{productName} Android app" : "{productName} Arload Android",
"This session" : "An estez-mañ",
"Marked for remote wipe" : "Market evit bezañ lamet a bell",
"Device settings" : "Stummoù ardivink",
@@ -197,10 +198,8 @@ 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." : "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ñ ?",
"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",
@@ -208,9 +207,8 @@ OC.L10N.register(
"No email address set" : "Chom-lec'h postel ebet lakaet",
"Help translate" : "Sikour treiñ",
"No language set" : "Yezh ebet lakaet",
+ "Week starts on {firstDayOfWeek}" : "Krog a ra ar sizunn gant {firstDayOfWeek}",
"Your phone number" : "O niverenn pelgomzer",
- "Add" : "Ouzhpennañ",
- "Create" : "Krouiñ",
"Change" : "Cheñch",
"Delete" : "Dilemel",
"Reshare" : "Adrannañ",
@@ -235,7 +233,7 @@ OC.L10N.register(
"Delete {userid}'s account" : "Dilemel kont {userid}",
"Welcome mail sent!" : "Postel degemer kaset !",
"Done" : "Graet",
- "Edit" : "Cheñch",
+ "Edit" : "Embann",
"Show storage path" : "Diskouez an hent klenkañ",
"Show last login" : "Diskouez ar c'hennask diwezhañ",
"Send email" : "Kas postel",
@@ -313,14 +311,7 @@ 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"
+ "You are using <strong>{usage}</strong>" : "Emaoc'h o imlpij <strong>{usage}</strong>"
},
"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..d0248f36064 100644
--- a/apps/settings/l10n/br.json
+++ b/apps/settings/l10n/br.json
@@ -147,7 +147,7 @@
"Confirm" : "Kadarnañ",
"Cancel" : "Nullañ",
"Description" : "Deskrivadur",
- "View in store" : "Gwellet er stall",
+ "View in store" : "Gwelet er stal",
"Visit website" : "Mont war al lec'hienn",
"Admin documentation" : "Dielvadur ar merour",
"Developer documentation" : "Diellvadur an digeler",
@@ -163,6 +163,7 @@
"Documentation" : "Diellvadur",
"Report a bug" : "Dugas ur gudenn",
"Google Chrome for Android" : "Google Chrome evit Android",
+ "{productName} Android app" : "{productName} Arload Android",
"This session" : "An estez-mañ",
"Marked for remote wipe" : "Market evit bezañ lamet a bell",
"Device settings" : "Stummoù ardivink",
@@ -195,10 +196,8 @@
"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ñ ?",
"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",
@@ -206,9 +205,8 @@
"No email address set" : "Chom-lec'h postel ebet lakaet",
"Help translate" : "Sikour treiñ",
"No language set" : "Yezh ebet lakaet",
+ "Week starts on {firstDayOfWeek}" : "Krog a ra ar sizunn gant {firstDayOfWeek}",
"Your phone number" : "O niverenn pelgomzer",
- "Add" : "Ouzhpennañ",
- "Create" : "Krouiñ",
"Change" : "Cheñch",
"Delete" : "Dilemel",
"Reshare" : "Adrannañ",
@@ -233,7 +231,7 @@
"Delete {userid}'s account" : "Dilemel kont {userid}",
"Welcome mail sent!" : "Postel degemer kaset !",
"Done" : "Graet",
- "Edit" : "Cheñch",
+ "Edit" : "Embann",
"Show storage path" : "Diskouez an hent klenkañ",
"Show last login" : "Diskouez ar c'hennask diwezhañ",
"Send email" : "Kas postel",
@@ -311,14 +309,7 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Emaoc'h o imlpij <strong>{usage}</strong>"
},"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..91018a0d028 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.",
@@ -475,15 +474,15 @@ OC.L10N.register(
"ExApp container mounts" : "Muntatge de contenidors ExApp",
"No mounts defined" : "No s'han definit muntatges",
"Description" : "Descripció",
- "View in store" : "Mostra-ho al magatzem",
+ "View in store" : "Mostra-ho a la botiga",
"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",
+ "All" : "Totes",
"Limit app usage to groups" : "Limita l’ús de l’aplicació als grups",
- "No results" : "No hi ha resultats",
+ "No results" : "Sense 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",
@@ -518,7 +517,7 @@ OC.L10N.register(
"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",
+ "Rename" : "Canviar 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.",
@@ -556,6 +555,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,15 +578,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.",
"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",
+ "New password" : "Nova 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",
@@ -660,7 +656,7 @@ OC.L10N.register(
"Add" : "Afegeix",
"Create" : "Crea",
"Change" : "Canvia",
- "Delete" : "Suprimeix",
+ "Delete" : "Suprimir",
"Reshare" : "Tornar a compartir",
"Default language" : "Llengua per defecte",
"Common languages" : "Llengües freqüents",
@@ -674,7 +670,7 @@ OC.L10N.register(
"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",
+ "Display name" : "Nom de visualització",
"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)",
@@ -879,50 +875,17 @@ 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",
+ "- 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",
- "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."
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json
index 07827fe5459..e6cf7977103 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.",
@@ -473,15 +472,15 @@
"ExApp container mounts" : "Muntatge de contenidors ExApp",
"No mounts defined" : "No s'han definit muntatges",
"Description" : "Descripció",
- "View in store" : "Mostra-ho al magatzem",
+ "View in store" : "Mostra-ho a la botiga",
"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",
+ "All" : "Totes",
"Limit app usage to groups" : "Limita l’ús de l’aplicació als grups",
- "No results" : "No hi ha resultats",
+ "No results" : "Sense 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",
@@ -516,7 +515,7 @@
"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",
+ "Rename" : "Canviar 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.",
@@ -554,6 +553,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,15 +576,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.",
"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",
+ "New password" : "Nova 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",
@@ -658,7 +654,7 @@
"Add" : "Afegeix",
"Create" : "Crea",
"Change" : "Canvia",
- "Delete" : "Suprimeix",
+ "Delete" : "Suprimir",
"Reshare" : "Tornar a compartir",
"Default language" : "Llengua per defecte",
"Common languages" : "Llengües freqüents",
@@ -672,7 +668,7 @@
"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",
+ "Display name" : "Nom de visualització",
"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)",
@@ -877,50 +873,17 @@
"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",
+ "- 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",
- "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."
+ "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>)"
},"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..15e1f22443a 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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nastavení Nextcloud",
"Unified task processing" : "Sjednocené zpracovávání úkolů",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Úlohy AI je možné implementovat různými aplikacemi. Zde je možné nastavit, která z nich má být používána který typ úlohy.",
+ "Allow AI usage for guest users" : "Umožnit uživatelům-hostům využívat AI",
"Task:" : "Úloha:",
"Enable" : "Zapnout",
"None of your currently installed apps provide Task processing functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci zpracovávání úkolů",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Povolit sdílení se skupinami",
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
"Ignore the following groups when checking group membership" : "Při kontrole členství ve skupinách ignorovat následující skupiny",
+ "Allow users to preview files even if download is disabled" : "Umožnit uživatelům zobrazovat si náhledy souborů, i když je jejich stahování znepřístupněno",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Uživatelé i tak budou moci pořizovat snímky/video z obrazovky. Neposkytuje to jakoukoli definitivní ochranu.",
"Allow users to share via link and emails" : "Povolit uživatelům sdílet pomocí odkazů a e-mailů",
"Allow public uploads" : "Povolit veřejné nahrávání souborů",
"Always ask for a password" : "Vždy se zeptat na heslo",
@@ -417,7 +423,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",
@@ -480,7 +486,7 @@ OC.L10N.register(
"ExApp container mounts" : "Připojení kontejneru s ExApp",
"No mounts defined" : "Nedefinována žádná připojení",
"Description" : "Popis",
- "View in store" : "Zobrazit v katalogu",
+ "View in store" : "Zobrazit v katalogu aplikací",
"Visit website" : "Navštívit webovou stránku",
"Usage documentation" : "Dokumentace k používání",
"Admin documentation" : "Dokumentace pro správce",
@@ -561,6 +567,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,13 +590,13 @@ 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.",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
- "Remove group" : "Odebrat skupinu",
- "Current password" : "Stávající heslo",
+ "Delete group" : "Smazat skupinu",
+ "Current password" : "Dosavadní heslo",
"New password" : "Nové heslo",
"Change password" : "Změnit heslo",
"Choose your profile picture" : "Vyberte si svůj profilový obrázek",
@@ -613,7 +620,7 @@ OC.L10N.register(
"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",
+ "Email options" : "Předvolby pro e-mail",
"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",
@@ -643,7 +650,7 @@ OC.L10N.register(
"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",
+ "Your phone number" : "Vlastní 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",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "ona/jí",
"he/him" : "on/jemu",
"they/them" : "oni/jim",
+ "Your pronouns. E.g. {pronounsExample}" : "Vaše zájmena. Např. {pronounsExample}",
"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",
@@ -663,7 +671,7 @@ OC.L10N.register(
"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",
+ "Create" : "Vytvářet",
"Change" : "Změnit",
"Delete" : "Smazat",
"Reshare" : "Sdílet dál dalším",
@@ -764,7 +772,7 @@ OC.L10N.register(
"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í…",
+ "Adding your device …" : "Přidávání vašeho 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.",
@@ -888,51 +896,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"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..4637303628d 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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nastavení Nextcloud",
"Unified task processing" : "Sjednocené zpracovávání úkolů",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Úlohy AI je možné implementovat různými aplikacemi. Zde je možné nastavit, která z nich má být používána který typ úlohy.",
+ "Allow AI usage for guest users" : "Umožnit uživatelům-hostům využívat AI",
"Task:" : "Úloha:",
"Enable" : "Zapnout",
"None of your currently installed apps provide Task processing functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci zpracovávání úkolů",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Povolit sdílení se skupinami",
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
"Ignore the following groups when checking group membership" : "Při kontrole členství ve skupinách ignorovat následující skupiny",
+ "Allow users to preview files even if download is disabled" : "Umožnit uživatelům zobrazovat si náhledy souborů, i když je jejich stahování znepřístupněno",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Uživatelé i tak budou moci pořizovat snímky/video z obrazovky. Neposkytuje to jakoukoli definitivní ochranu.",
"Allow users to share via link and emails" : "Povolit uživatelům sdílet pomocí odkazů a e-mailů",
"Allow public uploads" : "Povolit veřejné nahrávání souborů",
"Always ask for a password" : "Vždy se zeptat na heslo",
@@ -415,7 +421,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",
@@ -478,7 +484,7 @@
"ExApp container mounts" : "Připojení kontejneru s ExApp",
"No mounts defined" : "Nedefinována žádná připojení",
"Description" : "Popis",
- "View in store" : "Zobrazit v katalogu",
+ "View in store" : "Zobrazit v katalogu aplikací",
"Visit website" : "Navštívit webovou stránku",
"Usage documentation" : "Dokumentace k používání",
"Admin documentation" : "Dokumentace pro správce",
@@ -559,6 +565,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,13 +588,13 @@
"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.",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
- "Remove group" : "Odebrat skupinu",
- "Current password" : "Stávající heslo",
+ "Delete group" : "Smazat skupinu",
+ "Current password" : "Dosavadní heslo",
"New password" : "Nové heslo",
"Change password" : "Změnit heslo",
"Choose your profile picture" : "Vyberte si svůj profilový obrázek",
@@ -611,7 +618,7 @@
"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",
+ "Email options" : "Předvolby pro e-mail",
"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",
@@ -641,7 +648,7 @@
"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",
+ "Your phone number" : "Vlastní 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",
@@ -650,6 +657,7 @@
"she/her" : "ona/jí",
"he/him" : "on/jemu",
"they/them" : "oni/jim",
+ "Your pronouns. E.g. {pronounsExample}" : "Vaše zájmena. Např. {pronounsExample}",
"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",
@@ -661,7 +669,7 @@
"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",
+ "Create" : "Vytvářet",
"Change" : "Změnit",
"Delete" : "Smazat",
"Reshare" : "Sdílet dál dalším",
@@ -762,7 +770,7 @@
"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í…",
+ "Adding your device …" : "Přidávání vašeho 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.",
@@ -886,51 +894,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..c55b9690377 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.",
@@ -484,7 +483,7 @@ OC.L10N.register(
"Visit website" : "Besøg hjemmeside",
"Usage documentation" : "Anvendelsesdokumentation",
"Admin documentation" : "Admin-dokumentation",
- "Developer documentation" : "Dokumentation for udviklere",
+ "Developer documentation" : "Udvikler-dokumentation",
"Details" : "Detaljer",
"All" : "Alle",
"Limit app usage to groups" : "Begræns appanvendelse til grupper",
@@ -496,10 +495,10 @@ OC.L10N.register(
"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",
+ "Latest updated" : "Sidst opdateret",
"Author" : "Forfatter",
"Categories" : "Kategorier",
- "Resources" : "Resourcer",
+ "Resources" : "Ressourcer",
"Documentation" : "Dokumentation",
"Interact" : "Interager",
"Report a bug" : "Rapporter en fejl",
@@ -513,7 +512,7 @@ OC.L10N.register(
"{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",
+ "Sync client" : "Synkronisér klient",
"This session" : "Sessionen",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
"{client} - {version}" : "{client} - {version}",
@@ -561,6 +560,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,15 +583,12 @@ 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.",
"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",
+ "Change password" : "Skift adgangskode",
"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",
@@ -637,7 +634,7 @@ OC.L10N.register(
"Languages" : "Sprog",
"Help translate" : "Hjælp med oversættelsen",
"No language set" : "Intet sprog indstillet",
- "Unable to update locale" : "Kunne ikke opdaterer lokalitet",
+ "Unable to update locale" : "Kunne ikke opdatere lokalitet",
"Locales" : "Lokaliteter",
"Week starts on {firstDayOfWeek}" : "Første ugedag: {firstDayOfWeek}",
"No locale set" : "Ingen lokalitet indstillet",
@@ -646,7 +643,7 @@ OC.L10N.register(
"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",
+ "Enable profile" : "Aktivér 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",
@@ -671,7 +668,7 @@ OC.L10N.register(
"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",
+ "No accounts" : "Ingen konti",
"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",
@@ -697,7 +694,7 @@ OC.L10N.register(
"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",
+ "Total rows summary" : "Samlet rækkeantal",
"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",
@@ -711,8 +708,8 @@ OC.L10N.register(
"{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",
+ "Disable account" : "Deaktivér konto",
+ "Enable account" : "Aktivér 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",
@@ -729,9 +726,9 @@ OC.L10N.register(
"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!",
+ "Welcome mail sent!" : "Velkomst-email sendt!",
"Loading account …" : "Indlæser konto ...",
- "Change display name" : "Rediger vist navn",
+ "Change display name" : "Redigér 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",
@@ -741,13 +738,13 @@ OC.L10N.register(
"Set the language" : "Indstil sproget",
"Toggle account actions menu" : "Skift kontohandlingsmenu",
"Done" : "Færdig",
- "Edit" : "Rediger",
+ "Edit" : "Redigér",
"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 first login" : "Vis første login",
"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.",
@@ -888,51 +885,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json
index 9e7c0049e71..d0298a198f4 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.",
@@ -482,7 +481,7 @@
"Visit website" : "Besøg hjemmeside",
"Usage documentation" : "Anvendelsesdokumentation",
"Admin documentation" : "Admin-dokumentation",
- "Developer documentation" : "Dokumentation for udviklere",
+ "Developer documentation" : "Udvikler-dokumentation",
"Details" : "Detaljer",
"All" : "Alle",
"Limit app usage to groups" : "Begræns appanvendelse til grupper",
@@ -494,10 +493,10 @@
"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",
+ "Latest updated" : "Sidst opdateret",
"Author" : "Forfatter",
"Categories" : "Kategorier",
- "Resources" : "Resourcer",
+ "Resources" : "Ressourcer",
"Documentation" : "Dokumentation",
"Interact" : "Interager",
"Report a bug" : "Rapporter en fejl",
@@ -511,7 +510,7 @@
"{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",
+ "Sync client" : "Synkronisér klient",
"This session" : "Sessionen",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
"{client} - {version}" : "{client} - {version}",
@@ -559,6 +558,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,15 +581,12 @@
"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.",
"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",
+ "Change password" : "Skift adgangskode",
"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",
@@ -635,7 +632,7 @@
"Languages" : "Sprog",
"Help translate" : "Hjælp med oversættelsen",
"No language set" : "Intet sprog indstillet",
- "Unable to update locale" : "Kunne ikke opdaterer lokalitet",
+ "Unable to update locale" : "Kunne ikke opdatere lokalitet",
"Locales" : "Lokaliteter",
"Week starts on {firstDayOfWeek}" : "Første ugedag: {firstDayOfWeek}",
"No locale set" : "Ingen lokalitet indstillet",
@@ -644,7 +641,7 @@
"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",
+ "Enable profile" : "Aktivér 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",
@@ -669,7 +666,7 @@
"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",
+ "No accounts" : "Ingen konti",
"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",
@@ -695,7 +692,7 @@
"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",
+ "Total rows summary" : "Samlet rækkeantal",
"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",
@@ -709,8 +706,8 @@
"{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",
+ "Disable account" : "Deaktivér konto",
+ "Enable account" : "Aktivér 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",
@@ -727,9 +724,9 @@
"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!",
+ "Welcome mail sent!" : "Velkomst-email sendt!",
"Loading account …" : "Indlæser konto ...",
- "Change display name" : "Rediger vist navn",
+ "Change display name" : "Redigér 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",
@@ -739,13 +736,13 @@
"Set the language" : "Indstil sproget",
"Toggle account actions menu" : "Skift kontohandlingsmenu",
"Done" : "Færdig",
- "Edit" : "Rediger",
+ "Edit" : "Redigér",
"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 first login" : "Vis første login",
"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.",
@@ -886,51 +883,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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 66150d7a47b..fe268e4a84d 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",
@@ -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,8 +153,8 @@ 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." : "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.",
@@ -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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud-Einstellungen",
"Unified task processing" : "Vereinheitlichte Aufgabenbearbeitung",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "KI-Aufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
+ "Allow AI usage for guest users" : "KI-Benutzung für Gastbenutzer zulassen",
"Task:" : "Aufgabe:",
"Enable" : "Aktivieren",
"None of your currently installed apps provide Task processing functionality" : "Keine deiner derzeit installierten Apps stellt Funktionen zur Aufgabenverarbeitung bereit",
@@ -351,7 +355,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",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Teilen mit Gruppen erlauben",
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Ignore the following groups when checking group membership" : "Die folgenden Gruppen beim Überprüfen der Gruppenmitgliedschaft ignorieren",
+ "Allow users to preview files even if download is disabled" : "Benutzern die Vorschau von Dateien ermöglichen, auch wenn der Download deaktiviert ist",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Benutzer können weiterhin Screenshots erstellen oder den Bildschirm aufzeichnen. Dies bietet jedoch keinen endgültigen Schutz.",
"Allow users to share via link and emails" : "Benutzern erlauben, Inhalte über Links und E-Mails zu teilen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
"Always ask for a password" : "Immer nach einem Passwort fragen",
@@ -371,14 +377,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 +399,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.",
@@ -484,7 +490,7 @@ OC.L10N.register(
"Visit website" : "Webseite besuchen",
"Usage documentation" : "Nutzungsdokumentation",
"Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
+ "Developer documentation" : "Entwickler-Dokumentation",
"Details" : "Details",
"All" : "Alle",
"Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
@@ -548,11 +554,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 +567,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,12 +590,12 @@ 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.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
+ "Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",
@@ -651,7 +658,8 @@ OC.L10N.register(
"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",
+ "they/them" : "sie/ihnen",
+ "Your pronouns. E.g. {pronounsExample}" : "Deine Pronomen. Z. B. {pronounsExample}",
"Your role" : "Deine Funktion",
"Your X (formerly Twitter) handle" : "Dein X (früher Twitter)-Handle",
"Your website" : "Deine Webseite",
@@ -746,7 +754,7 @@ OC.L10N.register(
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortiere",
@@ -870,7 +878,7 @@ OC.L10N.register(
"Save" : "Speichern",
"Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen",
"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 +896,18 @@ 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.",
+ "- 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.",
"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.",
- "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"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index c25dbf707bd..bce5b9f9c7e 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",
@@ -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,8 +151,8 @@
"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." : "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.",
@@ -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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud-Einstellungen",
"Unified task processing" : "Vereinheitlichte Aufgabenbearbeitung",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "KI-Aufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
+ "Allow AI usage for guest users" : "KI-Benutzung für Gastbenutzer zulassen",
"Task:" : "Aufgabe:",
"Enable" : "Aktivieren",
"None of your currently installed apps provide Task processing functionality" : "Keine deiner derzeit installierten Apps stellt Funktionen zur Aufgabenverarbeitung bereit",
@@ -349,7 +353,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",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Teilen mit Gruppen erlauben",
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Ignore the following groups when checking group membership" : "Die folgenden Gruppen beim Überprüfen der Gruppenmitgliedschaft ignorieren",
+ "Allow users to preview files even if download is disabled" : "Benutzern die Vorschau von Dateien ermöglichen, auch wenn der Download deaktiviert ist",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Benutzer können weiterhin Screenshots erstellen oder den Bildschirm aufzeichnen. Dies bietet jedoch keinen endgültigen Schutz.",
"Allow users to share via link and emails" : "Benutzern erlauben, Inhalte über Links und E-Mails zu teilen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
"Always ask for a password" : "Immer nach einem Passwort fragen",
@@ -369,14 +375,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 +397,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.",
@@ -482,7 +488,7 @@
"Visit website" : "Webseite besuchen",
"Usage documentation" : "Nutzungsdokumentation",
"Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
+ "Developer documentation" : "Entwickler-Dokumentation",
"Details" : "Details",
"All" : "Alle",
"Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
@@ -546,11 +552,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 +565,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,12 +588,12 @@
"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.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
+ "Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",
@@ -649,7 +656,8 @@
"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",
+ "they/them" : "sie/ihnen",
+ "Your pronouns. E.g. {pronounsExample}" : "Deine Pronomen. Z. B. {pronounsExample}",
"Your role" : "Deine Funktion",
"Your X (formerly Twitter) handle" : "Dein X (früher Twitter)-Handle",
"Your website" : "Deine Webseite",
@@ -744,7 +752,7 @@
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortiere",
@@ -868,7 +876,7 @@
"Save" : "Speichern",
"Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen",
"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 +894,18 @@
"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.",
+ "- 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.",
"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.",
- "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"
},"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 5388ff52529..15c4e6fa87a 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Private" : "Privat",
"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,8 +153,8 @@ 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." : "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.",
@@ -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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud-Einstellungen",
"Unified task processing" : "Vereinheitlichte Aufgabenbearbeitung",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "KI-Aufgaben können mittels verschiedener Apps umgesetzt werden. Hier können Sie einstellen, welche App für welche Aufgabe verwendet werden soll.",
+ "Allow AI usage for guest users" : "KI-Benutzung für Gastbenutzer zulassen",
"Task:" : "Aufgaben:",
"Enable" : "Aktivieren",
"None of your currently installed apps provide Task processing functionality" : "Keine Ihrer derzeit installierten Apps stellt Funktionen zur Aufgabenverarbeitung bereit",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Teilen mit Gruppen erlauben",
"Restrict users to only share with users in their groups" : "Konten auf das Teilen innerhalb ihrer Gruppen beschränken",
"Ignore the following groups when checking group membership" : "Die folgenden Gruppen beim Überprüfen der Gruppenmitgliedschaft ignorieren",
+ "Allow users to preview files even if download is disabled" : "Benutzern die Vorschau von Dateien ermöglichen, auch wenn der Download deaktiviert ist",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Benutzer können weiterhin Screenshots erstellen oder den Bildschirm aufzeichnen. Dies bietet jedoch keinen endgültigen Schutz.",
"Allow users to share via link and emails" : "Konten erlauben, Inhalte über Links und E-Mails zu teilen.",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
"Always ask for a password" : "Immer nach einem Passwort fragen",
@@ -371,14 +377,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 +399,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.",
@@ -456,7 +462,7 @@ OC.L10N.register(
"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",
+ "Configured ExApp deploy options. Can be set only during installation" : "Festgelegte 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",
@@ -480,11 +486,11 @@ OC.L10N.register(
"ExApp container mounts" : "ExApp-Container-Einhängepunkte",
"No mounts defined" : "Keine Einhängepunkte definiert",
"Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
+ "View in store" : "Im App Store anzeigen",
"Visit website" : "Webseite besuchen",
"Usage documentation" : "Nutzungsdokumentation",
"Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
+ "Developer documentation" : "Entwickler-Dokumentation",
"Details" : "Details",
"All" : "Alle",
"Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
@@ -549,7 +555,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 +567,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,17 +590,17 @@ 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.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
+ "Delete group" : "Gruppe löschen",
"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",
+ "Choose your profile picture" : "Wählen Sie Ihr Profilbild",
+ "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei wä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",
@@ -628,18 +635,18 @@ OC.L10N.register(
"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",
+ "Your handle" : "Ihr 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",
+ "Help translate" : "Bei der Übersetzung mithelfen",
"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}",
+ "Week starts on {firstDayOfWeek}" : "Die Woche beginnt am {firstDayOfWeek}",
"No locale set" : "Kein Gebietsschema festgelegt",
"Your city" : "Ihre Stadt",
"Your organisation" : "Ihre Organisation",
@@ -651,7 +658,8 @@ OC.L10N.register(
"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",
+ "they/them" : "sie/ihnen",
+ "Your pronouns. E.g. {pronounsExample}" : "Ihre Pronomen. Z. B. {pronounsExample}",
"Your role" : "Ihre Funktion",
"Your X (formerly Twitter) handle" : "Ihr X (früher Twitter)-Handle",
"Your website" : "Ihre Webseite",
@@ -722,7 +730,7 @@ OC.L10N.register(
"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",
+ "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",
@@ -746,7 +754,7 @@ OC.L10N.register(
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortierung",
@@ -766,12 +774,12 @@ OC.L10N.register(
"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",
+ "Passwordless Authentication" : "Anmeldung 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.",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Mit Administrationsrechten kann das Teilen-Verhalten feinabgestimmt werden. 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",
@@ -789,7 +797,7 @@ OC.L10N.register(
"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",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
@@ -870,7 +878,7 @@ OC.L10N.register(
"Save" : "Speichern",
"Test and verify email settings" : "Testen und Überprüfen der E-Mail-Einstellungen",
"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 +896,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index 0f35dc26f55..552f5109681 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -2,7 +2,7 @@
"Private" : "Privat",
"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,8 +151,8 @@
"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." : "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.",
@@ -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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud-Einstellungen",
"Unified task processing" : "Vereinheitlichte Aufgabenbearbeitung",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "KI-Aufgaben können mittels verschiedener Apps umgesetzt werden. Hier können Sie einstellen, welche App für welche Aufgabe verwendet werden soll.",
+ "Allow AI usage for guest users" : "KI-Benutzung für Gastbenutzer zulassen",
"Task:" : "Aufgaben:",
"Enable" : "Aktivieren",
"None of your currently installed apps provide Task processing functionality" : "Keine Ihrer derzeit installierten Apps stellt Funktionen zur Aufgabenverarbeitung bereit",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Teilen mit Gruppen erlauben",
"Restrict users to only share with users in their groups" : "Konten auf das Teilen innerhalb ihrer Gruppen beschränken",
"Ignore the following groups when checking group membership" : "Die folgenden Gruppen beim Überprüfen der Gruppenmitgliedschaft ignorieren",
+ "Allow users to preview files even if download is disabled" : "Benutzern die Vorschau von Dateien ermöglichen, auch wenn der Download deaktiviert ist",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Benutzer können weiterhin Screenshots erstellen oder den Bildschirm aufzeichnen. Dies bietet jedoch keinen endgültigen Schutz.",
"Allow users to share via link and emails" : "Konten erlauben, Inhalte über Links und E-Mails zu teilen.",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
"Always ask for a password" : "Immer nach einem Passwort fragen",
@@ -369,14 +375,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 +397,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.",
@@ -454,7 +460,7 @@
"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",
+ "Configured ExApp deploy options. Can be set only during installation" : "Festgelegte 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",
@@ -478,11 +484,11 @@
"ExApp container mounts" : "ExApp-Container-Einhängepunkte",
"No mounts defined" : "Keine Einhängepunkte definiert",
"Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
+ "View in store" : "Im App Store anzeigen",
"Visit website" : "Webseite besuchen",
"Usage documentation" : "Nutzungsdokumentation",
"Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
+ "Developer documentation" : "Entwickler-Dokumentation",
"Details" : "Details",
"All" : "Alle",
"Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
@@ -547,7 +553,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 +565,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,17 +588,17 @@
"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.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
+ "Delete group" : "Gruppe löschen",
"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",
+ "Choose your profile picture" : "Wählen Sie Ihr Profilbild",
+ "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei wä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",
@@ -626,18 +633,18 @@
"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",
+ "Your handle" : "Ihr 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",
+ "Help translate" : "Bei der Übersetzung mithelfen",
"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}",
+ "Week starts on {firstDayOfWeek}" : "Die Woche beginnt am {firstDayOfWeek}",
"No locale set" : "Kein Gebietsschema festgelegt",
"Your city" : "Ihre Stadt",
"Your organisation" : "Ihre Organisation",
@@ -649,7 +656,8 @@
"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",
+ "they/them" : "sie/ihnen",
+ "Your pronouns. E.g. {pronounsExample}" : "Ihre Pronomen. Z. B. {pronounsExample}",
"Your role" : "Ihre Funktion",
"Your X (formerly Twitter) handle" : "Ihr X (früher Twitter)-Handle",
"Your website" : "Ihre Webseite",
@@ -720,7 +728,7 @@
"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",
+ "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",
@@ -744,7 +752,7 @@
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortierung",
@@ -764,12 +772,12 @@
"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",
+ "Passwordless Authentication" : "Anmeldung 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.",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Mit Administrationsrechten kann das Teilen-Verhalten feinabgestimmt werden. 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",
@@ -787,7 +795,7 @@
"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",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
@@ -868,7 +876,7 @@
"Save" : "Speichern",
"Test and verify email settings" : "Testen und Überprüfen der E-Mail-Einstellungen",
"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 +894,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..8d6da1b3bc9 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.",
@@ -478,10 +477,10 @@ OC.L10N.register(
"View in store" : "Προβολή στο κέντρο εφαρμογών",
"Visit website" : "Επισκεφθείτε την ιστοσελίδα",
"Usage documentation" : "Τεκμηρίωση χρήσης",
- "Admin documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Admin documentation" : "Τεκμηρίωση διαχειριστή",
"Developer documentation" : "Τεκμηρίωση προγραμματιστή",
"Details" : "Λεπτομέρειες",
- "All" : "Όλες",
+ "All" : "'Ολα",
"Limit app usage to groups" : "Περιορίστε τη χρήση της εφαρμογής σε ομάδες",
"No results" : "Κανένα αποτέλεσμα",
"Update to {version}" : "Ενημέρωση στην έκδοση {version}",
@@ -556,6 +555,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,12 +577,9 @@ 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}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
- "Remove group" : "Αφαίρεση ομάδας",
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Change password" : "Αλλαγή συνθηματικού",
@@ -673,7 +670,6 @@ OC.L10N.register(
"Account name will be autogenerated" : "Το όνομα λογαριασμού θα δημιουργηθεί αυτόματα",
"Account name (required)" : "Όνομα λογαριασμού (απαιτείται)",
"New account" : "Νέος λογαριασμός",
- "Display name" : "Εμφανιζόμενο όνομα",
"Either password or email is required" : "Απαιτείται είτε συνθηματικό είτε email",
"Password (required)" : "Συνθηματικό (απαιτείται)",
"Email (required)" : "Email (απαιτείται)",
@@ -878,50 +874,17 @@ 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" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Επεξεργασίας Κειμένου",
+ "- 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" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα",
- "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."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Χρησιμοποιείτε <strong>{usage}</strong> από <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json
index 645b51770bb..74d1d167aa0 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.",
@@ -476,10 +475,10 @@
"View in store" : "Προβολή στο κέντρο εφαρμογών",
"Visit website" : "Επισκεφθείτε την ιστοσελίδα",
"Usage documentation" : "Τεκμηρίωση χρήσης",
- "Admin documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Admin documentation" : "Τεκμηρίωση διαχειριστή",
"Developer documentation" : "Τεκμηρίωση προγραμματιστή",
"Details" : "Λεπτομέρειες",
- "All" : "Όλες",
+ "All" : "'Ολα",
"Limit app usage to groups" : "Περιορίστε τη χρήση της εφαρμογής σε ομάδες",
"No results" : "Κανένα αποτέλεσμα",
"Update to {version}" : "Ενημέρωση στην έκδοση {version}",
@@ -554,6 +553,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,12 +575,9 @@
"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}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
- "Remove group" : "Αφαίρεση ομάδας",
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Change password" : "Αλλαγή συνθηματικού",
@@ -671,7 +668,6 @@
"Account name will be autogenerated" : "Το όνομα λογαριασμού θα δημιουργηθεί αυτόματα",
"Account name (required)" : "Όνομα λογαριασμού (απαιτείται)",
"New account" : "Νέος λογαριασμός",
- "Display name" : "Εμφανιζόμενο όνομα",
"Either password or email is required" : "Απαιτείται είτε συνθηματικό είτε email",
"Password (required)" : "Συνθηματικό (απαιτείται)",
"Email (required)" : "Email (απαιτείται)",
@@ -876,50 +872,17 @@
"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" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Επεξεργασίας Κειμένου",
+ "- 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" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα",
- "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."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Χρησιμοποιείτε <strong>{usage}</strong> από <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},"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..c96cc378ed7 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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud settings",
"Unified task processing" : "Unified task processing",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AI tasks can be implemented by different apps. Here you can set which app should be used for which task.",
+ "Allow AI usage for guest users" : "Allow AI usage for guest users",
"Task:" : "Task:",
"Enable" : "Enable",
"None of your currently installed apps provide Task processing functionality" : "None of your currently installed apps provide Task processing functionality",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Allow sharing with groups",
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
"Ignore the following groups when checking group membership" : "Ignore the following groups when checking group membership",
+ "Allow users to preview files even if download is disabled" : "Allow users to preview files even if download is disabled",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Users will still be able to screenshot or record the screen. This does not provide any definitive protection.",
"Allow users to share via link and emails" : "Allow users to share via link and emails",
"Allow public uploads" : "Allow public uploads",
"Always ask for a password" : "Always ask for a password",
@@ -561,6 +567,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,12 +590,12 @@ 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.",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
+ "Delete group" : "Delete group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "she/her",
"he/him" : "he/him",
"they/them" : "they/them",
+ "Your pronouns. E.g. {pronounsExample}" : "Your pronouns. E.g. {pronounsExample}",
"Your role" : "Your role",
"Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
"Your website" : "Your website",
@@ -888,51 +896,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json
index 7b8675490cf..ffa0f903f65 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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud settings",
"Unified task processing" : "Unified task processing",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AI tasks can be implemented by different apps. Here you can set which app should be used for which task.",
+ "Allow AI usage for guest users" : "Allow AI usage for guest users",
"Task:" : "Task:",
"Enable" : "Enable",
"None of your currently installed apps provide Task processing functionality" : "None of your currently installed apps provide Task processing functionality",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Allow sharing with groups",
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
"Ignore the following groups when checking group membership" : "Ignore the following groups when checking group membership",
+ "Allow users to preview files even if download is disabled" : "Allow users to preview files even if download is disabled",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Users will still be able to screenshot or record the screen. This does not provide any definitive protection.",
"Allow users to share via link and emails" : "Allow users to share via link and emails",
"Allow public uploads" : "Allow public uploads",
"Always ask for a password" : "Always ask for a password",
@@ -559,6 +565,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,12 +588,12 @@
"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.",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
+ "Delete group" : "Delete group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",
@@ -650,6 +657,7 @@
"she/her" : "she/her",
"he/him" : "he/him",
"they/them" : "they/them",
+ "Your pronouns. E.g. {pronounsExample}" : "Your pronouns. E.g. {pronounsExample}",
"Your role" : "Your role",
"Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
"Your website" : "Your website",
@@ -886,51 +894,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..f554c87ec25 100644
--- a/apps/settings/l10n/eo.js
+++ b/apps/settings/l10n/eo.js
@@ -144,14 +144,13 @@ OC.L10N.register(
"Confirm" : "Konfirmi",
"Cancel" : "Nuligi",
"Description" : "Priskribo",
- "View in store" : "Vidi en butiko",
+ "View in store" : "Vidi en la aplikaĵejo",
"Visit website" : "Viziti retejon",
"Admin documentation" : "Dokumentaro por administranto",
"Developer documentation" : "Dokumentaro por programisto",
"Details" : "Detaloj",
- "All" : "Ĉio",
+ "All" : "Ĉiuj",
"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.",
@@ -165,6 +164,7 @@ OC.L10N.register(
"Rate" : "Pritakso",
"Changelog" : "Ŝanĝoprotokolo",
"Google Chrome for Android" : "Google Chrome por Android",
+ "{productName} Android app" : "Android-aplikaĵo {productName}",
"This session" : "Tiu ĉi seanco",
"Marked for remote wipe" : "Elektita por fora forviŝado",
"Device settings" : "Aparataj agordoj",
@@ -177,13 +177,14 @@ OC.L10N.register(
"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",
+ "App name" : "Aplijaĵ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",
@@ -196,19 +197,16 @@ 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." : "Ĉ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?",
"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",
+ "Week starts on {firstDayOfWeek}" : "Semajno komencas je {firstDayOfWeek}",
"Your phone number" : "Via telefonnumero",
- "Add" : "Aldoni",
- "Create" : "Krei",
"Change" : "Ŝanĝi",
"Delete" : "Forigi",
"Default language" : "Defaŭlta lingvo",
@@ -301,10 +299,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Vi uzas <strong>{usage}</strong>"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/eo.json b/apps/settings/l10n/eo.json
index baf93471b1b..07d74c6f90b 100644
--- a/apps/settings/l10n/eo.json
+++ b/apps/settings/l10n/eo.json
@@ -142,14 +142,13 @@
"Confirm" : "Konfirmi",
"Cancel" : "Nuligi",
"Description" : "Priskribo",
- "View in store" : "Vidi en butiko",
+ "View in store" : "Vidi en la aplikaĵejo",
"Visit website" : "Viziti retejon",
"Admin documentation" : "Dokumentaro por administranto",
"Developer documentation" : "Dokumentaro por programisto",
"Details" : "Detaloj",
- "All" : "Ĉio",
+ "All" : "Ĉiuj",
"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.",
@@ -163,6 +162,7 @@
"Rate" : "Pritakso",
"Changelog" : "Ŝanĝoprotokolo",
"Google Chrome for Android" : "Google Chrome por Android",
+ "{productName} Android app" : "Android-aplikaĵo {productName}",
"This session" : "Tiu ĉi seanco",
"Marked for remote wipe" : "Elektita por fora forviŝado",
"Device settings" : "Aparataj agordoj",
@@ -175,13 +175,14 @@
"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",
+ "App name" : "Aplijaĵ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",
@@ -194,19 +195,16 @@
"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?",
"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",
+ "Week starts on {firstDayOfWeek}" : "Semajno komencas je {firstDayOfWeek}",
"Your phone number" : "Via telefonnumero",
- "Add" : "Aldoni",
- "Create" : "Krei",
"Change" : "Ŝanĝi",
"Delete" : "Forigi",
"Default language" : "Defaŭlta lingvo",
@@ -299,10 +297,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Vi uzas <strong>{usage}</strong>"
},"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..30ac4b0b258 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.",
@@ -451,7 +450,7 @@ OC.L10N.register(
"Daemon" : "Daemon",
"Deploy Daemon" : "Daemon de despligue",
"Type" : "Tipo",
- "Display Name" : "Nombre a mostrar",
+ "Display Name" : "Nombre mostrado",
"GPUs support" : "Soporte a GPUs",
"Compute device" : "Dispositivo de cómputo",
"Advanced deploy options" : "Opciones avanzadas del despliegue",
@@ -486,16 +485,16 @@ OC.L10N.register(
"Admin documentation" : "Documentación de administrador",
"Developer documentation" : "Documentación de desarrollador",
"Details" : "Detalles",
- "All" : "Todos",
+ "All" : "Todo",
"Limit app usage to groups" : "Limitar uso de apps a grupos",
- "No results" : "No hay resultados",
+ "No results" : "Sin 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:",
+ "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",
@@ -507,7 +506,7 @@ OC.L10N.register(
"Ask questions or discuss" : "Preguntar o discutir",
"Rate the app" : "Calificar la aplicación",
"Rate" : "Calificar",
- "Changelog" : "Historial de cambios",
+ "Changelog" : "Registro de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
"{productName} iOS app" : "{productName} iOS app",
"{productName} Android app" : "{productName} Android app",
@@ -561,6 +560,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,12 +583,9 @@ 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.",
"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",
@@ -613,7 +610,7 @@ OC.L10N.register(
"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",
+ "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" : "Borrar email principal",
"Delete email" : "Borrar email",
@@ -643,7 +640,6 @@ OC.L10N.register(
"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",
@@ -674,7 +670,7 @@ OC.L10N.register(
"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",
+ "Manager" : "Mánager",
"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)",
@@ -740,7 +736,7 @@ OC.L10N.register(
"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",
+ "Done" : "Listo",
"Edit" : "Editar",
"Account management settings" : "Ajustes de administración de cuentas",
"Visibility" : "Visibilidad",
@@ -764,13 +760,13 @@ OC.L10N.register(
"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...",
+ "Adding your device …" : "Añadiendo su 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.",
+ "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 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",
@@ -888,51 +884,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"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..b8fe2a9ed67 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.",
@@ -449,7 +448,7 @@
"Daemon" : "Daemon",
"Deploy Daemon" : "Daemon de despligue",
"Type" : "Tipo",
- "Display Name" : "Nombre a mostrar",
+ "Display Name" : "Nombre mostrado",
"GPUs support" : "Soporte a GPUs",
"Compute device" : "Dispositivo de cómputo",
"Advanced deploy options" : "Opciones avanzadas del despliegue",
@@ -484,16 +483,16 @@
"Admin documentation" : "Documentación de administrador",
"Developer documentation" : "Documentación de desarrollador",
"Details" : "Detalles",
- "All" : "Todos",
+ "All" : "Todo",
"Limit app usage to groups" : "Limitar uso de apps a grupos",
- "No results" : "No hay resultados",
+ "No results" : "Sin 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:",
+ "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",
@@ -505,7 +504,7 @@
"Ask questions or discuss" : "Preguntar o discutir",
"Rate the app" : "Calificar la aplicación",
"Rate" : "Calificar",
- "Changelog" : "Historial de cambios",
+ "Changelog" : "Registro de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
"{productName} iOS app" : "{productName} iOS app",
"{productName} Android app" : "{productName} Android app",
@@ -559,6 +558,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,12 +581,9 @@
"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.",
"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",
@@ -611,7 +608,7 @@
"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",
+ "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" : "Borrar email principal",
"Delete email" : "Borrar email",
@@ -641,7 +638,6 @@
"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",
@@ -672,7 +668,7 @@
"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",
+ "Manager" : "Mánager",
"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)",
@@ -738,7 +734,7 @@
"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",
+ "Done" : "Listo",
"Edit" : "Editar",
"Account management settings" : "Ajustes de administración de cuentas",
"Visibility" : "Visibilidad",
@@ -762,13 +758,13 @@
"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...",
+ "Adding your device …" : "Añadiendo su 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.",
+ "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 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",
@@ -886,51 +882,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..54ea35b477f 100644
--- a/apps/settings/l10n/es_419.js
+++ b/apps/settings/l10n/es_419.js
@@ -128,9 +128,9 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -141,6 +141,7 @@ OC.L10N.register(
"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,20 +156,17 @@ OC.L10N.register(
"Submit" : "Enviar",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
+ "Change password" : "Cambiar password",
"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",
+ "Add" : "Guardar",
"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",
@@ -176,7 +174,6 @@ OC.L10N.register(
"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",
@@ -224,8 +221,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estas usando <strong>{usage}</strong>"
},
"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..b5e8c48b6a8 100644
--- a/apps/settings/l10n/es_419.json
+++ b/apps/settings/l10n/es_419.json
@@ -126,9 +126,9 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -139,6 +139,7 @@
"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,20 +154,17 @@
"Submit" : "Enviar",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
+ "Change password" : "Cambiar password",
"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",
+ "Add" : "Guardar",
"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",
@@ -174,7 +172,6 @@
"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",
@@ -222,8 +219,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estas usando <strong>{usage}</strong>"
},"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..0e943d4c93a 100644
--- a/apps/settings/l10n/es_AR.js
+++ b/apps/settings/l10n/es_AR.js
@@ -291,7 +291,7 @@ OC.L10N.register(
"Developer documentation" : "Documentación del desarrollador",
"Details" : "Detalles",
"All" : "Todos",
- "No results" : "Sin resultados",
+ "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.",
@@ -305,6 +305,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -321,6 +322,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 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,15 +345,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.",
"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",
@@ -416,10 +414,8 @@ OC.L10N.register(
"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",
+ "Delete" : "Eliminar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -608,36 +604,12 @@ 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"
+ "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>)"
},
"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..f3414c56291 100644
--- a/apps/settings/l10n/es_AR.json
+++ b/apps/settings/l10n/es_AR.json
@@ -289,7 +289,7 @@
"Developer documentation" : "Documentación del desarrollador",
"Details" : "Detalles",
"All" : "Todos",
- "No results" : "Sin resultados",
+ "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.",
@@ -303,6 +303,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -319,6 +320,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 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,15 +343,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.",
"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",
@@ -414,10 +412,8 @@
"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",
+ "Delete" : "Eliminar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -606,36 +602,12 @@
"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"
+ "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>)"
},"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..bfc26abab6c 100644
--- a/apps/settings/l10n/es_CL.js
+++ b/apps/settings/l10n/es_CL.js
@@ -117,7 +117,6 @@ OC.L10N.register(
"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}",
@@ -133,6 +132,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -146,6 +146,7 @@ OC.L10N.register(
"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",
@@ -160,17 +161,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
+ "Delete" : "Eliminar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -181,7 +179,6 @@ OC.L10N.register(
"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",
@@ -228,8 +225,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..c8b89dcaa93 100644
--- a/apps/settings/l10n/es_CL.json
+++ b/apps/settings/l10n/es_CL.json
@@ -115,7 +115,6 @@
"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}",
@@ -131,6 +130,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -144,6 +144,7 @@
"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",
@@ -158,17 +159,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
+ "Delete" : "Eliminar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -179,7 +177,6 @@
"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",
@@ -226,8 +223,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..948758f5c7d 100644
--- a/apps/settings/l10n/es_CO.js
+++ b/apps/settings/l10n/es_CO.js
@@ -132,9 +132,9 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -145,6 +145,7 @@ OC.L10N.register(
"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",
@@ -159,19 +160,15 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"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",
@@ -179,7 +176,6 @@ OC.L10N.register(
"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",
@@ -225,8 +221,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..ba1d4f8a654 100644
--- a/apps/settings/l10n/es_CO.json
+++ b/apps/settings/l10n/es_CO.json
@@ -130,9 +130,9 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -143,6 +143,7 @@
"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,19 +158,15 @@
"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",
+ "Add" : "Guardar",
"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",
@@ -177,7 +174,6 @@
"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",
@@ -223,8 +219,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..e0b4ca0bec9 100644
--- a/apps/settings/l10n/es_CR.js
+++ b/apps/settings/l10n/es_CR.js
@@ -132,9 +132,9 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -145,6 +145,7 @@ OC.L10N.register(
"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",
@@ -159,19 +160,15 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"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",
@@ -179,7 +176,6 @@ OC.L10N.register(
"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",
@@ -226,8 +222,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..236e5aa5458 100644
--- a/apps/settings/l10n/es_CR.json
+++ b/apps/settings/l10n/es_CR.json
@@ -130,9 +130,9 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -143,6 +143,7 @@
"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,19 +158,15 @@
"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",
+ "Add" : "Guardar",
"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",
@@ -177,7 +174,6 @@
"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",
@@ -224,8 +220,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..5a88e30c7cb 100644
--- a/apps/settings/l10n/es_DO.js
+++ b/apps/settings/l10n/es_DO.js
@@ -131,6 +131,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -144,6 +145,7 @@ OC.L10N.register(
"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",
@@ -158,17 +160,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -178,7 +177,6 @@ OC.L10N.register(
"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",
@@ -225,8 +223,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..cd269584d2a 100644
--- a/apps/settings/l10n/es_DO.json
+++ b/apps/settings/l10n/es_DO.json
@@ -129,6 +129,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -142,6 +143,7 @@
"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,17 +158,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -176,7 +175,6 @@
"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",
@@ -223,8 +221,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..2bcf1e8a6e0 100644
--- a/apps/settings/l10n/es_EC.js
+++ b/apps/settings/l10n/es_EC.js
@@ -242,6 +242,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. ",
@@ -258,10 +259,8 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"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",
@@ -315,7 +314,7 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Create" : "Crear",
"Change" : "Cambiar",
"Delete" : "Borrar",
@@ -325,7 +324,7 @@ OC.L10N.register(
"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",
+ "Display name" : "Nombre para mostrar",
"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)",
@@ -357,7 +356,7 @@ OC.L10N.register(
"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",
+ "Done" : "Hecho",
"Edit" : "Editar",
"Visibility" : "Visibilidad",
"Show storage path" : "Mostrar ruta de almacenamiento",
@@ -457,34 +456,9 @@ 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"
+ "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>)"
},
"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..00c80ceffda 100644
--- a/apps/settings/l10n/es_EC.json
+++ b/apps/settings/l10n/es_EC.json
@@ -240,6 +240,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. ",
@@ -256,10 +257,8 @@
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"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",
@@ -313,7 +312,7 @@
"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",
+ "Add" : "Guardar",
"Create" : "Crear",
"Change" : "Cambiar",
"Delete" : "Borrar",
@@ -323,7 +322,7 @@
"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",
+ "Display name" : "Nombre para mostrar",
"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)",
@@ -355,7 +354,7 @@
"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",
+ "Done" : "Hecho",
"Edit" : "Editar",
"Visibility" : "Visibilidad",
"Show storage path" : "Mostrar ruta de almacenamiento",
@@ -455,34 +454,9 @@
"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"
+ "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>)"
},"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..f6a6bccced9 100644
--- a/apps/settings/l10n/es_GT.js
+++ b/apps/settings/l10n/es_GT.js
@@ -133,6 +133,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -146,6 +147,7 @@ OC.L10N.register(
"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",
@@ -160,19 +162,15 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"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",
@@ -181,7 +179,6 @@ OC.L10N.register(
"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",
@@ -228,8 +225,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..0fedda843f8 100644
--- a/apps/settings/l10n/es_GT.json
+++ b/apps/settings/l10n/es_GT.json
@@ -131,6 +131,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -144,6 +145,7 @@
"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",
@@ -158,19 +160,15 @@
"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",
+ "Add" : "Guardar",
"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",
@@ -179,7 +177,6 @@
"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",
@@ -226,8 +223,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..2a90c6823f7 100644
--- a/apps/settings/l10n/es_HN.js
+++ b/apps/settings/l10n/es_HN.js
@@ -128,6 +128,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -140,6 +141,7 @@ OC.L10N.register(
"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,19 +156,15 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"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",
@@ -174,7 +172,6 @@ OC.L10N.register(
"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",
@@ -219,9 +216,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_HN.json b/apps/settings/l10n/es_HN.json
index da2e6984a5e..251e1258440 100644
--- a/apps/settings/l10n/es_HN.json
+++ b/apps/settings/l10n/es_HN.json
@@ -126,6 +126,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -138,6 +139,7 @@
"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,19 +154,15 @@
"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",
+ "Add" : "Guardar",
"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",
@@ -172,7 +170,6 @@
"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",
@@ -217,9 +214,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_MX.js b/apps/settings/l10n/es_MX.js
index 2aed5bbdedf..06b96ad4ac6 100644
--- a/apps/settings/l10n/es_MX.js
+++ b/apps/settings/l10n/es_MX.js
@@ -372,7 +372,7 @@ OC.L10N.register(
"Confirm" : "Confirmar",
"Cancel" : "Cancelar",
"Description" : "Descripción",
- "View in store" : "Ver en la tienda",
+ "View in store" : "Ver en tienda",
"Visit website" : "Visita el sitio web",
"Usage documentation" : "Documentación de uso",
"Admin documentation" : "Documentación del administrador",
@@ -452,6 +452,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,15 +469,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.",
"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",
@@ -546,10 +543,10 @@ OC.L10N.register(
"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",
+ "Add" : "Añadir",
"Create" : "Crear",
"Change" : "Cambiar",
- "Delete" : "Borrar",
+ "Delete" : "Eliminar",
"Reshare" : "Volver a compartir",
"Default language" : "Idioma predeterminado",
"Common languages" : "Idiomas comunes",
@@ -563,7 +560,7 @@ OC.L10N.register(
"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",
+ "Display name" : "Nombre para mostrar",
"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)",
@@ -759,45 +756,13 @@ 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"
+ "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>)"
},
"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..fe651a9100a 100644
--- a/apps/settings/l10n/es_MX.json
+++ b/apps/settings/l10n/es_MX.json
@@ -370,7 +370,7 @@
"Confirm" : "Confirmar",
"Cancel" : "Cancelar",
"Description" : "Descripción",
- "View in store" : "Ver en la tienda",
+ "View in store" : "Ver en tienda",
"Visit website" : "Visita el sitio web",
"Usage documentation" : "Documentación de uso",
"Admin documentation" : "Documentación del administrador",
@@ -450,6 +450,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,15 +467,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.",
"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",
@@ -544,10 +541,10 @@
"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",
+ "Add" : "Añadir",
"Create" : "Crear",
"Change" : "Cambiar",
- "Delete" : "Borrar",
+ "Delete" : "Eliminar",
"Reshare" : "Volver a compartir",
"Default language" : "Idioma predeterminado",
"Common languages" : "Idiomas comunes",
@@ -561,7 +558,7 @@
"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",
+ "Display name" : "Nombre para mostrar",
"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)",
@@ -757,45 +754,13 @@
"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"
+ "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>)"
},"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..c2e2b4e1db1 100644
--- a/apps/settings/l10n/es_NI.js
+++ b/apps/settings/l10n/es_NI.js
@@ -127,9 +127,9 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -139,6 +139,7 @@ OC.L10N.register(
"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,17 +154,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -173,7 +171,6 @@ OC.L10N.register(
"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",
@@ -218,9 +215,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_NI.json b/apps/settings/l10n/es_NI.json
index 11f292af0dc..3e4a3c2ef5b 100644
--- a/apps/settings/l10n/es_NI.json
+++ b/apps/settings/l10n/es_NI.json
@@ -125,9 +125,9 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -137,6 +137,7 @@
"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,17 +152,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -171,7 +169,6 @@
"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",
@@ -216,9 +213,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_PA.js b/apps/settings/l10n/es_PA.js
index 074dbf3d7d7..0b9a8c33d60 100644
--- a/apps/settings/l10n/es_PA.js
+++ b/apps/settings/l10n/es_PA.js
@@ -127,6 +127,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -139,6 +140,7 @@ OC.L10N.register(
"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,17 +155,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -174,7 +173,6 @@ OC.L10N.register(
"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",
@@ -219,9 +217,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_PA.json b/apps/settings/l10n/es_PA.json
index e7a5edb32bb..2644c7e539f 100644
--- a/apps/settings/l10n/es_PA.json
+++ b/apps/settings/l10n/es_PA.json
@@ -125,6 +125,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -137,6 +138,7 @@
"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,17 +153,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -172,7 +171,6 @@
"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",
@@ -217,9 +215,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_PE.js b/apps/settings/l10n/es_PE.js
index 32a0f331dd7..1039b18d8c4 100644
--- a/apps/settings/l10n/es_PE.js
+++ b/apps/settings/l10n/es_PE.js
@@ -126,6 +126,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -138,6 +139,7 @@ OC.L10N.register(
"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,17 +154,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -173,7 +172,6 @@ OC.L10N.register(
"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",
@@ -218,9 +216,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_PE.json b/apps/settings/l10n/es_PE.json
index 86e2d0bb204..63e9773657a 100644
--- a/apps/settings/l10n/es_PE.json
+++ b/apps/settings/l10n/es_PE.json
@@ -124,6 +124,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -136,6 +137,7 @@
"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,17 +152,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -171,7 +170,6 @@
"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",
@@ -216,9 +214,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_PR.js b/apps/settings/l10n/es_PR.js
index 074dbf3d7d7..0b9a8c33d60 100644
--- a/apps/settings/l10n/es_PR.js
+++ b/apps/settings/l10n/es_PR.js
@@ -127,6 +127,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -139,6 +140,7 @@ OC.L10N.register(
"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,17 +155,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -174,7 +173,6 @@ OC.L10N.register(
"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",
@@ -219,9 +217,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_PR.json b/apps/settings/l10n/es_PR.json
index e7a5edb32bb..2644c7e539f 100644
--- a/apps/settings/l10n/es_PR.json
+++ b/apps/settings/l10n/es_PR.json
@@ -125,6 +125,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -137,6 +138,7 @@
"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,17 +153,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -172,7 +171,6 @@
"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",
@@ -217,9 +215,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_PY.js b/apps/settings/l10n/es_PY.js
index 30d67c0650b..92762560d9f 100644
--- a/apps/settings/l10n/es_PY.js
+++ b/apps/settings/l10n/es_PY.js
@@ -127,9 +127,9 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -139,6 +139,7 @@ OC.L10N.register(
"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,17 +154,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -174,7 +172,6 @@ OC.L10N.register(
"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",
@@ -218,9 +215,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_PY.json b/apps/settings/l10n/es_PY.json
index 5b6159b1261..43a7969eced 100644
--- a/apps/settings/l10n/es_PY.json
+++ b/apps/settings/l10n/es_PY.json
@@ -125,9 +125,9 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación 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",
@@ -137,6 +137,7 @@
"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,17 +152,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -172,7 +170,6 @@
"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",
@@ -216,9 +213,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_SV.js b/apps/settings/l10n/es_SV.js
index db206ca98c9..f6a6bccced9 100644
--- a/apps/settings/l10n/es_SV.js
+++ b/apps/settings/l10n/es_SV.js
@@ -133,6 +133,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -146,6 +147,7 @@ OC.L10N.register(
"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",
@@ -160,19 +162,15 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"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",
@@ -181,7 +179,6 @@ OC.L10N.register(
"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",
@@ -228,8 +225,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},
"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..0fedda843f8 100644
--- a/apps/settings/l10n/es_SV.json
+++ b/apps/settings/l10n/es_SV.json
@@ -131,6 +131,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -144,6 +145,7 @@
"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",
@@ -158,19 +160,15 @@
"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",
+ "Add" : "Guardar",
"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",
@@ -179,7 +177,6 @@
"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",
@@ -226,8 +223,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Estás usando<strong>{usage}</strong>"
},"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..ed6ba49d62a 100644
--- a/apps/settings/l10n/es_UY.js
+++ b/apps/settings/l10n/es_UY.js
@@ -126,6 +126,7 @@ OC.L10N.register(
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -138,6 +139,7 @@ OC.L10N.register(
"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,17 +154,14 @@ OC.L10N.register(
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -172,7 +171,6 @@ OC.L10N.register(
"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",
@@ -217,9 +215,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_UY.json b/apps/settings/l10n/es_UY.json
index 25239b016c4..38b13879f68 100644
--- a/apps/settings/l10n/es_UY.json
+++ b/apps/settings/l10n/es_UY.json
@@ -124,6 +124,7 @@
"Rate" : "Calificar",
"Changelog" : "Bitácora de cambios",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} aplicación Android",
"This session" : "Esta sesión",
"Allow filesystem access" : "Permitir acceso al sistema de archivos",
"Rename" : "Renombrar",
@@ -136,6 +137,7 @@
"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,17 +152,14 @@
"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",
+ "Add" : "Guardar",
"Change" : "Cambiar",
"Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Quota" : "Cuota",
"Language" : "Idioma",
@@ -170,7 +169,6 @@
"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",
@@ -215,9 +213,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/et_EE.js b/apps/settings/l10n/et_EE.js
index 35fc7a5d4e3..acf6e9d37ec 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,54 @@ 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",
+ "Some files have not passed the integrity check. {link1} {link2}" : "Mõned failid pole läbinud andmetervikluse kontrolli. {link1} {link2}",
+ "Database missing indices" : "Andmebaasis on puudu mõned indeksid",
+ "Missing indices:" : "Puuduvad indeksid:",
+ "\"%s\" in table \"%s\"" : "„%s“ tabelis „%s“",
"Database missing primary keys" : "Andmebaasis on puudu primaarvõtmed",
"Missing primary key on table \"%s\"." : "Puuduv primaarvõti tabelis „%s“.",
+ "Debug mode" : "Veaotsingu- ja silumisrežiim",
+ "This instance is running in debug mode. Only enable this for local development and not in production environments." : "See server töötab hetkel veaotsingu- ja silumisrežiimis. Palun kasuta seda vaid kohalikus arendustöös, kuid mitte tarbeserveris.",
+ "Debug mode is disabled." : "Veaotsingu- ja silumisrežiim pole kasutusel.",
+ "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 default charset" : "PHP vaikimisi märgistik",
+ "PHP configuration option \"default_charset\" should be UTF-8" : "PHP seadistuse „default_charset“ väärtus peab olema UTF-8",
+ "PHP set_time_limit" : "PHP set_time_limit",
+ "The function is available." : "Funktsioon on saadaval.",
+ "Freetype" : "Freetype",
"Supported" : "Toetatud",
+ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Sinu serverisse paigaldatud PHP-l puudub FreeType'i tugi ning selle tulemusena ei pruugi profiilipiltide lisamine ja kuvamine ja osa seadistuste liidesest toimida.",
+ "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,50 +177,94 @@ 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",
+ "increases language translation performance and fixes sorting of non-ASCII characters" : "parandab jõudlust keelte tõlkimisel ja tagab korrektse järjestamise, kui kasutusel on mitte-ASCII tähemärgid",
"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.",
+ "The PHP OPcache module is not properly configured. %s." : "PHP OPcache'i moodul pole korrektselt seadistatud. %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}.",
+ "Random generator" : "Juhuslike arvude generaator",
+ "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP ei suutnud tuvastada piisavalt juhuslikku andmeallikat ja turvakaalutlustel me soovitame seda olukorda välistada.",
"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.",
+ "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 ja <= %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 ja <= %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 ja <= %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 ja <= %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",
+ "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profiilipilt, täisnimi, e-posti aadress, telefoninumber, aadress, veebisait, Twitteri konto, organisatsioon, roll, alapealkiri, elulugu ja asjaolu, kas sinu profiil on kasutusel.",
"Nextcloud settings" : "Nextcloudi seadistused",
+ "Allow AI usage for guest users" : "Luba külaliskasutajatel kasutada tehiasru",
"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",
+ "Ignore the following groups when checking group membership" : "Gruppide liikmelisuse kontrollimisel eira järgnevaid gruppe",
+ "Allow users to preview files even if download is disabled" : "Luba kasutajatel vaadata failide eelvaateid ka siis, kui allalaadimine on keelatud",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "See ei taga lõplikku kaitset - kasutajatel on ikkagi võimalus teha ekraanitõmmiseid või -salvestusi.",
+ "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",
+ "Allow users to set custom share link tokens" : "Luba kasutajatel jagamislinkidele määrata tunnuslube",
+ "Shares with guessable tokens may be accessed easily" : "Ligipääs ennustatava tunnusloaga jaosmeediale on väga lihtne",
"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",
@@ -207,6 +276,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. ",
@@ -233,15 +303,24 @@ 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}",
+ "Daemon" : "Taustateenus",
+ "Deploy Daemon" : "Kasutuselevõtmise taustateenus",
"Type" : "Tüüp",
"Display Name" : "Kuvatav nimi",
+ "GPUs support" : "Graafikaprotsessori tugi",
+ "Compute device" : "Arvutusseade",
+ "Advanced deploy options" : "Kasutuselevõtmise lisavalikud",
"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",
@@ -249,9 +328,14 @@ OC.L10N.register(
"ExApp container environment variables" : "ExApp konteineri keskonnamuutujad",
"No environment variables defined" : "Ühtegi keskonnamuutujat pole defineeritud",
"Mounts" : "Haakepunktid",
+ "Define host folder mounts to bind to the ExApp container" : "Sidumaks ExApp'i konteineriga määratle peremeeskaustade haakepunktid",
+ "Must exist on the Deploy daemon host prior to installing the ExApp" : "Enne ExAppi paigaldamist peab ta olema leitav kasutuselevõtmise taustateenuses",
+ "Host path" : "Peremeeskausta asukoht",
+ "Container path" : "Konteineri asukoht",
"Read-only" : "Ainult lugemiseks",
"Remove mount" : "Eemalda haakepunkt",
"New mount" : "Uus haakepunkt",
+ "Enter path to host folder" : "Sisesta peremeeskausta asukoht",
"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",
@@ -264,6 +348,7 @@ OC.L10N.register(
"Description" : "Kirjeldus",
"View in store" : "Vaata poes",
"Visit website" : "Külasta veebisaiti",
+ "Usage documentation" : "Kasutusjuhend",
"Admin documentation" : "Administraatori dokumentatsioon",
"Developer documentation" : "Arendaja dokumentatsioon",
"Details" : "Üksikasjad",
@@ -271,15 +356,23 @@ OC.L10N.register(
"Limit app usage to groups" : "Piira rakenduse kasutamist gruppidega",
"No results" : "Vasteid ei leitud",
"Update to {version}" : "Uuenda versioonile {version}",
+ "Deploy options" : "Kasutuselevõtmise valikud",
+ "Default Deploy daemon is not accessible" : "Kasutuselevõtmise taustateenus pole leitav",
+ "Delete data on remove" : "Eemaldamisel kustuta andmed",
"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:",
+ "Latest updated" : "Viimati uuendatud",
"Author" : "Autor",
"Categories" : "Kategooriad",
"Resources" : "Ressursid",
"Documentation" : "Dokumentatsioon",
+ "Interact" : "Suhtle meiega",
"Report a bug" : "Teata veast",
+ "Request feature" : "Palu arendajatel funktsionaalsuse lisamist",
"Ask questions or discuss" : "Küsi nõu või aruta",
+ "Rate the app" : "Hinda rakendust",
+ "Rate" : "Hinda",
"Changelog" : "Muudatuste logi",
"Google Chrome for Android" : "Google Chrome for Android",
"{productName} iOS app" : "{productName}i iOS-i rakendus",
@@ -288,11 +381,13 @@ OC.L10N.register(
"{productName} Talk for Android" : "{productName} Talk Androidi jaoks",
"Sync client" : "Sünkroniseerimisklient",
"This session" : "See sessioon",
+ "{client} - {version} ({system})" : "{client} - {version} ({system})",
+ "{client} - {version}" : "{client} - {version}",
"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",
+ "Marked for remote wipe" : "Märgitud kaugkustutamiseks",
+ "Device settings" : "Seadme seadistused",
"Allow filesystem access" : "Luba juurdepääs failisüsteemile",
"Rename" : "Muuda nime",
"Revoke" : "Tühista",
@@ -304,11 +399,11 @@ OC.L10N.register(
"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",
+ "Create new app password" : "Loo uus rakenduse salasõna",
"App password copied!" : "Rakenduse salasõna on kopeeritud!",
"Copy app password" : "Kopeeri rakenduse salasõna",
- "Login name copied!" : "Kasutajanimi on koeeritud!",
- "Copy login name" : "Koeeri kasutajanimi",
+ "Login name copied!" : "Kasutajanimi on kopeeritud!",
+ "Copy login name" : "Kopeeri kasutajanimi",
"Could not copy app password. Please copy it manually." : "Ei õnnestunud kopeerida rakenduse salasõna. Palun tee seda käsitsi.",
"Could not copy login name. Please copy it manually." : "Ei õnnestunud kopeerida kasutajanime. Palun tee seda käsitsi.",
"New app password" : "Uus rakenduse salasõna",
@@ -318,8 +413,18 @@ 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",
+ "Enable or disable profile by default for new accounts." : "Lülita profiil uute kasutajate jaoks sisse või välja.",
+ "Password confirmation is required" : "Salasõna kinnitamine on vajalik",
"Failed to save setting" : "Seadistuse salvestamine ei õnnestunud",
+ "{app}'s declarative setting field: {name}" : "„{app}“ rakenduse deklaratiivse seadistuse väli: „{name}“",
"Unable to update server side encryption config" : "Serveripoolse krüptimise seadistusi ei õnnestu uuendada",
"Server-side encryption" : "Serveripoolne krüptimine",
"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." : "Serveripoole krüptimine võimaldab serverisse üleslaaditud faile krüptida. Sellega kaasnevad piirangud, näiteks jõudluskadu. Lülita see sisse ainult siis, kui vaja on.",
@@ -328,6 +433,7 @@ OC.L10N.register(
"Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Serveripoolse krüptimise väljalülitamine on võimalik vaid käsureapõhise OCC-tarvikuga. Lisateavet leiad dokumentatsioonist.",
"No encryption module loaded, please enable an encryption module in the app menu." : "Krüptimise moodul pole laaditud, palun luba krüptimise moodul rakenduste menüüs.",
"Select default encryption module:" : "Määra vaikimisi krüptimise moodul:",
+ "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}" : "Sa pead oma krüptovõtmed kolima vanast vormingust (ownCloud <= 8.0) uude. Palun lülita „Vakimise krüptimise moodul“ sisse ja käivita „{command}“",
"Cancel encryption" : "Katkesta krüptimine",
"Enable encryption" : "Luba krüptimine",
"Confirm enabling encryption" : "Kinnita krüptimise kasutuselevõtmine",
@@ -339,12 +445,12 @@ 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.",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
- "Remove group" : "Eemalda grupp",
+ "Delete group" : "Kustuta grupp",
"Current password" : "Praegune salasõna",
"New password" : "Uus salasõna",
"Change password" : "Muuda salasõna",
@@ -363,12 +469,14 @@ OC.L10N.register(
"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.",
+ "Unable to update date of birth" : "Sünnikuupäeva seadistamine ei õnnestu",
"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",
+ "Options for additional email address {index}" : "Täiendava e-posti aadressi valikud: {index}",
"Remove primary email" : "Eemalda põhiline e-postiaadress",
"Delete email" : "Kustuta e-posti aadress",
"This address is not confirmed" : "See aadress pole kinnitatud",
@@ -399,6 +507,13 @@ OC.L10N.register(
"Your organisation" : "Sinu organisatsioon",
"Your phone number" : "Sinu telefoninumber",
"Edit your Profile visibility" : "Muuda oma profiili nähtavust",
+ "Unable to update profile enabled state" : "Profiili kasutuseloleku uuendamine ei õnnestu",
+ "Enable profile" : "Võta profiil kasutusele",
+ "Unable to update visibility of {displayId}" : "„{displayId}“ nähtavust polnud võimalik uuendada",
+ "she/her" : "she/her",
+ "he/him" : "he/him",
+ "they/them" : "they/them",
+ "Your pronouns. E.g. {pronounsExample}" : "Sinu asesõnad, näiteks „{pronounsExample}“",
"Your role" : "Sinu roll",
"Your X (formerly Twitter) handle" : "Sinu X-i (varasemalt Twitteri) kasutajanimi",
"Your website" : "Sinu veebileht",
@@ -407,7 +522,7 @@ OC.L10N.register(
"No {property} set" : "„{property}“ on määramata",
"Add additional email" : "Lisa täiendav e-posti aadress",
"Add" : "Lisa",
- "Create" : "Loo",
+ "Create" : "Koosta",
"Change" : "Muuda",
"Delete" : "Kustuta",
"Reshare" : "Jaga edasi",
@@ -418,7 +533,8 @@ OC.L10N.register(
"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",
+ "Manager" : "Haldaja",
+ "Set line manager" : "Lisa vahetu ülemus",
"Account name will be autogenerated" : "Kasutajakonto nimi luuakse automaatselt",
"Account name (required)" : "Kasutajakonto nimi (nõutav)",
"Failed to search groups" : "Gruppe ei õnnestunud otsida",
@@ -433,7 +549,7 @@ OC.L10N.register(
"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",
+ "Quota" : "Kvoot",
"Set account quota" : "Määra kasutajakonto kvoot",
"Language" : "Keel",
"Set default language" : "Määra vaikimisi keel",
@@ -463,6 +579,7 @@ OC.L10N.register(
"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",
+ "Failed to update line manager" : "Vahetu ülemuse uuendamine ei õnnestunud",
"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}“",
@@ -475,26 +592,51 @@ OC.L10N.register(
"Loading account …" : "Laadin kasutajakontot…",
"Change display name" : "Muuda kuvatavat nime",
"Set new password" : "Määra uus salasõna",
+ "You do not have permissions to see the details of this account" : "Sul puuduvad õigused selle kasutajakonto üksikasjade vaatamiseks",
"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",
+ "Toggle account actions menu" : "Lülita kasutajakonto tegevuste menüü sisse/välja",
"Done" : "Valmis",
"Edit" : "Muuda",
+ "Account management settings" : "Kasutajakontode halduse seadistused",
"Visibility" : "Nähtavus",
"Show language" : "Näita keelt",
+ "Show account backend" : "Näita kasutajakonto taustateenust",
+ "Show storage path" : "Näita andmeruumi asukohta",
+ "Show first login" : "Näita esimest sisselogimist",
"Show last login" : "Näita viimast sisselogimist",
+ "Sorting" : "Järjestus",
+ "The system config enforces sorting the groups by name. This also disables showing the member count." : "Süsteem seadistus kasutab gruppide järjestamist nime alusel. Muu hulgas see ei võimalda liikmete arvu näitamist.",
+ "Group list sorting" : "Rühmade loendi järjestus",
"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.",
+ "By member count" : "Liikmete arvu alusel",
+ "By name" : "Nime alusel",
"Send email" : "Saada kiri",
+ "Send welcome email to new accounts" : "Saada uutele kasutajatele tervituskiri",
"Defaults" : "Vaikeväärtused",
"Default quota" : "Vaikimisi mahupiir",
+ "Select default quota" : "Vali vaikimisi andmemahu piir",
+ "Server error while trying to complete WebAuthn device registration" : "Serveriviga WebAuthn seadme registreerimise lõpetamisel",
"Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
+ "Add WebAuthn device" : "Lisa WebAuthni kasutav seade",
+ "Please authorize your WebAuthn device." : "Palun anna luba oma WebAuthn seadme kasutamiseks",
+ "Adding your device …" : "Lisan sinu seadet…",
"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.",
+ "No devices configured." : "Ühtegi seadet pole seadistatud.",
"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.",
+ "Your browser does not support WebAuthn." : "Sinu veebibrauseril puudub WebAuthni tugi.",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saad jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.",
+ "You need to enable the File sharing App." : "Sa pead kasutusele võtma Failijagamise rakenduse.",
+ "App Store" : "Rakendustepood",
+ "Loading app list" : "Laadin rakenduste loendit",
+ "Loading categories" : "Laadin kategooriaid",
+ "Developer documentation ↗" : "Dokumentatsioon arendajatele ↗",
+ "Version {version}, {license}-licensed" : "Versioon {version}, avaldatud {license} litsentsi alusel",
"Version {version}" : "Versioon {version}",
"All accounts" : "Kõik kasutajakontod",
"Admins" : "Haldurid",
@@ -502,8 +644,9 @@ OC.L10N.register(
"Account management" : "Kasutajakontode haldus",
"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",
+ "Profile picture" : "Profiilipilt",
"About" : "Teave",
"Date of birth" : "Sünnikuupäev",
"Full name" : "Täielik nimi",
@@ -534,20 +677,37 @@ 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",
+ "{progress}% Deploying …" : "Võtan kasutusele {progress}%…",
+ "{progress}% Initializing …" : "Valmendan {progress}%…",
+ "Health checking" : "Korrasoleku kontroll",
+ "Deploy and Enable" : "Võta kasutusele ja lülita sisse",
+ "Download and enable" : "Laadi alla ja võta kasutusele",
"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",
+ "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." : "See rakendus pole märgitud ühilduvaks sinu Nextcloudi serveri versiooniga. Kui jätkad, siis saad ta ikkagi paigaldada, aga palun arvesta, et ta ei pruugi toimida ootuspäraselt.",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
+ "Could not register device: Probably already registered" : "Seadme registreerimine polnud võimalik: ilmselt on ta juba registreeritud",
+ "Could not register device" : "Seadme registreerimine polnud võimalik",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
+ "The app has been enabled but needs to be updated." : "See rakendus on kasutusel, aga vajab uuendamist.",
+ "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",
+ "Could not delete the app token" : "Rakenduse tunnusloa kustutamine ei õnnestunud",
+ "Error while wiping the device with the token" : "Viga tunnusloa alusel seadmest andmete kustutamisel",
+ "Error while updating device token name" : "Viga seadme tunnusloa nime uuendamisel",
+ "Error while updating device token scope" : "Viga seadme tunnusloa toimeala uuendamisel",
+ "Could not set group sorting" : "Grupi järjestamise määramine ei õnnestunud",
"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",
"Account documentation" : "Kasutajakonto juhendid",
"Administration documentation" : "Süsteemihalduse juhendid",
"Forum" : "Foorum",
+ "Nextcloud help & privacy resources" : "Nextcloudi abiteave ja privaatsusega seotud info",
"General documentation" : "Üldjuhendid",
"Legal notice" : "Juriidiline teave",
"Privacy policy" : "Privaatsusreeglid",
@@ -557,52 +717,43 @@ OC.L10N.register(
"It is important to set up this server to be able to send emails, like for password reset and notifications." : "On oluline, et e-kirjade saatmise võimekus on seadistatud. Seda kasutatakse näiteks salasõnade lähtestamiseks ja teavituste saatmiseks.",
"Send mode" : "Saatmise viis",
"Encryption" : "Krüpteerimine",
+ "Sendmail mode" : "Sendmaili režiim",
"From address" : "Saatja aadress",
"Server address" : "Serveri aadress",
"Port" : "Port",
"Authentication" : "Autentimine",
"Authentication required" : "Autentimine on vajalik",
"Credentials" : "Kasutajatunnused",
+ "SMTP Login" : "SMTP kasutajanimi",
"SMTP Password" : "SMTP salasõna",
"Save" : "Salvesta",
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
+ "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." : "Sinu serveri turvalisuse ja jõudluse jaoks on oluline, et kõik oleks korrektselt seadistatud. Sinu aitamiseks käivitame mõned automaatsed testid ja kontrollid. Lisateavet leiad viidatud juhendist.",
"All checks passed." : "Kõik kontrollid on läbitud.",
- "Follow us on X" : "Järgne meile X-is",
- "Follow us on Mastodon" : "Järgne meile Mastodonis",
+ "There are some errors regarding your setup." : "Selles paigalduses on paar viga.",
+ "There are some warnings regarding your setup." : "Selles paigalduses on paar hoiatust.",
+ "Checking for system and security issues." : "Kontrollin süsteemivigade ja turvaprobleemide olemasolu.",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%2$s\">log</a>." : "Palun vaata uuesti <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">paigaldusjuhendit ↗</a> ning kontrolli <a href=\"%2$s\">logides</a> leiduvaid vigu ja hoiatusi.",
+ "Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "Testi selle Nextcloudi serveri turvalisust <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">meie turvakontrolliga ↗</a>.",
+ "Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Arendajaks on {communityopen}Nextcloudi kogukond{linkclose}, {githubopen}lähtekood{linkclose} on avaldatud {licenseopen}GNU AGPL{linkclose} litsentsi alusel.",
+ "Like our Facebook page" : "Märgi meie Facebooki leht meeldivaks",
+ "Follow us on X" : "Jälgi meid X-is",
+ "Follow us on Mastodon" : "Jälgi meid Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
"Subscribe to our newsletter" : "Telli meie uudiskiri",
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "See Nextcloudi kogukonnaversioon pole toetatud ja kiirteavitused pole saadaval.",
"Use a second factor besides your password to increase security for your account." : "Sinu kasutajakonto turvalisuse parandamiseks kasuta lisaks oma salasõnale ka teist autentimisvõimalust.",
"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." : "Kui kasutad kolmanda osapoole rakenduses Nextcloudi ühendust, siis palun taga, et sa lood ja seadistad rakenduse salasõna enne kaheastmelise autentimise kasutusele võtmist.",
+ "File locking" : "Failide lukustus",
"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.",
+ "Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev",
+ "Your biography" : "Sinu elulugu",
"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"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json
index a29cfa38243..2005a025dff 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,54 @@
"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",
+ "Some files have not passed the integrity check. {link1} {link2}" : "Mõned failid pole läbinud andmetervikluse kontrolli. {link1} {link2}",
+ "Database missing indices" : "Andmebaasis on puudu mõned indeksid",
+ "Missing indices:" : "Puuduvad indeksid:",
+ "\"%s\" in table \"%s\"" : "„%s“ tabelis „%s“",
"Database missing primary keys" : "Andmebaasis on puudu primaarvõtmed",
"Missing primary key on table \"%s\"." : "Puuduv primaarvõti tabelis „%s“.",
+ "Debug mode" : "Veaotsingu- ja silumisrežiim",
+ "This instance is running in debug mode. Only enable this for local development and not in production environments." : "See server töötab hetkel veaotsingu- ja silumisrežiimis. Palun kasuta seda vaid kohalikus arendustöös, kuid mitte tarbeserveris.",
+ "Debug mode is disabled." : "Veaotsingu- ja silumisrežiim pole kasutusel.",
+ "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 default charset" : "PHP vaikimisi märgistik",
+ "PHP configuration option \"default_charset\" should be UTF-8" : "PHP seadistuse „default_charset“ väärtus peab olema UTF-8",
+ "PHP set_time_limit" : "PHP set_time_limit",
+ "The function is available." : "Funktsioon on saadaval.",
+ "Freetype" : "Freetype",
"Supported" : "Toetatud",
+ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Sinu serverisse paigaldatud PHP-l puudub FreeType'i tugi ning selle tulemusena ei pruugi profiilipiltide lisamine ja kuvamine ja osa seadistuste liidesest toimida.",
+ "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,50 +175,94 @@
"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",
+ "increases language translation performance and fixes sorting of non-ASCII characters" : "parandab jõudlust keelte tõlkimisel ja tagab korrektse järjestamise, kui kasutusel on mitte-ASCII tähemärgid",
"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.",
+ "The PHP OPcache module is not properly configured. %s." : "PHP OPcache'i moodul pole korrektselt seadistatud. %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}.",
+ "Random generator" : "Juhuslike arvude generaator",
+ "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP ei suutnud tuvastada piisavalt juhuslikku andmeallikat ja turvakaalutlustel me soovitame seda olukorda välistada.",
"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.",
+ "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 ja <= %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 ja <= %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 ja <= %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 ja <= %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",
+ "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profiilipilt, täisnimi, e-posti aadress, telefoninumber, aadress, veebisait, Twitteri konto, organisatsioon, roll, alapealkiri, elulugu ja asjaolu, kas sinu profiil on kasutusel.",
"Nextcloud settings" : "Nextcloudi seadistused",
+ "Allow AI usage for guest users" : "Luba külaliskasutajatel kasutada tehiasru",
"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",
+ "Ignore the following groups when checking group membership" : "Gruppide liikmelisuse kontrollimisel eira järgnevaid gruppe",
+ "Allow users to preview files even if download is disabled" : "Luba kasutajatel vaadata failide eelvaateid ka siis, kui allalaadimine on keelatud",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "See ei taga lõplikku kaitset - kasutajatel on ikkagi võimalus teha ekraanitõmmiseid või -salvestusi.",
+ "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",
+ "Allow users to set custom share link tokens" : "Luba kasutajatel jagamislinkidele määrata tunnuslube",
+ "Shares with guessable tokens may be accessed easily" : "Ligipääs ennustatava tunnusloaga jaosmeediale on väga lihtne",
"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",
@@ -205,6 +274,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. ",
@@ -231,15 +301,24 @@
"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}",
+ "Daemon" : "Taustateenus",
+ "Deploy Daemon" : "Kasutuselevõtmise taustateenus",
"Type" : "Tüüp",
"Display Name" : "Kuvatav nimi",
+ "GPUs support" : "Graafikaprotsessori tugi",
+ "Compute device" : "Arvutusseade",
+ "Advanced deploy options" : "Kasutuselevõtmise lisavalikud",
"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",
@@ -247,9 +326,14 @@
"ExApp container environment variables" : "ExApp konteineri keskonnamuutujad",
"No environment variables defined" : "Ühtegi keskonnamuutujat pole defineeritud",
"Mounts" : "Haakepunktid",
+ "Define host folder mounts to bind to the ExApp container" : "Sidumaks ExApp'i konteineriga määratle peremeeskaustade haakepunktid",
+ "Must exist on the Deploy daemon host prior to installing the ExApp" : "Enne ExAppi paigaldamist peab ta olema leitav kasutuselevõtmise taustateenuses",
+ "Host path" : "Peremeeskausta asukoht",
+ "Container path" : "Konteineri asukoht",
"Read-only" : "Ainult lugemiseks",
"Remove mount" : "Eemalda haakepunkt",
"New mount" : "Uus haakepunkt",
+ "Enter path to host folder" : "Sisesta peremeeskausta asukoht",
"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",
@@ -262,6 +346,7 @@
"Description" : "Kirjeldus",
"View in store" : "Vaata poes",
"Visit website" : "Külasta veebisaiti",
+ "Usage documentation" : "Kasutusjuhend",
"Admin documentation" : "Administraatori dokumentatsioon",
"Developer documentation" : "Arendaja dokumentatsioon",
"Details" : "Üksikasjad",
@@ -269,15 +354,23 @@
"Limit app usage to groups" : "Piira rakenduse kasutamist gruppidega",
"No results" : "Vasteid ei leitud",
"Update to {version}" : "Uuenda versioonile {version}",
+ "Deploy options" : "Kasutuselevõtmise valikud",
+ "Default Deploy daemon is not accessible" : "Kasutuselevõtmise taustateenus pole leitav",
+ "Delete data on remove" : "Eemaldamisel kustuta andmed",
"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:",
+ "Latest updated" : "Viimati uuendatud",
"Author" : "Autor",
"Categories" : "Kategooriad",
"Resources" : "Ressursid",
"Documentation" : "Dokumentatsioon",
+ "Interact" : "Suhtle meiega",
"Report a bug" : "Teata veast",
+ "Request feature" : "Palu arendajatel funktsionaalsuse lisamist",
"Ask questions or discuss" : "Küsi nõu või aruta",
+ "Rate the app" : "Hinda rakendust",
+ "Rate" : "Hinda",
"Changelog" : "Muudatuste logi",
"Google Chrome for Android" : "Google Chrome for Android",
"{productName} iOS app" : "{productName}i iOS-i rakendus",
@@ -286,11 +379,13 @@
"{productName} Talk for Android" : "{productName} Talk Androidi jaoks",
"Sync client" : "Sünkroniseerimisklient",
"This session" : "See sessioon",
+ "{client} - {version} ({system})" : "{client} - {version} ({system})",
+ "{client} - {version}" : "{client} - {version}",
"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",
+ "Marked for remote wipe" : "Märgitud kaugkustutamiseks",
+ "Device settings" : "Seadme seadistused",
"Allow filesystem access" : "Luba juurdepääs failisüsteemile",
"Rename" : "Muuda nime",
"Revoke" : "Tühista",
@@ -302,11 +397,11 @@
"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",
+ "Create new app password" : "Loo uus rakenduse salasõna",
"App password copied!" : "Rakenduse salasõna on kopeeritud!",
"Copy app password" : "Kopeeri rakenduse salasõna",
- "Login name copied!" : "Kasutajanimi on koeeritud!",
- "Copy login name" : "Koeeri kasutajanimi",
+ "Login name copied!" : "Kasutajanimi on kopeeritud!",
+ "Copy login name" : "Kopeeri kasutajanimi",
"Could not copy app password. Please copy it manually." : "Ei õnnestunud kopeerida rakenduse salasõna. Palun tee seda käsitsi.",
"Could not copy login name. Please copy it manually." : "Ei õnnestunud kopeerida kasutajanime. Palun tee seda käsitsi.",
"New app password" : "Uus rakenduse salasõna",
@@ -316,8 +411,18 @@
"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",
+ "Enable or disable profile by default for new accounts." : "Lülita profiil uute kasutajate jaoks sisse või välja.",
+ "Password confirmation is required" : "Salasõna kinnitamine on vajalik",
"Failed to save setting" : "Seadistuse salvestamine ei õnnestunud",
+ "{app}'s declarative setting field: {name}" : "„{app}“ rakenduse deklaratiivse seadistuse väli: „{name}“",
"Unable to update server side encryption config" : "Serveripoolse krüptimise seadistusi ei õnnestu uuendada",
"Server-side encryption" : "Serveripoolne krüptimine",
"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." : "Serveripoole krüptimine võimaldab serverisse üleslaaditud faile krüptida. Sellega kaasnevad piirangud, näiteks jõudluskadu. Lülita see sisse ainult siis, kui vaja on.",
@@ -326,6 +431,7 @@
"Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Serveripoolse krüptimise väljalülitamine on võimalik vaid käsureapõhise OCC-tarvikuga. Lisateavet leiad dokumentatsioonist.",
"No encryption module loaded, please enable an encryption module in the app menu." : "Krüptimise moodul pole laaditud, palun luba krüptimise moodul rakenduste menüüs.",
"Select default encryption module:" : "Määra vaikimisi krüptimise moodul:",
+ "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}" : "Sa pead oma krüptovõtmed kolima vanast vormingust (ownCloud <= 8.0) uude. Palun lülita „Vakimise krüptimise moodul“ sisse ja käivita „{command}“",
"Cancel encryption" : "Katkesta krüptimine",
"Enable encryption" : "Luba krüptimine",
"Confirm enabling encryption" : "Kinnita krüptimise kasutuselevõtmine",
@@ -337,12 +443,12 @@
"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.",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
- "Remove group" : "Eemalda grupp",
+ "Delete group" : "Kustuta grupp",
"Current password" : "Praegune salasõna",
"New password" : "Uus salasõna",
"Change password" : "Muuda salasõna",
@@ -361,12 +467,14 @@
"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.",
+ "Unable to update date of birth" : "Sünnikuupäeva seadistamine ei õnnestu",
"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",
+ "Options for additional email address {index}" : "Täiendava e-posti aadressi valikud: {index}",
"Remove primary email" : "Eemalda põhiline e-postiaadress",
"Delete email" : "Kustuta e-posti aadress",
"This address is not confirmed" : "See aadress pole kinnitatud",
@@ -397,6 +505,13 @@
"Your organisation" : "Sinu organisatsioon",
"Your phone number" : "Sinu telefoninumber",
"Edit your Profile visibility" : "Muuda oma profiili nähtavust",
+ "Unable to update profile enabled state" : "Profiili kasutuseloleku uuendamine ei õnnestu",
+ "Enable profile" : "Võta profiil kasutusele",
+ "Unable to update visibility of {displayId}" : "„{displayId}“ nähtavust polnud võimalik uuendada",
+ "she/her" : "she/her",
+ "he/him" : "he/him",
+ "they/them" : "they/them",
+ "Your pronouns. E.g. {pronounsExample}" : "Sinu asesõnad, näiteks „{pronounsExample}“",
"Your role" : "Sinu roll",
"Your X (formerly Twitter) handle" : "Sinu X-i (varasemalt Twitteri) kasutajanimi",
"Your website" : "Sinu veebileht",
@@ -405,7 +520,7 @@
"No {property} set" : "„{property}“ on määramata",
"Add additional email" : "Lisa täiendav e-posti aadress",
"Add" : "Lisa",
- "Create" : "Loo",
+ "Create" : "Koosta",
"Change" : "Muuda",
"Delete" : "Kustuta",
"Reshare" : "Jaga edasi",
@@ -416,7 +531,8 @@
"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",
+ "Manager" : "Haldaja",
+ "Set line manager" : "Lisa vahetu ülemus",
"Account name will be autogenerated" : "Kasutajakonto nimi luuakse automaatselt",
"Account name (required)" : "Kasutajakonto nimi (nõutav)",
"Failed to search groups" : "Gruppe ei õnnestunud otsida",
@@ -431,7 +547,7 @@
"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",
+ "Quota" : "Kvoot",
"Set account quota" : "Määra kasutajakonto kvoot",
"Language" : "Keel",
"Set default language" : "Määra vaikimisi keel",
@@ -461,6 +577,7 @@
"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",
+ "Failed to update line manager" : "Vahetu ülemuse uuendamine ei õnnestunud",
"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}“",
@@ -473,26 +590,51 @@
"Loading account …" : "Laadin kasutajakontot…",
"Change display name" : "Muuda kuvatavat nime",
"Set new password" : "Määra uus salasõna",
+ "You do not have permissions to see the details of this account" : "Sul puuduvad õigused selle kasutajakonto üksikasjade vaatamiseks",
"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",
+ "Toggle account actions menu" : "Lülita kasutajakonto tegevuste menüü sisse/välja",
"Done" : "Valmis",
"Edit" : "Muuda",
+ "Account management settings" : "Kasutajakontode halduse seadistused",
"Visibility" : "Nähtavus",
"Show language" : "Näita keelt",
+ "Show account backend" : "Näita kasutajakonto taustateenust",
+ "Show storage path" : "Näita andmeruumi asukohta",
+ "Show first login" : "Näita esimest sisselogimist",
"Show last login" : "Näita viimast sisselogimist",
+ "Sorting" : "Järjestus",
+ "The system config enforces sorting the groups by name. This also disables showing the member count." : "Süsteem seadistus kasutab gruppide järjestamist nime alusel. Muu hulgas see ei võimalda liikmete arvu näitamist.",
+ "Group list sorting" : "Rühmade loendi järjestus",
"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.",
+ "By member count" : "Liikmete arvu alusel",
+ "By name" : "Nime alusel",
"Send email" : "Saada kiri",
+ "Send welcome email to new accounts" : "Saada uutele kasutajatele tervituskiri",
"Defaults" : "Vaikeväärtused",
"Default quota" : "Vaikimisi mahupiir",
+ "Select default quota" : "Vali vaikimisi andmemahu piir",
+ "Server error while trying to complete WebAuthn device registration" : "Serveriviga WebAuthn seadme registreerimise lõpetamisel",
"Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
+ "Add WebAuthn device" : "Lisa WebAuthni kasutav seade",
+ "Please authorize your WebAuthn device." : "Palun anna luba oma WebAuthn seadme kasutamiseks",
+ "Adding your device …" : "Lisan sinu seadet…",
"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.",
+ "No devices configured." : "Ühtegi seadet pole seadistatud.",
"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.",
+ "Your browser does not support WebAuthn." : "Sinu veebibrauseril puudub WebAuthni tugi.",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saad jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.",
+ "You need to enable the File sharing App." : "Sa pead kasutusele võtma Failijagamise rakenduse.",
+ "App Store" : "Rakendustepood",
+ "Loading app list" : "Laadin rakenduste loendit",
+ "Loading categories" : "Laadin kategooriaid",
+ "Developer documentation ↗" : "Dokumentatsioon arendajatele ↗",
+ "Version {version}, {license}-licensed" : "Versioon {version}, avaldatud {license} litsentsi alusel",
"Version {version}" : "Versioon {version}",
"All accounts" : "Kõik kasutajakontod",
"Admins" : "Haldurid",
@@ -500,8 +642,9 @@
"Account management" : "Kasutajakontode haldus",
"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",
+ "Profile picture" : "Profiilipilt",
"About" : "Teave",
"Date of birth" : "Sünnikuupäev",
"Full name" : "Täielik nimi",
@@ -532,20 +675,37 @@
"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",
+ "{progress}% Deploying …" : "Võtan kasutusele {progress}%…",
+ "{progress}% Initializing …" : "Valmendan {progress}%…",
+ "Health checking" : "Korrasoleku kontroll",
+ "Deploy and Enable" : "Võta kasutusele ja lülita sisse",
+ "Download and enable" : "Laadi alla ja võta kasutusele",
"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",
+ "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." : "See rakendus pole märgitud ühilduvaks sinu Nextcloudi serveri versiooniga. Kui jätkad, siis saad ta ikkagi paigaldada, aga palun arvesta, et ta ei pruugi toimida ootuspäraselt.",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
+ "Could not register device: Probably already registered" : "Seadme registreerimine polnud võimalik: ilmselt on ta juba registreeritud",
+ "Could not register device" : "Seadme registreerimine polnud võimalik",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
+ "The app has been enabled but needs to be updated." : "See rakendus on kasutusel, aga vajab uuendamist.",
+ "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",
+ "Could not delete the app token" : "Rakenduse tunnusloa kustutamine ei õnnestunud",
+ "Error while wiping the device with the token" : "Viga tunnusloa alusel seadmest andmete kustutamisel",
+ "Error while updating device token name" : "Viga seadme tunnusloa nime uuendamisel",
+ "Error while updating device token scope" : "Viga seadme tunnusloa toimeala uuendamisel",
+ "Could not set group sorting" : "Grupi järjestamise määramine ei õnnestunud",
"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",
"Account documentation" : "Kasutajakonto juhendid",
"Administration documentation" : "Süsteemihalduse juhendid",
"Forum" : "Foorum",
+ "Nextcloud help & privacy resources" : "Nextcloudi abiteave ja privaatsusega seotud info",
"General documentation" : "Üldjuhendid",
"Legal notice" : "Juriidiline teave",
"Privacy policy" : "Privaatsusreeglid",
@@ -555,52 +715,43 @@
"It is important to set up this server to be able to send emails, like for password reset and notifications." : "On oluline, et e-kirjade saatmise võimekus on seadistatud. Seda kasutatakse näiteks salasõnade lähtestamiseks ja teavituste saatmiseks.",
"Send mode" : "Saatmise viis",
"Encryption" : "Krüpteerimine",
+ "Sendmail mode" : "Sendmaili režiim",
"From address" : "Saatja aadress",
"Server address" : "Serveri aadress",
"Port" : "Port",
"Authentication" : "Autentimine",
"Authentication required" : "Autentimine on vajalik",
"Credentials" : "Kasutajatunnused",
+ "SMTP Login" : "SMTP kasutajanimi",
"SMTP Password" : "SMTP salasõna",
"Save" : "Salvesta",
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
+ "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." : "Sinu serveri turvalisuse ja jõudluse jaoks on oluline, et kõik oleks korrektselt seadistatud. Sinu aitamiseks käivitame mõned automaatsed testid ja kontrollid. Lisateavet leiad viidatud juhendist.",
"All checks passed." : "Kõik kontrollid on läbitud.",
- "Follow us on X" : "Järgne meile X-is",
- "Follow us on Mastodon" : "Järgne meile Mastodonis",
+ "There are some errors regarding your setup." : "Selles paigalduses on paar viga.",
+ "There are some warnings regarding your setup." : "Selles paigalduses on paar hoiatust.",
+ "Checking for system and security issues." : "Kontrollin süsteemivigade ja turvaprobleemide olemasolu.",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%2$s\">log</a>." : "Palun vaata uuesti <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">paigaldusjuhendit ↗</a> ning kontrolli <a href=\"%2$s\">logides</a> leiduvaid vigu ja hoiatusi.",
+ "Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "Testi selle Nextcloudi serveri turvalisust <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">meie turvakontrolliga ↗</a>.",
+ "Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Arendajaks on {communityopen}Nextcloudi kogukond{linkclose}, {githubopen}lähtekood{linkclose} on avaldatud {licenseopen}GNU AGPL{linkclose} litsentsi alusel.",
+ "Like our Facebook page" : "Märgi meie Facebooki leht meeldivaks",
+ "Follow us on X" : "Jälgi meid X-is",
+ "Follow us on Mastodon" : "Jälgi meid Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
"Subscribe to our newsletter" : "Telli meie uudiskiri",
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "See Nextcloudi kogukonnaversioon pole toetatud ja kiirteavitused pole saadaval.",
"Use a second factor besides your password to increase security for your account." : "Sinu kasutajakonto turvalisuse parandamiseks kasuta lisaks oma salasõnale ka teist autentimisvõimalust.",
"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." : "Kui kasutad kolmanda osapoole rakenduses Nextcloudi ühendust, siis palun taga, et sa lood ja seadistad rakenduse salasõna enne kaheastmelise autentimise kasutusele võtmist.",
+ "File locking" : "Failide lukustus",
"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.",
+ "Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev",
+ "Your biography" : "Sinu elulugu",
"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"
},"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..0e8bc888688 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.",
@@ -445,8 +444,8 @@ OC.L10N.register(
"View in store" : "Dendan ikusi",
"Visit website" : "Web orria ikusi",
"Usage documentation" : "Erabilera dokumentazioa",
- "Admin documentation" : "Administratzailearen dokumentazioa",
- "Developer documentation" : "Garatzailearen dokumentazioa",
+ "Admin documentation" : "Admin dokumentazioa",
+ "Developer documentation" : "Garatzaile dokumentazioa",
"Details" : "Xehetasunak",
"All" : "Denak",
"Limit app usage to groups" : "Mugatu aplikazioaren erabilera taldeei",
@@ -463,7 +462,7 @@ OC.L10N.register(
"Resources" : "Baliabideak",
"Documentation" : "Dokumentazioa",
"Interact" : "Elkarreragin",
- "Report a bug" : "Eman akats baten berri ",
+ "Report a bug" : "Jakinarazi errore bat",
"Request feature" : "Eskatu ezaugarria",
"Ask questions or discuss" : "Egin galderak edo eztabaidatu",
"Rate the app" : "Baloratu aplikazioa",
@@ -522,6 +521,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,15 +538,12 @@ 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.",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
- "Remove group" : "Ezabatu taldea",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
- "Change password" : "Aldatu pasahitza",
+ "Change password" : "Pasahitza aldatu",
"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",
@@ -567,7 +564,7 @@ OC.L10N.register(
"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",
+ "Email options" : "E-posta aukerak",
"Options for additional email address {index}" : "Posta elektroniko gehigarrirako aukerak {index}",
"Remove primary email" : "Kendu posta elektroniko nagusia",
"Delete email" : "Ezabatu posta elektronikoa",
@@ -597,7 +594,6 @@ OC.L10N.register(
"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",
@@ -690,7 +686,7 @@ OC.L10N.register(
"Set the language" : "Ezarri hizkuntza",
"Toggle account actions menu" : "Txandakatu kontuen ekintza menua",
"Done" : "Egina",
- "Edit" : "Aldatu",
+ "Edit" : "Editatu",
"Account management settings" : "Kontuen kudeaketaren ezarpenak",
"Visibility" : "Ikusgarritasuna",
"Show language" : "Erakutsi hizkuntza",
@@ -708,17 +704,17 @@ OC.L10N.register(
"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",
+ "Server error while trying to complete WebAuthn device registration" : "Zerbitzariak akatsa eman du 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",
+ "Adding your device …" : "Gailua gehitzen...",
+ "Unnamed device" : "Izenik 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.",
+ "Your browser does not support WebAuthn." : "Nabigatzaile honek 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",
@@ -834,50 +830,17 @@ 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.",
+ "- 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",
- "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."
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json
index 3626caf9743..591540b081e 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.",
@@ -443,8 +442,8 @@
"View in store" : "Dendan ikusi",
"Visit website" : "Web orria ikusi",
"Usage documentation" : "Erabilera dokumentazioa",
- "Admin documentation" : "Administratzailearen dokumentazioa",
- "Developer documentation" : "Garatzailearen dokumentazioa",
+ "Admin documentation" : "Admin dokumentazioa",
+ "Developer documentation" : "Garatzaile dokumentazioa",
"Details" : "Xehetasunak",
"All" : "Denak",
"Limit app usage to groups" : "Mugatu aplikazioaren erabilera taldeei",
@@ -461,7 +460,7 @@
"Resources" : "Baliabideak",
"Documentation" : "Dokumentazioa",
"Interact" : "Elkarreragin",
- "Report a bug" : "Eman akats baten berri ",
+ "Report a bug" : "Jakinarazi errore bat",
"Request feature" : "Eskatu ezaugarria",
"Ask questions or discuss" : "Egin galderak edo eztabaidatu",
"Rate the app" : "Baloratu aplikazioa",
@@ -520,6 +519,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,15 +536,12 @@
"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.",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
- "Remove group" : "Ezabatu taldea",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
- "Change password" : "Aldatu pasahitza",
+ "Change password" : "Pasahitza aldatu",
"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",
@@ -565,7 +562,7 @@
"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",
+ "Email options" : "E-posta aukerak",
"Options for additional email address {index}" : "Posta elektroniko gehigarrirako aukerak {index}",
"Remove primary email" : "Kendu posta elektroniko nagusia",
"Delete email" : "Ezabatu posta elektronikoa",
@@ -595,7 +592,6 @@
"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",
@@ -688,7 +684,7 @@
"Set the language" : "Ezarri hizkuntza",
"Toggle account actions menu" : "Txandakatu kontuen ekintza menua",
"Done" : "Egina",
- "Edit" : "Aldatu",
+ "Edit" : "Editatu",
"Account management settings" : "Kontuen kudeaketaren ezarpenak",
"Visibility" : "Ikusgarritasuna",
"Show language" : "Erakutsi hizkuntza",
@@ -706,17 +702,17 @@
"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",
+ "Server error while trying to complete WebAuthn device registration" : "Zerbitzariak akatsa eman du 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",
+ "Adding your device …" : "Gailua gehitzen...",
+ "Unnamed device" : "Izenik 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.",
+ "Your browser does not support WebAuthn." : "Nabigatzaile honek 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",
@@ -832,50 +828,17 @@
"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.",
+ "- 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",
- "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."
+ "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>)"
},"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..e0d0527944d 100644
--- a/apps/settings/l10n/fa.js
+++ b/apps/settings/l10n/fa.js
@@ -194,11 +194,11 @@ OC.L10N.register(
"Description" : "شرح",
"View in store" : "نمایش در فروشگاه",
"Visit website" : "سر زدن به پایگاه وب",
- "Admin documentation" : "مستندات مدیر",
- "Developer documentation" : "مستندات توسعه‌دهندگان",
+ "Admin documentation" : "مستندات مدیریتی",
+ "Developer documentation" : "مستندات توسعه",
"Details" : "جزییات",
"All" : "همه",
- "Limit app usage to groups" : "محدودیت استفاده از کاره به گروه‌ها",
+ "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." : "این برنامه حداقل دارای نسخه بعدی نکست کلود است. این یک خطا در آینده خواهد بود.",
@@ -209,7 +209,7 @@ OC.L10N.register(
"Resources" : "منابع",
"Documentation" : "مستندسازی",
"Interact" : "تعامل",
- "Report a bug" : "گزارش یک خطا",
+ "Report a bug" : "گزارش یک اشکال",
"Request feature" : "درخواست ویژگی",
"Ask questions or discuss" : "پرسش یا بحث",
"Rate" : "رتبه‌بندی",
@@ -232,7 +232,7 @@ OC.L10N.register(
"Devices & sessions" : "دستگاه ها و نشست ها",
"Web, desktop and mobile clients currently logged in to your account." : "لیست دستگاه ها و نشست های فعال وارد شده با اکانت شما",
"Error while creating device token" : "هنگام ایجاد نشانه وسیله خطایی رخ داد",
- "App name" : "نام برنامه",
+ "App name" : "نام کاره",
"Create new app password" : "ساختن رمزعبور برنامه جدید ",
"Could not copy app password. Please copy it manually." : "نمی توان رمزعبور برنامه را کپی کرد. لطفاً آن را به صورت دستی کپی کنید.",
"Login" : "ورود",
@@ -266,10 +266,9 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
"Submit" : "ارسال",
"Rename group" : "Rename group",
- "Remove group" : "برداشتن گروه",
"Current password" : "گذرواژه کنونی",
"New password" : "گذرواژه جدید",
- "Change password" : "تغییر گذر واژه",
+ "Change password" : "تغییر گذرواژه",
"Choose your profile picture" : "عکس نمایهٔ خود را انتخاب کنید",
"Please select a valid png or jpg file" : "لطفاً یک فایل png یا jpg معتبر انتخاب کنید",
"Error setting profile picture" : "خطا در تنظیم عکس نمایه",
@@ -280,7 +279,7 @@ OC.L10N.register(
"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",
+ "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 ساعت طول بکشد تا عکس نمایه شما در همه جا به روز شود.",
@@ -322,7 +321,6 @@ OC.L10N.register(
"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" : "حذف",
@@ -333,7 +331,7 @@ OC.L10N.register(
"Password change is disabled because the master key is disabled" : "تغییر رمز غیرفعال شده است زیرا کلید اصلی غیرفعال شده است",
"No accounts" : "حسابی وجود ندارد",
"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)",
@@ -347,7 +345,7 @@ OC.L10N.register(
"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",
+ "Account name" : "نام حساب.",
"Group admin for" : "مدیر گروه برای",
"Storage location" : "محل ذخیره سازی",
"Last login" : "آخرین ورود",
@@ -366,7 +364,7 @@ OC.L10N.register(
"Email was successfully changed" : "Email was successfully changed",
"Welcome mail sent!" : "نامه خوش آمديد ارسال شد",
"Set the language" : "Set the language",
- "Done" : "انجام شد",
+ "Done" : "Done",
"Edit" : "ویرایش",
"Visibility" : "Visibility",
"Show language" : "Show language",
@@ -403,6 +401,7 @@ OC.L10N.register(
"Headline" : "عنوان",
"Organisation" : "سازمان",
"Phone number" : "شماره تلفن",
+ "Pronouns" : "ضمایر",
"Role" : "نقش",
"Website" : "وب‌ سایت",
"Profile visibility" : "امکان دیده شدن پروفایل",
@@ -472,39 +471,10 @@ 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",
+ "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" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید",
- "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" : "ما را در توییتر دنبال کنید"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "شما در حال استفادهٔ <strong>{usage}</strong> از <strong>{totalSpace}</strong> (<strong>{usageRelative}٪</strong>) فضا هستید"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json
index d623181172e..be5c5d5ae3d 100644
--- a/apps/settings/l10n/fa.json
+++ b/apps/settings/l10n/fa.json
@@ -192,11 +192,11 @@
"Description" : "شرح",
"View in store" : "نمایش در فروشگاه",
"Visit website" : "سر زدن به پایگاه وب",
- "Admin documentation" : "مستندات مدیر",
- "Developer documentation" : "مستندات توسعه‌دهندگان",
+ "Admin documentation" : "مستندات مدیریتی",
+ "Developer documentation" : "مستندات توسعه",
"Details" : "جزییات",
"All" : "همه",
- "Limit app usage to groups" : "محدودیت استفاده از کاره به گروه‌ها",
+ "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." : "این برنامه حداقل دارای نسخه بعدی نکست کلود است. این یک خطا در آینده خواهد بود.",
@@ -207,7 +207,7 @@
"Resources" : "منابع",
"Documentation" : "مستندسازی",
"Interact" : "تعامل",
- "Report a bug" : "گزارش یک خطا",
+ "Report a bug" : "گزارش یک اشکال",
"Request feature" : "درخواست ویژگی",
"Ask questions or discuss" : "پرسش یا بحث",
"Rate" : "رتبه‌بندی",
@@ -230,7 +230,7 @@
"Devices & sessions" : "دستگاه ها و نشست ها",
"Web, desktop and mobile clients currently logged in to your account." : "لیست دستگاه ها و نشست های فعال وارد شده با اکانت شما",
"Error while creating device token" : "هنگام ایجاد نشانه وسیله خطایی رخ داد",
- "App name" : "نام برنامه",
+ "App name" : "نام کاره",
"Create new app password" : "ساختن رمزعبور برنامه جدید ",
"Could not copy app password. Please copy it manually." : "نمی توان رمزعبور برنامه را کپی کرد. لطفاً آن را به صورت دستی کپی کنید.",
"Login" : "ورود",
@@ -264,10 +264,9 @@
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
"Submit" : "ارسال",
"Rename group" : "Rename group",
- "Remove group" : "برداشتن گروه",
"Current password" : "گذرواژه کنونی",
"New password" : "گذرواژه جدید",
- "Change password" : "تغییر گذر واژه",
+ "Change password" : "تغییر گذرواژه",
"Choose your profile picture" : "عکس نمایهٔ خود را انتخاب کنید",
"Please select a valid png or jpg file" : "لطفاً یک فایل png یا jpg معتبر انتخاب کنید",
"Error setting profile picture" : "خطا در تنظیم عکس نمایه",
@@ -278,7 +277,7 @@
"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",
+ "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 ساعت طول بکشد تا عکس نمایه شما در همه جا به روز شود.",
@@ -320,7 +319,6 @@
"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" : "حذف",
@@ -331,7 +329,7 @@
"Password change is disabled because the master key is disabled" : "تغییر رمز غیرفعال شده است زیرا کلید اصلی غیرفعال شده است",
"No accounts" : "حسابی وجود ندارد",
"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)",
@@ -345,7 +343,7 @@
"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",
+ "Account name" : "نام حساب.",
"Group admin for" : "مدیر گروه برای",
"Storage location" : "محل ذخیره سازی",
"Last login" : "آخرین ورود",
@@ -364,7 +362,7 @@
"Email was successfully changed" : "Email was successfully changed",
"Welcome mail sent!" : "نامه خوش آمديد ارسال شد",
"Set the language" : "Set the language",
- "Done" : "انجام شد",
+ "Done" : "Done",
"Edit" : "ویرایش",
"Visibility" : "Visibility",
"Show language" : "Show language",
@@ -401,6 +399,7 @@
"Headline" : "عنوان",
"Organisation" : "سازمان",
"Phone number" : "شماره تلفن",
+ "Pronouns" : "ضمایر",
"Role" : "نقش",
"Website" : "وب‌ سایت",
"Profile visibility" : "امکان دیده شدن پروفایل",
@@ -470,39 +469,10 @@
"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",
+ "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" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید",
- "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" : "ما را در توییتر دنبال کنید"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "شما در حال استفادهٔ <strong>{usage}</strong> از <strong>{totalSpace}</strong> (<strong>{usageRelative}٪</strong>) فضا هستید"
},"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..b26ce0295e4 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,11 +210,13 @@ 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",
@@ -227,14 +230,15 @@ OC.L10N.register(
"Type" : "Tyyppi",
"Display Name" : "Näyttönimi",
"Learn more" : "Opi lisää",
+ "Environment variables" : "Ympäristömuuttujat",
"Confirm" : "Vahvista",
"Cancel" : "Peru",
"Description" : "Kuvaus",
"View in store" : "Näytä kaupassa",
"Visit website" : "Käy verkkosivustolla",
- "Admin documentation" : "Ylläpitäjän ohjeistus",
+ "Admin documentation" : "Ylläpitäjän dokumentaatio",
"Developer documentation" : "Kehittäjädokumentaatio",
- "Details" : "Yksityiskohdat",
+ "Details" : "Tiedot",
"All" : "Kaikki",
"Limit app usage to groups" : "Rajoita sovelluskäyttö ryhmiin",
"No results" : "Ei tuloksia",
@@ -258,6 +262,8 @@ OC.L10N.register(
"{productName} Talk for iOS" : "{productName} Talk iOS:lle",
"{productName} Talk for Android" : "{productName} Talk Androidille",
"This session" : "Tämä istunto",
+ "{client} - {version} ({system})" : "{client} - {version} ({system})",
+ "{client} - {version}" : "{client} - {version}",
"Device name" : "Laitteen nimi",
"Save new name" : "Tallenna uusi nimi",
"Marked for remote wipe" : "Merkitty etätyhjennettäväksi",
@@ -286,9 +292,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,15 +309,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.",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
- "Remove group" : "Poista ryhmä",
+ "Delete 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",
@@ -350,7 +356,6 @@ OC.L10N.register(
"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",
@@ -402,7 +407,9 @@ OC.L10N.register(
"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 can't be empty" : "Salasana ei voi olla tyhjä",
"Password was successfully changed" : "Salasana vaihdettiin onnistuneesti",
+ "Email can't be empty" : "Sähköposti ei voi olla tyhjä",
"Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti",
"Welcome mail sent!" : "Tervetuloviesti lähetetty!",
"Loading account …" : "Ladataan tiliä…",
@@ -441,6 +448,8 @@ OC.L10N.register(
"Loading categories" : "Ladataan luokkia",
"Developer documentation ↗" : "Kehittäjien dokumentaatio ↗",
"Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}",
+ "Version {version}" : "Versio {version}",
+ "All accounts" : "Kaikki tilit",
"Admins" : "Ylläpitäjät",
"Account group: {group}" : "Tiliryhmä: {group}",
"Account management" : "Tilihallinta",
@@ -461,6 +470,7 @@ OC.L10N.register(
"Website" : "Verkkosivusto",
"Profile visibility" : "Profiilin näkyvyys",
"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",
@@ -529,33 +539,10 @@ 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ä"
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json
index f09740ab075..714886e982a 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,11 +208,13 @@
"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",
@@ -225,14 +228,15 @@
"Type" : "Tyyppi",
"Display Name" : "Näyttönimi",
"Learn more" : "Opi lisää",
+ "Environment variables" : "Ympäristömuuttujat",
"Confirm" : "Vahvista",
"Cancel" : "Peru",
"Description" : "Kuvaus",
"View in store" : "Näytä kaupassa",
"Visit website" : "Käy verkkosivustolla",
- "Admin documentation" : "Ylläpitäjän ohjeistus",
+ "Admin documentation" : "Ylläpitäjän dokumentaatio",
"Developer documentation" : "Kehittäjädokumentaatio",
- "Details" : "Yksityiskohdat",
+ "Details" : "Tiedot",
"All" : "Kaikki",
"Limit app usage to groups" : "Rajoita sovelluskäyttö ryhmiin",
"No results" : "Ei tuloksia",
@@ -256,6 +260,8 @@
"{productName} Talk for iOS" : "{productName} Talk iOS:lle",
"{productName} Talk for Android" : "{productName} Talk Androidille",
"This session" : "Tämä istunto",
+ "{client} - {version} ({system})" : "{client} - {version} ({system})",
+ "{client} - {version}" : "{client} - {version}",
"Device name" : "Laitteen nimi",
"Save new name" : "Tallenna uusi nimi",
"Marked for remote wipe" : "Merkitty etätyhjennettäväksi",
@@ -284,9 +290,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,15 +307,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.",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
- "Remove group" : "Poista ryhmä",
+ "Delete 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",
@@ -348,7 +354,6 @@
"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",
@@ -400,7 +405,9 @@
"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 can't be empty" : "Salasana ei voi olla tyhjä",
"Password was successfully changed" : "Salasana vaihdettiin onnistuneesti",
+ "Email can't be empty" : "Sähköposti ei voi olla tyhjä",
"Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti",
"Welcome mail sent!" : "Tervetuloviesti lähetetty!",
"Loading account …" : "Ladataan tiliä…",
@@ -439,6 +446,8 @@
"Loading categories" : "Ladataan luokkia",
"Developer documentation ↗" : "Kehittäjien dokumentaatio ↗",
"Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}",
+ "Version {version}" : "Versio {version}",
+ "All accounts" : "Kaikki tilit",
"Admins" : "Ylläpitäjät",
"Account group: {group}" : "Tiliryhmä: {group}",
"Account management" : "Tilihallinta",
@@ -459,6 +468,7 @@
"Website" : "Verkkosivusto",
"Profile visibility" : "Profiilin näkyvyys",
"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",
@@ -527,33 +537,10 @@
"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ä"
+ "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>)"
},"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..f3f56954d5e 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.",
@@ -360,6 +365,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Autoriser le partage avec les groupes",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de mêmes groupes",
"Ignore the following groups when checking group membership" : "Ignorer ces groupes lors de la vérification de l’appartenance des comptes aux groupes",
+ "Allow users to preview files even if download is disabled" : "Permettre aux utilisateurs de prévisualiser les fichiers même si le téléchargement est désactivé",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Les utilisateurs pourront toujours faire des captures d'écran ou enregistrer l'écran. Cela n'offre aucune protection définitive.",
"Allow users to share via link and emails" : "Autoriser les utilisateurs à partager par lien et par e-mail",
"Allow public uploads" : "Autoriser les téléversements publics",
"Always ask for a password" : "Toujours demander un mot de passe",
@@ -433,6 +440,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",
@@ -477,13 +485,13 @@ OC.L10N.register(
"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",
+ "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",
+ "All" : "Tout",
"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}",
@@ -499,7 +507,7 @@ OC.L10N.register(
"Resources" : "Ressources",
"Documentation" : "Documentation",
"Interact" : "Interagir",
- "Report a bug" : "Signaler un bogue",
+ "Report a bug" : "Signaler un bug",
"Request feature" : "Demander une fonctionnalité",
"Ask questions or discuss" : "Poser des questions ou discuter",
"Rate the app" : "Évaluer l’application",
@@ -558,6 +566,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,17 +583,18 @@ 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.",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
- "Remove group" : "Retirer le groupe",
+ "Delete group" : "Supprimer le groupe",
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",
@@ -648,6 +658,7 @@ OC.L10N.register(
"she/her" : "elle/elle",
"he/him" : "il/lui",
"they/them" : "iel/ellui",
+ "Your pronouns. E.g. {pronounsExample}" : "Vos pronoms. Par exemple : {pronounsExample}",
"Your role" : "Votre fonction",
"Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)",
"Your website" : "Votre site web",
@@ -660,7 +671,7 @@ OC.L10N.register(
"Add additional email" : "Ajouter un e-mail supplémentaire",
"Add" : "Ajouter",
"Create" : "Créer",
- "Change" : "Modifier",
+ "Change" : "Modifier ",
"Delete" : "Supprimer",
"Reshare" : "Repartager",
"Default language" : "Langue par défaut",
@@ -676,7 +687,7 @@ OC.L10N.register(
"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",
+ "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)",
@@ -714,6 +725,8 @@ OC.L10N.register(
"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 load groups with details" : "Échec du chargement des groupes avec les détails",
+ "Failed to load sub admin groups with details" : "Échec du chargement du sous-administrateur de groupes avec les détails",
"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",
@@ -734,8 +747,8 @@ OC.L10N.register(
"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",
+ "Done" : "Fait",
+ "Edit" : "Éditer",
"Account management settings" : "Paramètres gestion des comptes",
"Visibility" : "Visibilité",
"Show language" : "Afficher la langue",
@@ -746,6 +759,7 @@ OC.L10N.register(
"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",
+ "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Pour des raisons de performances, le tri ne s'applique qu'aux groupes actuellement chargés. Les groupes seront chargés au fur et à mesure de votre navigation ou de votre recherche dans la liste.",
"By member count" : "Par nombre de membres",
"By name" : "Par nom",
"Send email" : "Envoyer un e-mail",
@@ -881,50 +895,18 @@ 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.",
+ "- 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",
- "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."
+ "Failed to load subadmin groups with details" : "Échec du chargement des sous-administrateurs de groupes avec les détails"
},
"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..2b64850fbd7 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.",
@@ -358,6 +363,8 @@
"Allow sharing with groups" : "Autoriser le partage avec les groupes",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de mêmes groupes",
"Ignore the following groups when checking group membership" : "Ignorer ces groupes lors de la vérification de l’appartenance des comptes aux groupes",
+ "Allow users to preview files even if download is disabled" : "Permettre aux utilisateurs de prévisualiser les fichiers même si le téléchargement est désactivé",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Les utilisateurs pourront toujours faire des captures d'écran ou enregistrer l'écran. Cela n'offre aucune protection définitive.",
"Allow users to share via link and emails" : "Autoriser les utilisateurs à partager par lien et par e-mail",
"Allow public uploads" : "Autoriser les téléversements publics",
"Always ask for a password" : "Toujours demander un mot de passe",
@@ -431,6 +438,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",
@@ -475,13 +483,13 @@
"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",
+ "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",
+ "All" : "Tout",
"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}",
@@ -497,7 +505,7 @@
"Resources" : "Ressources",
"Documentation" : "Documentation",
"Interact" : "Interagir",
- "Report a bug" : "Signaler un bogue",
+ "Report a bug" : "Signaler un bug",
"Request feature" : "Demander une fonctionnalité",
"Ask questions or discuss" : "Poser des questions ou discuter",
"Rate the app" : "Évaluer l’application",
@@ -556,6 +564,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,17 +581,18 @@
"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.",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
- "Remove group" : "Retirer le groupe",
+ "Delete group" : "Supprimer le groupe",
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",
@@ -646,6 +656,7 @@
"she/her" : "elle/elle",
"he/him" : "il/lui",
"they/them" : "iel/ellui",
+ "Your pronouns. E.g. {pronounsExample}" : "Vos pronoms. Par exemple : {pronounsExample}",
"Your role" : "Votre fonction",
"Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)",
"Your website" : "Votre site web",
@@ -658,7 +669,7 @@
"Add additional email" : "Ajouter un e-mail supplémentaire",
"Add" : "Ajouter",
"Create" : "Créer",
- "Change" : "Modifier",
+ "Change" : "Modifier ",
"Delete" : "Supprimer",
"Reshare" : "Repartager",
"Default language" : "Langue par défaut",
@@ -674,7 +685,7 @@
"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",
+ "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)",
@@ -712,6 +723,8 @@
"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 load groups with details" : "Échec du chargement des groupes avec les détails",
+ "Failed to load sub admin groups with details" : "Échec du chargement du sous-administrateur de groupes avec les détails",
"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",
@@ -732,8 +745,8 @@
"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",
+ "Done" : "Fait",
+ "Edit" : "Éditer",
"Account management settings" : "Paramètres gestion des comptes",
"Visibility" : "Visibilité",
"Show language" : "Afficher la langue",
@@ -744,6 +757,7 @@
"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",
+ "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Pour des raisons de performances, le tri ne s'applique qu'aux groupes actuellement chargés. Les groupes seront chargés au fur et à mesure de votre navigation ou de votre recherche dans la liste.",
"By member count" : "Par nombre de membres",
"By name" : "Par nom",
"Send email" : "Envoyer un e-mail",
@@ -879,50 +893,18 @@
"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.",
+ "- 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",
- "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."
+ "Failed to load subadmin groups with details" : "Échec du chargement des sous-administrateurs de groupes avec les détails"
},"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..5f8edd63eca 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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Socruithe Nextcloud",
"Unified task processing" : "Próiseáil tasc aontaithe",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Is féidir le apps éagsúla tascanna AI a chur i bhfeidhm. Anseo is féidir leat a shocrú cén aipeanna ba chóir a úsáid le haghaidh an tasc.",
+ "Allow AI usage for guest users" : "Ceadaigh úsáid AI d'úsáideoirí aoi",
"Task:" : "Tasc:",
"Enable" : "Cumasaigh",
"None of your currently installed apps provide Task processing functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht phróiseála Tasc",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Ceadaigh roinnt le grúpaí",
"Restrict users to only share with users in their groups" : "Cuir srian le húsáideoirí a roinnt le húsáideoirí ina ngrúpaí amháin",
"Ignore the following groups when checking group membership" : "Déan neamhaird de na grúpaí seo a leanas agus ballraíocht grúpa á sheiceáil",
+ "Allow users to preview files even if download is disabled" : "Ceadaigh d'úsáideoirí réamhamharc a dhéanamh ar chomhaid fiú mura bhfuil íoslódáil ar fáil",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Beidh úsáideoirí fós in ann scáileán a thógáil nó an scáileán a thaifeadadh. Ní sholáthraíonn sé seo aon chosaint chinntitheach.",
"Allow users to share via link and emails" : "Lig d'úsáideoirí a roinnt trí nasc agus ríomhphoist",
"Allow public uploads" : "Ceadaigh uaslódálacha poiblí",
"Always ask for a password" : "Iarr pasfhocal i gcónaí",
@@ -561,6 +567,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,14 +590,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.",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
- "Remove group" : "Bain an grúpa",
+ "Delete group" : "Scrios grúpa",
"Current password" : "Pasfhocal reatha",
- "New password" : "Focal Faire Nua",
+ "New password" : "Pasfhocal 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",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "sí/léi",
"he/him" : "sé/dó",
"they/them" : "siad/siad",
+ "Your pronouns. E.g. {pronounsExample}" : "Do fhorainmneacha. M.sh. {pronounsExample}",
"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",
@@ -888,51 +896,18 @@ 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",
+ "- 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.",
"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.",
- "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í"
},
"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..b565f117530 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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Socruithe Nextcloud",
"Unified task processing" : "Próiseáil tasc aontaithe",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Is féidir le apps éagsúla tascanna AI a chur i bhfeidhm. Anseo is féidir leat a shocrú cén aipeanna ba chóir a úsáid le haghaidh an tasc.",
+ "Allow AI usage for guest users" : "Ceadaigh úsáid AI d'úsáideoirí aoi",
"Task:" : "Tasc:",
"Enable" : "Cumasaigh",
"None of your currently installed apps provide Task processing functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht phróiseála Tasc",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Ceadaigh roinnt le grúpaí",
"Restrict users to only share with users in their groups" : "Cuir srian le húsáideoirí a roinnt le húsáideoirí ina ngrúpaí amháin",
"Ignore the following groups when checking group membership" : "Déan neamhaird de na grúpaí seo a leanas agus ballraíocht grúpa á sheiceáil",
+ "Allow users to preview files even if download is disabled" : "Ceadaigh d'úsáideoirí réamhamharc a dhéanamh ar chomhaid fiú mura bhfuil íoslódáil ar fáil",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Beidh úsáideoirí fós in ann scáileán a thógáil nó an scáileán a thaifeadadh. Ní sholáthraíonn sé seo aon chosaint chinntitheach.",
"Allow users to share via link and emails" : "Lig d'úsáideoirí a roinnt trí nasc agus ríomhphoist",
"Allow public uploads" : "Ceadaigh uaslódálacha poiblí",
"Always ask for a password" : "Iarr pasfhocal i gcónaí",
@@ -559,6 +565,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,14 +588,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.",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
- "Remove group" : "Bain an grúpa",
+ "Delete group" : "Scrios grúpa",
"Current password" : "Pasfhocal reatha",
- "New password" : "Focal Faire Nua",
+ "New password" : "Pasfhocal 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",
@@ -650,6 +657,7 @@
"she/her" : "sí/léi",
"he/him" : "sé/dó",
"they/them" : "siad/siad",
+ "Your pronouns. E.g. {pronounsExample}" : "Do fhorainmneacha. M.sh. {pronounsExample}",
"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",
@@ -886,51 +894,18 @@
"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",
+ "- 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.",
"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.",
- "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í"
},"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..bd1f2526d9f 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.",
@@ -445,7 +444,7 @@ OC.L10N.register(
"{index} of {total}" : "{index} de {total}",
"Daemon" : "Servizo",
"Deploy Daemon" : "Servizo de despregadura",
- "Type" : "Escribir",
+ "Type" : "Tipo",
"Display Name" : "Nome para amosar",
"GPUs support" : "Compatibilidade con GPU",
"Compute device" : "Dispositivo de computación",
@@ -556,6 +555,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,12 +578,9 @@ 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.",
"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",
@@ -608,7 +605,7 @@ OC.L10N.register(
"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",
+ "Email options" : "Opcións de correo",
"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",
@@ -684,7 +681,6 @@ OC.L10N.register(
"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",
@@ -879,50 +875,17 @@ 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",
+ "- 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",
- "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."
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json
index 33f049c6c42..a0182cdbf1f 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.",
@@ -443,7 +442,7 @@
"{index} of {total}" : "{index} de {total}",
"Daemon" : "Servizo",
"Deploy Daemon" : "Servizo de despregadura",
- "Type" : "Escribir",
+ "Type" : "Tipo",
"Display Name" : "Nome para amosar",
"GPUs support" : "Compatibilidade con GPU",
"Compute device" : "Dispositivo de computación",
@@ -554,6 +553,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,12 +576,9 @@
"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.",
"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",
@@ -606,7 +603,7 @@
"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",
+ "Email options" : "Opcións de correo",
"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",
@@ -682,7 +679,6 @@
"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",
@@ -877,50 +873,17 @@
"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",
+ "- 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",
- "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."
+ "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>)"
},"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..c3ce45f5edf 100644
--- a/apps/settings/l10n/he.js
+++ b/apps/settings/l10n/he.js
@@ -159,12 +159,12 @@ OC.L10N.register(
"Confirm" : "אימות",
"Cancel" : "ביטול",
"Description" : "תיאור",
- "View in store" : "הצגה באחסון",
+ "View in store" : "הצגה בחנות",
"Visit website" : "ביקור באתר האינטרנט",
- "Admin documentation" : "תיעוד מנהל",
- "Developer documentation" : "תיעוד מפתח",
+ "Admin documentation" : "תיעוד למנהלים",
+ "Developer documentation" : "תיעוד למפתחים",
"Details" : "פרטים",
- "All" : "הכל",
+ "All" : "הכול",
"Limit app usage to groups" : "הגבלת השימוש ביישומון לקבוצות",
"No results" : "אין תוצאות",
"Update to {version}" : "עדכון ל־{version}",
@@ -180,6 +180,7 @@ OC.L10N.register(
"Rate" : "דירוג",
"Changelog" : "יומן שינויים",
"Google Chrome for Android" : "Google Chrome עבור Android",
+ "{productName} Android app" : "יישום אנדרואיד {productName}",
"This session" : "הפעלה זו",
"Marked for remote wipe" : "מסומן להשמדת נתונים מרחוק",
"Device settings" : "הגדרות מכשיר",
@@ -192,7 +193,7 @@ OC.L10N.register(
"Devices & sessions" : "התקנים והפעלות",
"Web, desktop and mobile clients currently logged in to your account." : "לקוחות שמחוברים כעת לחשבון שלך דרך דפדפן, שולחן עבודה והתקנים ניידים.",
"Error while creating device token" : "שגיאה בזמן יצירת מחרוזת התקן",
- "App name" : "שם יישום",
+ "App name" : "שם היישומון",
"Create new app password" : "יצירת סיסמת יישום חדשה",
"Could not copy app password. Please copy it manually." : "לא ניתן להעתיק את הססמה של היישומון. נא להעתיק אותה ידנית.",
"Login" : "התחברות",
@@ -200,6 +201,7 @@ OC.L10N.register(
"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" : "הפעלת הצפנה בצד שרת",
@@ -212,19 +214,18 @@ 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." : "תמיד טוב ליצור גיבוי קבוע למידע , במקרה של הצפנה יש לוודא שגם מפתחות ההצפנה מגובים עם המידע שלך.",
"This is the final warning: Do you really want to enable encryption?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
"Submit" : "שליחה",
- "Remove group" : "הסרת קבוצה",
- "Current password" : "סיסמא נוכחית",
- "New password" : "סיסמא חדשה",
- "Change password" : "שינוי סיסמא",
+ "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" : "לא הוגדרה שפה",
+ "Week starts on {firstDayOfWeek}" : "השבוע מתחיל ב{firstDayOfWeek}",
"Your phone number" : "מספר הטלפון שלך",
"Add" : "הוספה",
- "Create" : "יצירה",
"Change" : "שינוי",
"Delete" : "מחיקה",
"Reshare" : "שיתוף מחדש",
@@ -232,7 +233,6 @@ OC.L10N.register(
"Common languages" : "שפות נפוצות",
"Password change is disabled because the master key is disabled" : "החלפת ססמה מושבתת כיוון שהמפתח הראשי מושבת",
"New account" : "חשבון חדש",
- "Display name" : "שם תצוגה",
"Email" : "דוא״ל",
"Quota" : "מכיסה",
"Language" : "שפה",
@@ -334,13 +334,7 @@ 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" : "לעקוב אחרינו בטוויטר"
+ "You are using <strong>{usage}</strong>" : "הניצולת שלך היא <strong>{usage}</strong>"
},
"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..ba34f81b61f 100644
--- a/apps/settings/l10n/he.json
+++ b/apps/settings/l10n/he.json
@@ -157,12 +157,12 @@
"Confirm" : "אימות",
"Cancel" : "ביטול",
"Description" : "תיאור",
- "View in store" : "הצגה באחסון",
+ "View in store" : "הצגה בחנות",
"Visit website" : "ביקור באתר האינטרנט",
- "Admin documentation" : "תיעוד מנהל",
- "Developer documentation" : "תיעוד מפתח",
+ "Admin documentation" : "תיעוד למנהלים",
+ "Developer documentation" : "תיעוד למפתחים",
"Details" : "פרטים",
- "All" : "הכל",
+ "All" : "הכול",
"Limit app usage to groups" : "הגבלת השימוש ביישומון לקבוצות",
"No results" : "אין תוצאות",
"Update to {version}" : "עדכון ל־{version}",
@@ -178,6 +178,7 @@
"Rate" : "דירוג",
"Changelog" : "יומן שינויים",
"Google Chrome for Android" : "Google Chrome עבור Android",
+ "{productName} Android app" : "יישום אנדרואיד {productName}",
"This session" : "הפעלה זו",
"Marked for remote wipe" : "מסומן להשמדת נתונים מרחוק",
"Device settings" : "הגדרות מכשיר",
@@ -190,7 +191,7 @@
"Devices & sessions" : "התקנים והפעלות",
"Web, desktop and mobile clients currently logged in to your account." : "לקוחות שמחוברים כעת לחשבון שלך דרך דפדפן, שולחן עבודה והתקנים ניידים.",
"Error while creating device token" : "שגיאה בזמן יצירת מחרוזת התקן",
- "App name" : "שם יישום",
+ "App name" : "שם היישומון",
"Create new app password" : "יצירת סיסמת יישום חדשה",
"Could not copy app password. Please copy it manually." : "לא ניתן להעתיק את הססמה של היישומון. נא להעתיק אותה ידנית.",
"Login" : "התחברות",
@@ -198,6 +199,7 @@
"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" : "הפעלת הצפנה בצד שרת",
@@ -210,19 +212,18 @@
"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?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
"Submit" : "שליחה",
- "Remove group" : "הסרת קבוצה",
- "Current password" : "סיסמא נוכחית",
- "New password" : "סיסמא חדשה",
- "Change password" : "שינוי סיסמא",
+ "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" : "לא הוגדרה שפה",
+ "Week starts on {firstDayOfWeek}" : "השבוע מתחיל ב{firstDayOfWeek}",
"Your phone number" : "מספר הטלפון שלך",
"Add" : "הוספה",
- "Create" : "יצירה",
"Change" : "שינוי",
"Delete" : "מחיקה",
"Reshare" : "שיתוף מחדש",
@@ -230,7 +231,6 @@
"Common languages" : "שפות נפוצות",
"Password change is disabled because the master key is disabled" : "החלפת ססמה מושבתת כיוון שהמפתח הראשי מושבת",
"New account" : "חשבון חדש",
- "Display name" : "שם תצוגה",
"Email" : "דוא״ל",
"Quota" : "מכיסה",
"Language" : "שפה",
@@ -332,13 +332,7 @@
"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" : "לעקוב אחרינו בטוויטר"
+ "You are using <strong>{usage}</strong>" : "הניצולת שלך היא <strong>{usage}</strong>"
},"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..1fbf446ef49 100644
--- a/apps/settings/l10n/hr.js
+++ b/apps/settings/l10n/hr.js
@@ -228,10 +228,9 @@ 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." : "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?",
"Submit" : "Šalji",
- "Remove group" : "Ukloni grupu",
"Current password" : "Trenutna zaporka",
"New password" : "Nova zaporka",
- "Change password" : "Promijeni zaporku",
+ "Change password" : "Promijeni lozinku",
"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",
@@ -253,13 +252,15 @@ OC.L10N.register(
"Unable to update language" : "Nije moguće ažurirati jezik",
"Help translate" : "Pomozite prevesti",
"No language set" : "Nije postavljen jezik",
+ "Week starts on {firstDayOfWeek}" : "Tjedan počinje {firstDayOfWeek}",
"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",
+ "Unable to update federation scope of the primary {property}" : "Nije moguće ažurirati opseg udruženja primarnog {property}",
+ "Unable to update federation scope of additional {property}" : "Nije moguće ažurirati opseg udruženja dodatnog {property}",
"Add" : "Dodaj",
"Create" : "Stvori",
"Change" : "Promijeni",
@@ -270,7 +271,6 @@ OC.L10N.register(
"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",
@@ -289,7 +289,6 @@ OC.L10N.register(
"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",
@@ -383,16 +382,8 @@ 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"
+ "You are using <strong>{usage}</strong>" : "Koristite <strong>{usage}</strong>"
},
"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..a951e332caa 100644
--- a/apps/settings/l10n/hr.json
+++ b/apps/settings/l10n/hr.json
@@ -226,10 +226,9 @@
"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?",
"Submit" : "Šalji",
- "Remove group" : "Ukloni grupu",
"Current password" : "Trenutna zaporka",
"New password" : "Nova zaporka",
- "Change password" : "Promijeni zaporku",
+ "Change password" : "Promijeni lozinku",
"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",
@@ -251,13 +250,15 @@
"Unable to update language" : "Nije moguće ažurirati jezik",
"Help translate" : "Pomozite prevesti",
"No language set" : "Nije postavljen jezik",
+ "Week starts on {firstDayOfWeek}" : "Tjedan počinje {firstDayOfWeek}",
"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",
+ "Unable to update federation scope of the primary {property}" : "Nije moguće ažurirati opseg udruženja primarnog {property}",
+ "Unable to update federation scope of additional {property}" : "Nije moguće ažurirati opseg udruženja dodatnog {property}",
"Add" : "Dodaj",
"Create" : "Stvori",
"Change" : "Promijeni",
@@ -268,7 +269,6 @@
"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",
@@ -287,7 +287,6 @@
"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",
@@ -381,16 +380,8 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Koristite <strong>{usage}</strong>"
},"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..2c7b16b947c 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -201,6 +201,7 @@ OC.L10N.register(
"Old server-side-encryption" : "Régi kiszolgálóoldali titkosítás",
"Disabled" : "Letiltva",
"The old server-side-encryption format is enabled. We recommend disabling this." : "A régi kiszolgálóoldali titkosítási formátum engedélyezett. Javasoljuk ennek letiltását.",
+ "Logging level" : "Naplózási szint",
"Maintenance window start" : "Karbantartási ablak indítása",
"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." : "A kiszolgálón nincs beállítva a karbantartási időszak kezdési ideje. Ez azt jelenti, hogy az erőforrás-igényes napi háttérfeladatok a fő használati idő alatt is végrehajtásra kerülnek. Javasoljuk, hogy alacsony igénybevételre állítsa be, így a felhasználókat kevésbé érinti az ezekből az erőforrás-igényes feladatokból származó terhelés.",
"Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC" : "A erőforrás-igényes háttérfeladatok végrehajtásának karbantartási időszaka {start}:00 UTC és {end}:00 UTC között van",
@@ -249,7 +250,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",
@@ -319,9 +320,9 @@ OC.L10N.register(
"Admin documentation" : "Rendszergazdai dokumentáció",
"Developer documentation" : "Fejlesztői dokumentáció",
"Details" : "Részletek",
- "All" : "Mind",
+ "All" : "Összes",
"Limit app usage to groups" : "Alkalmazás használatának csoportokra korlátozása",
- "No results" : "Nincs találat",
+ "No results" : "Nincs eredmény",
"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.",
@@ -385,6 +386,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,14 +401,12 @@ 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",
"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",
+ "Change password" : "Jelszó módosítá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",
@@ -423,7 +423,7 @@ OC.L10N.register(
"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",
+ "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",
@@ -449,7 +449,7 @@ OC.L10N.register(
"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",
+ "Your phone number" : "A telefonszámod",
"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",
@@ -468,7 +468,7 @@ OC.L10N.register(
"Create" : "Létrehozás",
"Change" : "Módosítás",
"Delete" : "Törlés",
- "Reshare" : "Megosztás újra",
+ "Reshare" : "Továbbosztás",
"Default language" : "Alapértelmezett nyelv",
"Common languages" : "Alapvető nyelvek",
"Other languages" : "Más nyelvek",
@@ -543,11 +543,11 @@ OC.L10N.register(
"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",
+ "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",
+ "Add WebAuthn device" : "WebAuthn-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…",
+ "Adding your device …" : "Eszköz 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.",
@@ -650,41 +650,10 @@ 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"
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index d5e820ee38a..fcf1534796f 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -199,6 +199,7 @@
"Old server-side-encryption" : "Régi kiszolgálóoldali titkosítás",
"Disabled" : "Letiltva",
"The old server-side-encryption format is enabled. We recommend disabling this." : "A régi kiszolgálóoldali titkosítási formátum engedélyezett. Javasoljuk ennek letiltását.",
+ "Logging level" : "Naplózási szint",
"Maintenance window start" : "Karbantartási ablak indítása",
"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." : "A kiszolgálón nincs beállítva a karbantartási időszak kezdési ideje. Ez azt jelenti, hogy az erőforrás-igényes napi háttérfeladatok a fő használati idő alatt is végrehajtásra kerülnek. Javasoljuk, hogy alacsony igénybevételre állítsa be, így a felhasználókat kevésbé érinti az ezekből az erőforrás-igényes feladatokból származó terhelés.",
"Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC" : "A erőforrás-igényes háttérfeladatok végrehajtásának karbantartási időszaka {start}:00 UTC és {end}:00 UTC között van",
@@ -247,7 +248,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",
@@ -317,9 +318,9 @@
"Admin documentation" : "Rendszergazdai dokumentáció",
"Developer documentation" : "Fejlesztői dokumentáció",
"Details" : "Részletek",
- "All" : "Mind",
+ "All" : "Összes",
"Limit app usage to groups" : "Alkalmazás használatának csoportokra korlátozása",
- "No results" : "Nincs találat",
+ "No results" : "Nincs eredmény",
"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.",
@@ -383,6 +384,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,14 +399,12 @@
"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",
"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",
+ "Change password" : "Jelszó módosítá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",
@@ -421,7 +421,7 @@
"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",
+ "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",
@@ -447,7 +447,7 @@
"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",
+ "Your phone number" : "A telefonszámod",
"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",
@@ -466,7 +466,7 @@
"Create" : "Létrehozás",
"Change" : "Módosítás",
"Delete" : "Törlés",
- "Reshare" : "Megosztás újra",
+ "Reshare" : "Továbbosztás",
"Default language" : "Alapértelmezett nyelv",
"Common languages" : "Alapvető nyelvek",
"Other languages" : "Más nyelvek",
@@ -541,11 +541,11 @@
"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",
+ "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",
+ "Add WebAuthn device" : "WebAuthn-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…",
+ "Adding your device …" : "Eszköz 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.",
@@ -648,41 +648,10 @@
"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"
+ "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>)"
},"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..da1b8870ea9 100644
--- a/apps/settings/l10n/id.js
+++ b/apps/settings/l10n/id.js
@@ -160,7 +160,7 @@ OC.L10N.register(
"Visit website" : "Kunjungi laman web",
"Admin documentation" : "Dokumentasi admin",
"Developer documentation" : "Dokumentasi pengembang",
- "Details" : "Detil",
+ "Details" : "Detail",
"All" : "Semua",
"Limit app usage to groups" : "Batas pemakaian aplikasi untuk grup",
"No results" : "Tidak ada hasil",
@@ -178,6 +178,7 @@ OC.L10N.register(
"Ask questions or discuss" : "Tanyakan atau berdiskusi",
"Changelog" : "Log pembaruan",
"Google Chrome for Android" : "Google Chrome untuk Android",
+ "{productName} Android app" : "{productName} Aplikasi Android",
"This session" : "Sesi ini",
"Marked for remote wipe" : "Tandai untuk penghapusan remote",
"Device settings" : "Pengaturan perangkat",
@@ -214,10 +215,9 @@ 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." : "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?",
"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",
+ "Change password" : "Ubah sandi",
"Choose your profile picture" : "Pilih gambar profilmu",
"Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil",
"Your profile picture" : "Gambar profilmu",
@@ -232,16 +232,16 @@ OC.L10N.register(
"No email address set" : "Alamat surel tidak diatur",
"Help translate" : "Bantu menerjemahkan",
"No language set" : "Tidak ada bahasa yang disetel",
+ "Week starts on {firstDayOfWeek}" : "Minggu dimulai di hari {firstDayOfWeek}",
"Your phone number" : "Nomor telefon Anda",
"Edit your Profile visibility" : "Ubah visibilitas Profil Anda",
- "Add" : "Masukkan",
+ "Add" : "Tambah",
"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",
@@ -323,11 +323,7 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Anda menggunakan <strong>{usage}</strong>"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json
index de17cd90b46..9e48b326931 100644
--- a/apps/settings/l10n/id.json
+++ b/apps/settings/l10n/id.json
@@ -158,7 +158,7 @@
"Visit website" : "Kunjungi laman web",
"Admin documentation" : "Dokumentasi admin",
"Developer documentation" : "Dokumentasi pengembang",
- "Details" : "Detil",
+ "Details" : "Detail",
"All" : "Semua",
"Limit app usage to groups" : "Batas pemakaian aplikasi untuk grup",
"No results" : "Tidak ada hasil",
@@ -176,6 +176,7 @@
"Ask questions or discuss" : "Tanyakan atau berdiskusi",
"Changelog" : "Log pembaruan",
"Google Chrome for Android" : "Google Chrome untuk Android",
+ "{productName} Android app" : "{productName} Aplikasi Android",
"This session" : "Sesi ini",
"Marked for remote wipe" : "Tandai untuk penghapusan remote",
"Device settings" : "Pengaturan perangkat",
@@ -212,10 +213,9 @@
"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?",
"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",
+ "Change password" : "Ubah sandi",
"Choose your profile picture" : "Pilih gambar profilmu",
"Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil",
"Your profile picture" : "Gambar profilmu",
@@ -230,16 +230,16 @@
"No email address set" : "Alamat surel tidak diatur",
"Help translate" : "Bantu menerjemahkan",
"No language set" : "Tidak ada bahasa yang disetel",
+ "Week starts on {firstDayOfWeek}" : "Minggu dimulai di hari {firstDayOfWeek}",
"Your phone number" : "Nomor telefon Anda",
"Edit your Profile visibility" : "Ubah visibilitas Profil Anda",
- "Add" : "Masukkan",
+ "Add" : "Tambah",
"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",
@@ -321,11 +321,7 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Anda menggunakan <strong>{usage}</strong>"
},"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..8fe755570d3 100644
--- a/apps/settings/l10n/is.js
+++ b/apps/settings/l10n/is.js
@@ -399,6 +399,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,15 +415,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.",
"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",
@@ -697,38 +694,12 @@ 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"
+ "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>)"
},
"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..8519e7089df 100644
--- a/apps/settings/l10n/is.json
+++ b/apps/settings/l10n/is.json
@@ -397,6 +397,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,15 +413,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.",
"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",
@@ -695,38 +692,12 @@
"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"
+ "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>)"
},"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..0ec7b5fb1db 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",
@@ -363,7 +375,7 @@ OC.L10N.register(
"Confirm" : "Conferma",
"Cancel" : "Annulla",
"Description" : "Descrizione",
- "View in store" : "Visualizza nell'archivio",
+ "View in store" : "Visualizza nel negozio",
"Visit website" : "Visita il sito web",
"Usage documentation" : "Manuale d'uso",
"Admin documentation" : "Documentazione di amministrazione",
@@ -410,7 +422,7 @@ OC.L10N.register(
"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",
+ "Error while creating device token" : "Errore durante la creazione del token",
"App name" : "Nome applicazione",
"Create new app password" : "Crea nuova password di applicazione",
"App password copied!" : "Password dell'applicazione copiata!",
@@ -423,6 +435,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 +447,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,11 +462,9 @@ 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",
"Submit" : "Invia",
"Rename group" : "Rinomina gruppo",
- "Remove group" : "Rimuovi gruppo",
"Current password" : "Password attuale",
"New password" : "Nuova password",
"Change password" : "Modifica password",
@@ -497,7 +509,6 @@ OC.L10N.register(
"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\".",
@@ -523,12 +534,14 @@ OC.L10N.register(
"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",
+ "Failed to search groups" : "Impossibile cercare i gruppi",
"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",
+ "Member of the following groups" : "Membro dei seguenti gruppi",
"Quota" : "Quote",
"Language" : "Lingua",
"Set default language" : "Imposta lingua predefinita",
@@ -579,7 +592,7 @@ OC.L10N.register(
"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…",
+ "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.",
@@ -676,44 +689,12 @@ 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!"
+ "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>)"
},
"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..161326c69ab 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",
@@ -361,7 +373,7 @@
"Confirm" : "Conferma",
"Cancel" : "Annulla",
"Description" : "Descrizione",
- "View in store" : "Visualizza nell'archivio",
+ "View in store" : "Visualizza nel negozio",
"Visit website" : "Visita il sito web",
"Usage documentation" : "Manuale d'uso",
"Admin documentation" : "Documentazione di amministrazione",
@@ -408,7 +420,7 @@
"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",
+ "Error while creating device token" : "Errore durante la creazione del token",
"App name" : "Nome applicazione",
"Create new app password" : "Crea nuova password di applicazione",
"App password copied!" : "Password dell'applicazione copiata!",
@@ -421,6 +433,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 +445,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,11 +460,9 @@
"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",
"Submit" : "Invia",
"Rename group" : "Rinomina gruppo",
- "Remove group" : "Rimuovi gruppo",
"Current password" : "Password attuale",
"New password" : "Nuova password",
"Change password" : "Modifica password",
@@ -495,7 +507,6 @@
"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\".",
@@ -521,12 +532,14 @@
"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",
+ "Failed to search groups" : "Impossibile cercare i gruppi",
"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",
+ "Member of the following groups" : "Membro dei seguenti gruppi",
"Quota" : "Quote",
"Language" : "Lingua",
"Set default language" : "Imposta lingua predefinita",
@@ -577,7 +590,7 @@
"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…",
+ "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.",
@@ -674,44 +687,12 @@
"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!"
+ "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>)"
},"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..e23468d6858 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\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud の設定",
"Unified task processing" : "統合タスク処理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AIタスクは、さまざまなアプリで実装できます。ここでは、どのタスクにどのアプリを使用するかを設定します。",
+ "Allow AI usage for guest users" : "ゲストユーザーにAIの利用を許可する",
"Task:" : "Task:",
"Enable" : "有効にする",
"None of your currently installed apps provide Task processing functionality" : "現在インストールされているアプリでタスク処理機能を提供しているものはありません",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "グループ共有を許可する",
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
"Ignore the following groups when checking group membership" : "グループ・メンバーシップをチェックする際、以下のグループは無視します",
+ "Allow users to preview files even if download is disabled" : "ダウンロードが無効の場合でもユーザーがファイルをプレビューできるようにする",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "スクリーンショットや録画は可能です。これは決定的な保護にはなりません。",
"Allow users to share via link and emails" : "URLリンクとメールでの共有を許可する",
"Allow public uploads" : "パブリックなアップロードを許可する",
"Always ask for a password" : "常にパスワードをたずねる",
@@ -527,7 +533,7 @@ OC.L10N.register(
"Revoke" : "取り消す",
"Wipe device" : "デバイスをワイプ",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。",
- "Device" : "デバイス",
+ "Device" : "端末",
"Last activity" : "最後のアクティビティ",
"Devices & sessions" : "デバイスとセッション",
"Web, desktop and mobile clients currently logged in to your account." : "現在、Web、デスクトップ、モバイルアプリであなたのアカウントにログインしている端末一覧です。",
@@ -561,6 +567,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,14 +590,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}\" を削除しようとしています。アカウントは削除されません。",
"Submit" : "送信",
"Rename group" : "グループの名称変更",
- "Remove group" : "グループを削除",
+ "Delete group" : "グループを削除",
"Current password" : "現在のパスワード",
- "New password" : "新しいパスワード",
+ "New password" : "新たなパスワード",
"Change password" : "パスワードを変更",
"Choose your profile picture" : "プロフィール画像を選択",
"Please select a valid png or jpg file" : "pngもしくは、jpgファイルを選択してください",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "彼女",
"he/him" : "彼",
"they/them" : "彼ら/彼女ら",
+ "Your pronouns. E.g. {pronounsExample}" : "あなたの代名詞 例: {pronounsExample}",
"Your role" : "あなたの役",
"Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム",
"Your website" : "あなたの個人ウェブサイト",
@@ -760,17 +768,17 @@ OC.L10N.register(
"Defaults" : "初期値",
"Default quota" : "デフォルトのクオータ",
"Select default quota" : "デフォルトのクオータを選択",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn デバイス登録を完了しようとしたときのサーバーエラー",
+ "Server error while trying to complete WebAuthn device registration" : "WebAuthnデバイスの登録中にサーバエラーが発生しました。",
"Passwordless authentication requires a secure connection." : "パスワードレス認証では、安全な接続が必要です。",
- "Add WebAuthn device" : "WebAuthn デバイスの追加",
+ "Add WebAuthn device" : "WebAuthnデバイスを追加する",
"Please authorize your WebAuthn device." : "WebAuthn デバイスを認証してください。",
- "Adding your device …" : "あなたのデバイスを追加しています…",
- "Unnamed device" : "名称設定されていないデバイス",
+ "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 をサポートしていません。",
+ "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" : "アプリストア",
@@ -888,51 +896,18 @@ 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" : "現在インストールされているどのアプリも、テキスト処理機能を提供していません",
+ "- 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" : "共有のデフォルトの有効期限を設定する",
- "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の不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
- "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" : "サブ管理者グループの詳細の読み込みに失敗しました"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json
index c4a7d1e9a1e..131240c6428 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\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud の設定",
"Unified task processing" : "統合タスク処理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AIタスクは、さまざまなアプリで実装できます。ここでは、どのタスクにどのアプリを使用するかを設定します。",
+ "Allow AI usage for guest users" : "ゲストユーザーにAIの利用を許可する",
"Task:" : "Task:",
"Enable" : "有効にする",
"None of your currently installed apps provide Task processing functionality" : "現在インストールされているアプリでタスク処理機能を提供しているものはありません",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "グループ共有を許可する",
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
"Ignore the following groups when checking group membership" : "グループ・メンバーシップをチェックする際、以下のグループは無視します",
+ "Allow users to preview files even if download is disabled" : "ダウンロードが無効の場合でもユーザーがファイルをプレビューできるようにする",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "スクリーンショットや録画は可能です。これは決定的な保護にはなりません。",
"Allow users to share via link and emails" : "URLリンクとメールでの共有を許可する",
"Allow public uploads" : "パブリックなアップロードを許可する",
"Always ask for a password" : "常にパスワードをたずねる",
@@ -525,7 +531,7 @@
"Revoke" : "取り消す",
"Wipe device" : "デバイスをワイプ",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。",
- "Device" : "デバイス",
+ "Device" : "端末",
"Last activity" : "最後のアクティビティ",
"Devices & sessions" : "デバイスとセッション",
"Web, desktop and mobile clients currently logged in to your account." : "現在、Web、デスクトップ、モバイルアプリであなたのアカウントにログインしている端末一覧です。",
@@ -559,6 +565,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,14 +588,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}\" を削除しようとしています。アカウントは削除されません。",
"Submit" : "送信",
"Rename group" : "グループの名称変更",
- "Remove group" : "グループを削除",
+ "Delete group" : "グループを削除",
"Current password" : "現在のパスワード",
- "New password" : "新しいパスワード",
+ "New password" : "新たなパスワード",
"Change password" : "パスワードを変更",
"Choose your profile picture" : "プロフィール画像を選択",
"Please select a valid png or jpg file" : "pngもしくは、jpgファイルを選択してください",
@@ -650,6 +657,7 @@
"she/her" : "彼女",
"he/him" : "彼",
"they/them" : "彼ら/彼女ら",
+ "Your pronouns. E.g. {pronounsExample}" : "あなたの代名詞 例: {pronounsExample}",
"Your role" : "あなたの役",
"Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム",
"Your website" : "あなたの個人ウェブサイト",
@@ -758,17 +766,17 @@
"Defaults" : "初期値",
"Default quota" : "デフォルトのクオータ",
"Select default quota" : "デフォルトのクオータを選択",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn デバイス登録を完了しようとしたときのサーバーエラー",
+ "Server error while trying to complete WebAuthn device registration" : "WebAuthnデバイスの登録中にサーバエラーが発生しました。",
"Passwordless authentication requires a secure connection." : "パスワードレス認証では、安全な接続が必要です。",
- "Add WebAuthn device" : "WebAuthn デバイスの追加",
+ "Add WebAuthn device" : "WebAuthnデバイスを追加する",
"Please authorize your WebAuthn device." : "WebAuthn デバイスを認証してください。",
- "Adding your device …" : "あなたのデバイスを追加しています…",
- "Unnamed device" : "名称設定されていないデバイス",
+ "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 をサポートしていません。",
+ "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" : "アプリストア",
@@ -886,51 +894,18 @@
"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" : "現在インストールされているどのアプリも、テキスト処理機能を提供していません",
+ "- 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" : "共有のデフォルトの有効期限を設定する",
- "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の不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
- "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" : "サブ管理者グループの詳細の読み込みに失敗しました"
},"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..53b7c1a2c5d 100644
--- a/apps/settings/l10n/ka.js
+++ b/apps/settings/l10n/ka.js
@@ -262,7 +262,7 @@ OC.L10N.register(
"Please enter a valid group name" : "Please enter a valid group name",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Type" : "Type",
+ "Type" : "სახე",
"Confirm" : "Confirm",
"Cancel" : "Cancel",
"Description" : "Description",
@@ -350,11 +350,9 @@ 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",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",
@@ -412,10 +410,10 @@ OC.L10N.register(
"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",
+ "Add" : "დამატება",
"Create" : "Create",
"Change" : "Change",
- "Delete" : "Delete",
+ "Delete" : "წაშლა",
"Reshare" : "Reshare",
"Default language" : "Default language",
"Common languages" : "Common languages",
@@ -457,7 +455,7 @@ OC.L10N.register(
"Set new password" : "Set new password",
"Set new email address" : "Set new email address",
"Set the language" : "Set the language",
- "Done" : "Done",
+ "Done" : "დასრულდა",
"Edit" : "Edit",
"Visibility" : "Visibility",
"Show language" : "Show language",
@@ -565,43 +563,12 @@ 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"
+ "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>)"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/settings/l10n/ka.json b/apps/settings/l10n/ka.json
index c20562af659..682fa871651 100644
--- a/apps/settings/l10n/ka.json
+++ b/apps/settings/l10n/ka.json
@@ -260,7 +260,7 @@
"Please enter a valid group name" : "Please enter a valid group name",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Type" : "Type",
+ "Type" : "სახე",
"Confirm" : "Confirm",
"Cancel" : "Cancel",
"Description" : "Description",
@@ -348,11 +348,9 @@
"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",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",
@@ -410,10 +408,10 @@
"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",
+ "Add" : "დამატება",
"Create" : "Create",
"Change" : "Change",
- "Delete" : "Delete",
+ "Delete" : "წაშლა",
"Reshare" : "Reshare",
"Default language" : "Default language",
"Common languages" : "Common languages",
@@ -455,7 +453,7 @@
"Set new password" : "Set new password",
"Set new email address" : "Set new email address",
"Set the language" : "Set the language",
- "Done" : "Done",
+ "Done" : "დასრულდა",
"Edit" : "Edit",
"Visibility" : "Visibility",
"Show language" : "Show language",
@@ -563,43 +561,12 @@
"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"
+ "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>)"
},"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..a0142c394ca 100644
--- a/apps/settings/l10n/ka_GE.js
+++ b/apps/settings/l10n/ka_GE.js
@@ -131,6 +131,7 @@ OC.L10N.register(
"Rate" : "შეაფასეთ",
"Changelog" : "ცვლილებების ლოგი",
"Google Chrome for Android" : "Google Chrome Android-ისთვის",
+ "{productName} Android app" : "{productName} Android აპლიკაცია",
"This session" : "ეს სესია",
"Allow filesystem access" : "ფაილ-სისტემაზე წვდომის მინიჭება",
"Rename" : "სახელის შეცვლა",
@@ -143,6 +144,7 @@ OC.L10N.register(
"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" : "სერვერული-მხარის შიფრაციის ამოქმედება",
@@ -155,19 +157,15 @@ 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." : "ყოველთვის კარგია თქვენი მონაცემების დაზღვევა, შიფრაციის შემთხვევაში თვენს მონაცემებთან ერთად აუცილებლად დააზღვიეთ შიფრაციის გასაღებებიც.",
"This is the final warning: Do you really want to enable encryption?" : "ეს ბოლო გაფრთხილებაა: ნამდვილად გსურთ შიფრაციის ამოქმედება?",
"Submit" : "გაგზავნა",
- "Current password" : "მიმდინარე პაროლი",
+ "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" : "ენა",
@@ -178,7 +176,7 @@ OC.L10N.register(
"Account actions" : "ანგარიშის ქმედებები",
"{size} used" : "მოხმარებულია {size}",
"Delete account" : "ანგარიშის გაუქმება",
- "Done" : "დასრულებულია",
+ "Done" : "დასრულდა",
"Edit" : "შეცვლა",
"Show last login" : "ბოლო ავტორიზაციის ჩვენება",
"Send email" : "ელ-წერილის გაგზავნა",
@@ -223,9 +221,6 @@ OC.L10N.register(
"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..3b88d0c8af5 100644
--- a/apps/settings/l10n/ka_GE.json
+++ b/apps/settings/l10n/ka_GE.json
@@ -129,6 +129,7 @@
"Rate" : "შეაფასეთ",
"Changelog" : "ცვლილებების ლოგი",
"Google Chrome for Android" : "Google Chrome Android-ისთვის",
+ "{productName} Android app" : "{productName} Android აპლიკაცია",
"This session" : "ეს სესია",
"Allow filesystem access" : "ფაილ-სისტემაზე წვდომის მინიჭება",
"Rename" : "სახელის შეცვლა",
@@ -141,6 +142,7 @@
"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" : "სერვერული-მხარის შიფრაციის ამოქმედება",
@@ -153,19 +155,15 @@
"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?" : "ეს ბოლო გაფრთხილებაა: ნამდვილად გსურთ შიფრაციის ამოქმედება?",
"Submit" : "გაგზავნა",
- "Current password" : "მიმდინარე პაროლი",
+ "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" : "ენა",
@@ -176,7 +174,7 @@
"Account actions" : "ანგარიშის ქმედებები",
"{size} used" : "მოხმარებულია {size}",
"Delete account" : "ანგარიშის გაუქმება",
- "Done" : "დასრულებულია",
+ "Done" : "დასრულდა",
"Edit" : "შეცვლა",
"Show last login" : "ბოლო ავტორიზაციის ჩვენება",
"Send email" : "ელ-წერილის გაგზავნა",
@@ -221,9 +219,6 @@
"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..60583fc132a 100644
--- a/apps/settings/l10n/ko.js
+++ b/apps/settings/l10n/ko.js
@@ -394,10 +394,10 @@ OC.L10N.register(
"Usage documentation" : "사용법 문서",
"Admin documentation" : "관리 문서",
"Developer documentation" : "개발자 문서",
- "Details" : "자세히",
+ "Details" : "세부사항",
"All" : "모두",
"Limit app usage to groups" : "앱 사용을 그룹으로 제한합니다.",
- "No results" : "결과 없음",
+ "No results" : "검색 결과 없음",
"Update to {version}" : "{version}(으)로 업데이트",
"Default Deploy daemon is not accessible" : "기본 배포 데몬에 액세스할 수 없음",
"Delete data on remove" : "제거 시 데이터 삭제",
@@ -410,7 +410,7 @@ OC.L10N.register(
"Resources" : "자원",
"Documentation" : "문서",
"Interact" : "상호작용",
- "Report a bug" : "버그 신고",
+ "Report a bug" : "버그 보고",
"Request feature" : "기능 요청",
"Ask questions or discuss" : "질문 및 토론",
"Rate the app" : "앱 평가하기",
@@ -467,6 +467,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,15 +483,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}\"을(를) 지우려고 합니다. 그룹의 계정은 삭제되지 않습니다.",
"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" : "프로필 사진 설정 중 오류 발생",
@@ -727,45 +724,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에 연결하기 위해 서드파티 애플리케이션을 사용할 경우 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" : "트위터에서 팔로하기"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "전체 <strong>{totalSpace}</strong> 중 <strong>{usage}</strong>(<strong>{usageRelative}%</strong>)를 사용하고 있습니다."
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json
index 594676ef1ed..2cec4e63e24 100644
--- a/apps/settings/l10n/ko.json
+++ b/apps/settings/l10n/ko.json
@@ -392,10 +392,10 @@
"Usage documentation" : "사용법 문서",
"Admin documentation" : "관리 문서",
"Developer documentation" : "개발자 문서",
- "Details" : "자세히",
+ "Details" : "세부사항",
"All" : "모두",
"Limit app usage to groups" : "앱 사용을 그룹으로 제한합니다.",
- "No results" : "결과 없음",
+ "No results" : "검색 결과 없음",
"Update to {version}" : "{version}(으)로 업데이트",
"Default Deploy daemon is not accessible" : "기본 배포 데몬에 액세스할 수 없음",
"Delete data on remove" : "제거 시 데이터 삭제",
@@ -408,7 +408,7 @@
"Resources" : "자원",
"Documentation" : "문서",
"Interact" : "상호작용",
- "Report a bug" : "버그 신고",
+ "Report a bug" : "버그 보고",
"Request feature" : "기능 요청",
"Ask questions or discuss" : "질문 및 토론",
"Rate the app" : "앱 평가하기",
@@ -465,6 +465,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,15 +481,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}\"을(를) 지우려고 합니다. 그룹의 계정은 삭제되지 않습니다.",
"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" : "프로필 사진 설정 중 오류 발생",
@@ -725,45 +722,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에 연결하기 위해 서드파티 애플리케이션을 사용할 경우 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" : "트위터에서 팔로하기"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "전체 <strong>{totalSpace}</strong> 중 <strong>{usage}</strong>(<strong>{usageRelative}%</strong>)를 사용하고 있습니다."
},"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..591c898f8de 100644
--- a/apps/settings/l10n/lt_LT.js
+++ b/apps/settings/l10n/lt_LT.js
@@ -206,9 +206,9 @@ OC.L10N.register(
"Admin documentation" : "Administratoriaus dokumentacija",
"Developer documentation" : "Plėtotojo dokumentacija",
"Details" : "Išsamiau",
- "All" : "Viskas",
+ "All" : "Visos",
"Limit app usage to groups" : "Programos panaudojimas ribojamas grupėms",
- "No results" : "Rezultatų nėra",
+ "No results" : "Nieko nerasta",
"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.",
@@ -257,6 +257,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,15 +271,12 @@ 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.",
"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į",
+ "Change password" : "Keisti 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į",
@@ -336,11 +334,10 @@ OC.L10N.register(
"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",
+ "Quota" : "Leidžiamas duomenų kiekis",
"Language" : "Kalba",
"Set default language" : "Nustatyti numatytąją kalbą",
"Add new account" : "Pridėti naują paskyrą",
@@ -477,25 +474,9 @@ 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"
+ "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>)"
},
"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..d51f0324d27 100644
--- a/apps/settings/l10n/lt_LT.json
+++ b/apps/settings/l10n/lt_LT.json
@@ -204,9 +204,9 @@
"Admin documentation" : "Administratoriaus dokumentacija",
"Developer documentation" : "Plėtotojo dokumentacija",
"Details" : "Išsamiau",
- "All" : "Viskas",
+ "All" : "Visos",
"Limit app usage to groups" : "Programos panaudojimas ribojamas grupėms",
- "No results" : "Rezultatų nėra",
+ "No results" : "Nieko nerasta",
"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.",
@@ -255,6 +255,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,15 +269,12 @@
"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.",
"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į",
+ "Change password" : "Keisti 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į",
@@ -334,11 +332,10 @@
"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",
+ "Quota" : "Leidžiamas duomenų kiekis",
"Language" : "Kalba",
"Set default language" : "Nustatyti numatytąją kalbą",
"Add new account" : "Pridėti naują paskyrą",
@@ -475,25 +472,9 @@
"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"
+ "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>)"
},"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 6c42b12b9fb..24ca4178d94 100644
--- a/apps/settings/l10n/lv.js
+++ b/apps/settings/l10n/lv.js
@@ -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",
@@ -97,7 +98,7 @@ OC.L10N.register(
"Visit website" : "Apmeklējiet vietni",
"Admin documentation" : "Pārvaldītāja dokumentācija",
"Developer documentation" : "Izstrādātāja dokumentācija",
- "Details" : "Detaļas",
+ "Details" : "Informācija",
"All" : "Visi",
"No results" : "Nav iznākuma",
"Update to {version}" : "Atjaunināt uz {version}",
@@ -109,6 +110,7 @@ OC.L10N.register(
"Rate" : "Vērtēt",
"Changelog" : "Izmaiņu žurnāls",
"Google Chrome for Android" : "Google Chrome for Android",
+ "{productName} Android app" : "{productName} Android lietotne",
"This session" : "Šajā sesijā",
"Device settings" : "Ierīces iestatījumi",
"Rename" : "Pārdēvēt",
@@ -125,6 +127,7 @@ OC.L10N.register(
"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,17 +137,16 @@ 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}\"",
"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})",
+ "Enter your date of birth" : "Ievadi savu dzimšanas datumu",
+ "You are using {s}{usage}{/s}" : "Tu izmanto {s}{usage}{/s}",
+ "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Tu izmanto {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",
@@ -154,17 +156,16 @@ OC.L10N.register(
"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",
+ "Your phone number" : "Tavs tālruņa numurs",
+ "Edit your Profile visibility" : "Labot sava profila redzamību",
+ "Your role" : "Tava loma",
+ "Your website" : "Tava tīmekļvietne",
"Add" : "Pievienot",
- "Create" : "Izveidot",
"Change" : "Mainīt",
"Delete" : "Izdzēst",
"Display name" : "Attēlojamais vārds",
"Email" : "E-pasts",
- "Quota" : "Apjoms",
+ "Quota" : "Kvota",
"Language" : "Valoda",
"Add new account" : "Pievienot jaunu kontu",
"Scroll to load more rows" : "Ritināt, lai ielādētu vairāk rindu",
@@ -183,6 +184,7 @@ OC.L10N.register(
"Visibility" : "Redzamība",
"Show last login" : "Rādīt pēdējo autorizāciju",
"Send email" : "Nosūtīt e-pasta ziņojumu",
+ "Send welcome email to new accounts" : "Nosūtīt sasveicināšanās e-pasta ziņojumu jauniem lietotājiem",
"Default quota" : "Apjoms pēc noklusējuma",
"Admins" : "Pārvaldītāji",
"Sending…" : "Sūta …",
@@ -225,9 +227,8 @@ OC.L10N.register(
"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"
+ "Your biography" : "Apraksts par sevi",
+ "You are using <strong>{usage}</strong>" : "Tu izmanto <strong>{usage}</strong>",
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tu izmanto <strong>{usage}</strong> no <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},
"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 a51271f4842..e15198e6c8b 100644
--- a/apps/settings/l10n/lv.json
+++ b/apps/settings/l10n/lv.json
@@ -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",
@@ -95,7 +96,7 @@
"Visit website" : "Apmeklējiet vietni",
"Admin documentation" : "Pārvaldītāja dokumentācija",
"Developer documentation" : "Izstrādātāja dokumentācija",
- "Details" : "Detaļas",
+ "Details" : "Informācija",
"All" : "Visi",
"No results" : "Nav iznākuma",
"Update to {version}" : "Atjaunināt uz {version}",
@@ -107,6 +108,7 @@
"Rate" : "Vērtēt",
"Changelog" : "Izmaiņu žurnāls",
"Google Chrome for Android" : "Google Chrome for Android",
+ "{productName} Android app" : "{productName} Android lietotne",
"This session" : "Šajā sesijā",
"Device settings" : "Ierīces iestatījumi",
"Rename" : "Pārdēvēt",
@@ -123,6 +125,7 @@
"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,17 +135,16 @@
"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}\"",
"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})",
+ "Enter your date of birth" : "Ievadi savu dzimšanas datumu",
+ "You are using {s}{usage}{/s}" : "Tu izmanto {s}{usage}{/s}",
+ "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Tu izmanto {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",
@@ -152,17 +154,16 @@
"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",
+ "Your phone number" : "Tavs tālruņa numurs",
+ "Edit your Profile visibility" : "Labot sava profila redzamību",
+ "Your role" : "Tava loma",
+ "Your website" : "Tava tīmekļvietne",
"Add" : "Pievienot",
- "Create" : "Izveidot",
"Change" : "Mainīt",
"Delete" : "Izdzēst",
"Display name" : "Attēlojamais vārds",
"Email" : "E-pasts",
- "Quota" : "Apjoms",
+ "Quota" : "Kvota",
"Language" : "Valoda",
"Add new account" : "Pievienot jaunu kontu",
"Scroll to load more rows" : "Ritināt, lai ielādētu vairāk rindu",
@@ -181,6 +182,7 @@
"Visibility" : "Redzamība",
"Show last login" : "Rādīt pēdējo autorizāciju",
"Send email" : "Nosūtīt e-pasta ziņojumu",
+ "Send welcome email to new accounts" : "Nosūtīt sasveicināšanās e-pasta ziņojumu jauniem lietotājiem",
"Default quota" : "Apjoms pēc noklusējuma",
"Admins" : "Pārvaldītāji",
"Sending…" : "Sūta …",
@@ -223,9 +225,8 @@
"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"
+ "Your biography" : "Apraksts par sevi",
+ "You are using <strong>{usage}</strong>" : "Tu izmanto <strong>{usage}</strong>",
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tu izmanto <strong>{usage}</strong> no <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},"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..89f16a48ea4 100644
--- a/apps/settings/l10n/mk.js
+++ b/apps/settings/l10n/mk.js
@@ -257,10 +257,9 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
- "Remove group" : "Отстрани група",
"Current password" : "Моментална лозинка",
"New password" : "Нова лозинка",
- "Change password" : "Промени лозинка",
+ "Change password" : "Смени лозинка",
"Choose your profile picture" : "Избери за фотографија за профилот",
"Please select a valid png or jpg file" : "Изберете png или jpg датотека",
"Error setting profile picture" : "Грешка при поставување на фотографија за профилот",
@@ -335,12 +334,16 @@ OC.L10N.register(
"Quota" : "Квота",
"Language" : "Јазик",
"Set default language" : "Постави стандарден јазик",
+ "_{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" : "Администратор на група",
"Storage location" : "Локација на складиште",
+ "First login" : "Прво најавување",
"Last login" : "Последно најавување",
"{size} used" : "искористено {size}",
"Delete account" : "Избриши сметка",
@@ -356,6 +359,7 @@ OC.L10N.register(
"Set the language" : "Постави јазик",
"Done" : "Готово",
"Edit" : "Уреди",
+ "Account management settings" : "Параметри за кориснички менаџмент",
"Visibility" : "Видливост",
"Show language" : "Прикажи јазик",
"Show storage path" : "Прикажи патека на складиште",
@@ -377,6 +381,7 @@ OC.L10N.register(
"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." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
+ "All accounts" : "Сите сметки",
"Admins" : "Администратори",
"Sending…" : "Испраќа…",
"Email sent" : "Е-порака пратена",
@@ -457,36 +462,9 @@ 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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},
"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..bdf15dde5b2 100644
--- a/apps/settings/l10n/mk.json
+++ b/apps/settings/l10n/mk.json
@@ -255,10 +255,9 @@
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
- "Remove group" : "Отстрани група",
"Current password" : "Моментална лозинка",
"New password" : "Нова лозинка",
- "Change password" : "Промени лозинка",
+ "Change password" : "Смени лозинка",
"Choose your profile picture" : "Избери за фотографија за профилот",
"Please select a valid png or jpg file" : "Изберете png или jpg датотека",
"Error setting profile picture" : "Грешка при поставување на фотографија за профилот",
@@ -333,12 +332,16 @@
"Quota" : "Квота",
"Language" : "Јазик",
"Set default language" : "Постави стандарден јазик",
+ "_{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" : "Администратор на група",
"Storage location" : "Локација на складиште",
+ "First login" : "Прво најавување",
"Last login" : "Последно најавување",
"{size} used" : "искористено {size}",
"Delete account" : "Избриши сметка",
@@ -354,6 +357,7 @@
"Set the language" : "Постави јазик",
"Done" : "Готово",
"Edit" : "Уреди",
+ "Account management settings" : "Параметри за кориснички менаџмент",
"Visibility" : "Видливост",
"Show language" : "Прикажи јазик",
"Show storage path" : "Прикажи патека на складиште",
@@ -375,6 +379,7 @@
"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." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
+ "All accounts" : "Сите сметки",
"Admins" : "Администратори",
"Sending…" : "Испраќа…",
"Email sent" : "Е-порака пратена",
@@ -455,36 +460,9 @@
"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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},"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..e0811e071eb 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.",
@@ -471,7 +470,7 @@ OC.L10N.register(
"Marked for remote wipe" : "Markert for fjernsletting",
"Device settings" : "Enhetsinnstillinger",
"Allow filesystem access" : "Tillatt filsystemtilgang",
- "Rename" : "Gi nytt navn",
+ "Rename" : "Endre 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.",
@@ -480,7 +479,7 @@ OC.L10N.register(
"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",
+ "App name" : "App-navn",
"Create new app password" : "Lag nytt apppassord",
"App password copied!" : "App-passord kopiert!",
"Copy app password" : "Kopier app-passord",
@@ -509,6 +508,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,12 +525,9 @@ 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.",
"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",
@@ -604,7 +601,7 @@ OC.L10N.register(
"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",
+ "Create" : "Opprett",
"Change" : "Endre",
"Delete" : "Slett",
"Reshare" : "Videredele",
@@ -818,50 +815,17 @@ 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",
+ "- 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",
- "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."
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json
index caf5de41c45..e4db361cb52 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.",
@@ -469,7 +468,7 @@
"Marked for remote wipe" : "Markert for fjernsletting",
"Device settings" : "Enhetsinnstillinger",
"Allow filesystem access" : "Tillatt filsystemtilgang",
- "Rename" : "Gi nytt navn",
+ "Rename" : "Endre 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.",
@@ -478,7 +477,7 @@
"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",
+ "App name" : "App-navn",
"Create new app password" : "Lag nytt apppassord",
"App password copied!" : "App-passord kopiert!",
"Copy app password" : "Kopier app-passord",
@@ -507,6 +506,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,12 +523,9 @@
"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.",
"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",
@@ -602,7 +599,7 @@
"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",
+ "Create" : "Opprett",
"Change" : "Endre",
"Delete" : "Slett",
"Reshare" : "Videredele",
@@ -816,50 +813,17 @@
"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",
+ "- 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",
- "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."
+ "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>)"
},"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..10ab16698f3 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",
@@ -281,24 +281,27 @@ OC.L10N.register(
"Choose slide to display" : "Kies dia om te tonen",
"{index} of {total}" : "{index} van {total}",
"Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon implementeren",
+ "Deploy Daemon" : "Deploy Daemon",
"Type" : "Type",
"Display Name" : "Weergavenaam",
"GPUs support" : "GPUs support",
+ "Compute device" : "Compute apparaat",
"Learn more" : "Meer weten",
"Confirm" : "Bevestigen",
"Cancel" : "Annuleren",
"Description" : "Omschrijving",
- "View in store" : "Bekijken in store",
+ "View in store" : "Bekijk in winkel",
"Visit website" : "Bezoek website",
"Usage documentation" : "Gebruiksdocumentatie",
- "Admin documentation" : "Beheerdocumentatie",
+ "Admin documentation" : "Beheerdersdocumentatie",
"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}",
+ "Default Deploy daemon is not accessible" : "Standaard Deploy Daemon niet toegankelijk",
+ "Delete data on remove" : "Bij verwijderen ook data verwijderen",
"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:",
@@ -307,12 +310,13 @@ OC.L10N.register(
"Categories" : "Categorieën",
"Resources" : "Bronnen",
"Documentation" : "Documentatie",
+ "Interact" : "Interacteren",
"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",
+ "Changelog" : "Wijzigingslog",
"Google Chrome for Android" : "Google Chrome voor Android",
"{productName} iOS app" : "{productName} iOS app",
"{productName} Android app" : "{productName} Android app",
@@ -334,7 +338,7 @@ OC.L10N.register(
"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",
+ "App name" : "App naam",
"Create new app password" : "Creëer een nieuw app wachtwoord",
"App password copied!" : "Appwachtwoord gekopieerd!",
"Copy app password" : "Kopieer appwachtwoord",
@@ -353,6 +357,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",
@@ -366,10 +371,9 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Dit is de laatste waarschuwing: Wil je versleuteling echt inschakelen?",
"Submit" : "Verwerken",
"Rename group" : "Hernoem groep",
- "Remove group" : "Groep verwijderen",
"Current password" : "Huidig wachtwoord",
"New password" : "Nieuw wachtwoord",
- "Change password" : "Wijzig wachtwoord",
+ "Change password" : "Wachtwoord wijzigen",
"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",
@@ -419,7 +423,7 @@ OC.L10N.register(
"No locale set" : "Geen regionale instelling ingevuld",
"Your city" : "Je stad",
"Your organisation" : "Jouw organisatie",
- "Your phone number" : "Je telefoonnummer",
+ "Your phone number" : "Jouw 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",
@@ -434,11 +438,13 @@ OC.L10N.register(
"Invalid value" : "Ongeldige waarde",
"Unable to update {property}" : "Kan {property} niet aanpassen",
"No {property} set" : "Geen {property} ingesteld",
+ "Unable to update federation scope of the primary {property}" : "Kan federatiescope van de primaire {property} niet updaten",
+ "Unable to update federation scope of additional {property}" : "Kan federatiescope van de additionele {property} niet updaten",
"Add additional email" : "Toevoegen extra e-mailadres",
"Add" : "Toevoegen",
- "Create" : "Maak",
+ "Create" : "Creëer",
"Change" : "Pas aan",
- "Delete" : "Verwijder",
+ "Delete" : "Verwijderen",
"Reshare" : "Doordelen",
"Default language" : "Standaardtaal",
"Common languages" : "Gebruikelijke talen",
@@ -450,7 +456,7 @@ OC.L10N.register(
"Account name will be autogenerated" : "Accountnaam wordt automatisch gegenereert",
"Account name (required)" : "Accountnaam (vereist)",
"New account" : "Nieuw account",
- "Display name" : "Weergavenaam",
+ "Display name" : "Weergave naam",
"Either password or email is required" : "Wachtwoord of e-mail is vereist",
"Password (required)" : "Wachtwoord (vereist)",
"Email (required)" : "E-mail (vereist)",
@@ -520,12 +526,12 @@ OC.L10N.register(
"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",
+ "Unnamed device" : "Naamloos toestel",
"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.",
+ "Your browser does not support WebAuthn." : "De browser ondersteunt geen WebAuthn.",
"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",
@@ -634,30 +640,9 @@ 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"
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json
index c03e4263954..6970416bb67 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",
@@ -279,24 +279,27 @@
"Choose slide to display" : "Kies dia om te tonen",
"{index} of {total}" : "{index} van {total}",
"Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon implementeren",
+ "Deploy Daemon" : "Deploy Daemon",
"Type" : "Type",
"Display Name" : "Weergavenaam",
"GPUs support" : "GPUs support",
+ "Compute device" : "Compute apparaat",
"Learn more" : "Meer weten",
"Confirm" : "Bevestigen",
"Cancel" : "Annuleren",
"Description" : "Omschrijving",
- "View in store" : "Bekijken in store",
+ "View in store" : "Bekijk in winkel",
"Visit website" : "Bezoek website",
"Usage documentation" : "Gebruiksdocumentatie",
- "Admin documentation" : "Beheerdocumentatie",
+ "Admin documentation" : "Beheerdersdocumentatie",
"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}",
+ "Default Deploy daemon is not accessible" : "Standaard Deploy Daemon niet toegankelijk",
+ "Delete data on remove" : "Bij verwijderen ook data verwijderen",
"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:",
@@ -305,12 +308,13 @@
"Categories" : "Categorieën",
"Resources" : "Bronnen",
"Documentation" : "Documentatie",
+ "Interact" : "Interacteren",
"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",
+ "Changelog" : "Wijzigingslog",
"Google Chrome for Android" : "Google Chrome voor Android",
"{productName} iOS app" : "{productName} iOS app",
"{productName} Android app" : "{productName} Android app",
@@ -332,7 +336,7 @@
"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",
+ "App name" : "App naam",
"Create new app password" : "Creëer een nieuw app wachtwoord",
"App password copied!" : "Appwachtwoord gekopieerd!",
"Copy app password" : "Kopieer appwachtwoord",
@@ -351,6 +355,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",
@@ -364,10 +369,9 @@
"This is the final warning: Do you really want to enable encryption?" : "Dit is de laatste waarschuwing: Wil je versleuteling echt inschakelen?",
"Submit" : "Verwerken",
"Rename group" : "Hernoem groep",
- "Remove group" : "Groep verwijderen",
"Current password" : "Huidig wachtwoord",
"New password" : "Nieuw wachtwoord",
- "Change password" : "Wijzig wachtwoord",
+ "Change password" : "Wachtwoord wijzigen",
"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",
@@ -417,7 +421,7 @@
"No locale set" : "Geen regionale instelling ingevuld",
"Your city" : "Je stad",
"Your organisation" : "Jouw organisatie",
- "Your phone number" : "Je telefoonnummer",
+ "Your phone number" : "Jouw 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",
@@ -432,11 +436,13 @@
"Invalid value" : "Ongeldige waarde",
"Unable to update {property}" : "Kan {property} niet aanpassen",
"No {property} set" : "Geen {property} ingesteld",
+ "Unable to update federation scope of the primary {property}" : "Kan federatiescope van de primaire {property} niet updaten",
+ "Unable to update federation scope of additional {property}" : "Kan federatiescope van de additionele {property} niet updaten",
"Add additional email" : "Toevoegen extra e-mailadres",
"Add" : "Toevoegen",
- "Create" : "Maak",
+ "Create" : "Creëer",
"Change" : "Pas aan",
- "Delete" : "Verwijder",
+ "Delete" : "Verwijderen",
"Reshare" : "Doordelen",
"Default language" : "Standaardtaal",
"Common languages" : "Gebruikelijke talen",
@@ -448,7 +454,7 @@
"Account name will be autogenerated" : "Accountnaam wordt automatisch gegenereert",
"Account name (required)" : "Accountnaam (vereist)",
"New account" : "Nieuw account",
- "Display name" : "Weergavenaam",
+ "Display name" : "Weergave naam",
"Either password or email is required" : "Wachtwoord of e-mail is vereist",
"Password (required)" : "Wachtwoord (vereist)",
"Email (required)" : "E-mail (vereist)",
@@ -518,12 +524,12 @@
"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",
+ "Unnamed device" : "Naamloos toestel",
"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.",
+ "Your browser does not support WebAuthn." : "De browser ondersteunt geen WebAuthn.",
"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",
@@ -632,30 +638,9 @@
"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"
+ "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>)"
},"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..283ab2d255e 100644
--- a/apps/settings/l10n/oc.js
+++ b/apps/settings/l10n/oc.js
@@ -98,9 +98,9 @@ OC.L10N.register(
"Description" : "Descripcion",
"View in store" : "Veire a la botiga",
"Visit website" : "Veire lo site web",
- "Admin documentation" : "Documentacion d’admin",
+ "Admin documentation" : "Documentacion admin",
"Developer documentation" : "Documentacion desvolopaire",
- "Details" : "Detalhs",
+ "Details" : "Per lo Menut",
"All" : "Tot",
"No results" : "Cap de resultat",
"Update to {version}" : "Metre a jorn cap a {version}",
@@ -118,7 +118,7 @@ OC.L10N.register(
"This session" : "Aquesta session",
"Device settings" : "Paramètres periferic",
"Allow filesystem access" : "Permetre accès filesystem",
- "Rename" : "Renomenar",
+ "Rename" : "Tornar nommar",
"Revoke" : "Revocar",
"Wipe device" : "Tirar periferic",
"Device" : "Periferic",
@@ -131,10 +131,8 @@ OC.L10N.register(
"Enable encryption" : "Activar lo chiframent",
"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",
@@ -146,11 +144,12 @@ OC.L10N.register(
"Unable to update language" : "Actualizacion de la lenga impossibla",
"Help translate" : "Ajudar a traduire",
"No language set" : "Cap de lenga pas definida",
+ "Week starts on {firstDayOfWeek}" : "La setmana comença lo {firstDayOfWeek}",
"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",
+ "Add" : "Apondre",
"Create" : "Crear",
"Change" : "Modificar",
"Delete" : "Suprimir",
@@ -158,7 +157,6 @@ OC.L10N.register(
"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",
@@ -169,7 +167,6 @@ OC.L10N.register(
"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",
@@ -224,11 +221,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Utilizatz <strong>{usage}</strong>"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/oc.json b/apps/settings/l10n/oc.json
index 805af6783ba..3170f42c048 100644
--- a/apps/settings/l10n/oc.json
+++ b/apps/settings/l10n/oc.json
@@ -96,9 +96,9 @@
"Description" : "Descripcion",
"View in store" : "Veire a la botiga",
"Visit website" : "Veire lo site web",
- "Admin documentation" : "Documentacion d’admin",
+ "Admin documentation" : "Documentacion admin",
"Developer documentation" : "Documentacion desvolopaire",
- "Details" : "Detalhs",
+ "Details" : "Per lo Menut",
"All" : "Tot",
"No results" : "Cap de resultat",
"Update to {version}" : "Metre a jorn cap a {version}",
@@ -116,7 +116,7 @@
"This session" : "Aquesta session",
"Device settings" : "Paramètres periferic",
"Allow filesystem access" : "Permetre accès filesystem",
- "Rename" : "Renomenar",
+ "Rename" : "Tornar nommar",
"Revoke" : "Revocar",
"Wipe device" : "Tirar periferic",
"Device" : "Periferic",
@@ -129,10 +129,8 @@
"Enable encryption" : "Activar lo chiframent",
"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",
@@ -144,11 +142,12 @@
"Unable to update language" : "Actualizacion de la lenga impossibla",
"Help translate" : "Ajudar a traduire",
"No language set" : "Cap de lenga pas definida",
+ "Week starts on {firstDayOfWeek}" : "La setmana comença lo {firstDayOfWeek}",
"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",
+ "Add" : "Apondre",
"Create" : "Crear",
"Change" : "Modificar",
"Delete" : "Suprimir",
@@ -156,7 +155,6 @@
"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",
@@ -167,7 +165,6 @@
"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",
@@ -222,11 +219,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Utilizatz <strong>{usage}</strong>"
},"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 cc79a9a04e7..927a96502e2 100644
--- a/apps/settings/l10n/pl.js
+++ b/apps/settings/l10n/pl.js
@@ -104,6 +104,7 @@ OC.L10N.register(
"Set your password" : "Ustaw hasło",
"Go to %s" : "Przejdź do %s",
"Install Client" : "Zainstaluj klienta",
+ "Logged in account must be a sub admin" : "Zalogowane konto musi być administratorem podrzędnym",
"Apps" : "Aplikacje",
"Personal" : "Osobiste",
"Administration" : "Administracja",
@@ -130,6 +131,9 @@ OC.L10N.register(
"Unlimited" : "Bez limitu",
"Verifying" : "Sprawdzanie",
"Allowed admin IP ranges" : "Dozwolone zakresy adresów IP administratora",
+ "Admin IP filtering isn't applied." : "Filtrowanie IP administratora nie zostało zastosowane.",
+ "Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "Klucz konfiguracji \"%1$s\" oczekuje tablicy (znaleziono: %2$s). Walidacja zakresu IP administratora nie zostanie zastosowana.",
+ "Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "Klucz konfiguracji \"%1$s\" zawiera nieprawidłowy(e) zakres(y) IP: \"%2$s\"",
"Admin IP filtering is correctly configured." : "Filtrowanie adresów IP administratora jest poprawnie skonfigurowane.",
"App directories owner" : "Właściciel katalogów aplikacji",
"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" : "Niektóre katalogi aplikacji są własnością innego użytkownika tego serwera WWW. Może to wystąpić, gdy aplikacje zostały zainstalowane ręcznie. Sprawdź uprawnienia poniższych katalogów:\n%s",
@@ -160,51 +164,83 @@ OC.L10N.register(
"Database missing indices" : "Brak indeksów w bazie danych",
"Missing indices:" : "Brakujące indeksy:",
"\"%s\" in table \"%s\"" : "„%s” w tabeli „%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." : "Wykryto brakujące opcjonalne indeksy. Od czasu do czasu nowe indeksy są dodawane (przez Nextcloud lub zainstalowane aplikacje), aby poprawić wydajność bazy danych. Dodanie indeksów może zająć trochę czasu i tymczasowo pogorszyć wydajność, więc nie są one dodawane automatycznie podczas aktualizacji. Po ich dodaniu zapytania do tych tabel powinny być szybsze. Użyj polecenia 'occ db:add-missing-indices', aby je dodać.",
"Database missing primary keys" : "W bazie danych brakuje kluczy podstawowych",
"Missing primary key on table \"%s\"." : "Brak klucza podstawowego w tabeli „%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." : "W bazie danych brakuje niektórych kluczy podstawowych. Ze względu na fakt, że dodanie kluczy głównych może zająć trochę czasu, dlatego nie zostały one dodane automatycznie. Brakujące klucze podstawowe można dodać ręcznie, w trakcie pracy instancji uruchamiając \"occ db:add-missing-primary-keys\".",
"Database pending bigint migrations" : "Baza danych oczekująca na migracje bigint",
+ "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." : "Niektórym kolumnom w bazie danych brakuje konwersji na typ big int. Zmiana typu kolumny w dużych tabelach może zająć dużo czasu, dlatego nie została przeprowadzona automatycznie. Uruchamiając 'occ db:convert-filecache-bigint', możesz ręcznie zastosować te zmiany – instancja musi być wtedy offline.",
"Debug mode" : "Tryb debugowania",
"This instance is running in debug mode. Only enable this for local development and not in production environments." : "Instancja działa w trybie debugowania. Włącz to tylko dla wersji lokalnej, a nie w środowiskach produkcyjnych.",
"Debug mode is disabled." : "Tryb debugowania jest wyłączony.",
"Default phone region" : "Domyślny region telefonu",
"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." : "Twoja instalacja nie ma ustawionego domyślnego regionu telefonu. Jest to niezbędne do weryfikacji numerów podanych w profilach użytkowników bez numerów kierunkowych. Aby zezwolić na wprowadzanie numerów bez numeru kierunkowego dodaj \"default_phone_region\" zgodnie z kodami wg ISO 3166-1 do pliku konfiguracyjnego",
"Email test" : "Test e-maila",
+ "Mail delivery is disabled by instance config \"%s\"." : "Dostarczanie poczty jest wyłączone przez konfigurację instancji \"%s\".",
"Email test was successfully sent" : "Test e-maila został pomyślnie wysłany",
"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." : "Nie ustawiłeś albo nie zweryfikowałeś konfiguracji serwera pocztowego. Skorzystaj z opcji podstawowych aby ustawić serwer pocztowy. Następnie użyj przycisku \"Wyślij email\" w celi weryfikacji wprowadzonych ustawień",
"Transactional File Locking" : "Blokowanie plików transakcyjnych",
+ "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." : "Transakcyjne blokowanie plików jest wyłączone. Nie jest to wspierana konfiguracja i może prowadzić do trudności w rozwiązywaniu problemów, w tym uszkodzenia plików. Usuń wpis `filelocking.enabled => false` z pliku `config.php`, aby uniknąć tych problemów.",
"The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Baza danych służy do blokowania plików transakcyjnych. Aby zwiększyć wydajność, skonfiguruj memcache, jeśli jest dostępny.",
"Forwarded for headers" : "Przekazany do nagłówków",
"Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "Twoje ustawienie \"trusted_proxies\" nie jest poprawnie ustawione, powinna to być tablica.",
+ "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation." : "Ustawienie `trusted_proxies` jest nieprawidłowe — powinno być tablicą adresów IP, opcjonalnie z zakresem w notacji CIDR.",
"The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud." : "Konfiguracja nagłówka zwrotnego proxy jest nieprawidłowa. Jest to problem związany z bezpieczeństwem i może pozwolić osobie atakującej na sfałszowanie jego adresu IP jako widocznego dla Nextcloud.",
"Your IP address was resolved as %s" : "Twój adres IP został rozpoznany jako %s",
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud." : "Konfiguracja nagłówka zwrotnego proxy jest nieprawidłowa lub uzyskujesz dostęp do Nextcloud z zaufanego proxy. Jeśli nie, jest to problem związany z bezpieczeństwem i może pozwolić osobie atakującej na sfałszowanie jego adresu IP jako widocznego dla Nextcloud.",
"HTTPS access and URLs" : "Dostęp HTTPS i adresy URL",
"Accessing site insecurely via HTTP. You are strongly advised to set up your server to require HTTPS instead. Without it some important web functionality like \"copy to clipboard\" or \"service workers\" will not work!" : "Niepewny dostęp do witryny za pośrednictwem protokołu HTTP. Zdecydowanie zaleca się skonfigurowanie serwera tak, aby zamiast tego wymagał protokołu HTTPS. Bez tego niektóre ważne funkcje internetowe, takie jak „kopiuj do schowka” lub „pracownicy usług” nie będą działać!",
"Accessing site insecurely via HTTP." : "Niepewny dostęp do witryny za pośrednictwem protokołu HTTP.",
+ "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Uzyskujesz dostęp do swojej instancji przez bezpieczne połączenie, jednak instancja generuje niezabezpieczone adresy URL. Najprawdopodobniej instancja działa za odwrotnym proxy, a ustawienia `overwrite` w Nextcloud są nieprawidłowe.",
+ "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." : "Twoja instancja generuje niezabezpieczone adresy URL. Jeśli uzyskujesz dostęp do instancji przez HTTPS, prawdopodobnie działa ona za odwrotnym proxy, a wartości konfiguracyjne `overwrite` w Nextcloud nie są poprawnie ustawione.",
"You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Uzyskujesz dostęp do swojej instancji poprzez bezpieczne połączenie i Twoja instancja generuje bezpieczne adresy URL.",
"Internet connectivity" : "Łączność z Internetem",
"Internet connectivity is disabled in configuration file." : "Łączność internetowa jest wyłączona w pliku konfiguracyjnym.",
"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." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być zrealizowanych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będą działać. Dostęp zdalny do plików oraz wysyłanie powiadomień e-mailowych również może nie działać. Nawiąż połączenie z tego serwera do Internetu, aby korzystać ze wszystkich funkcji.",
"JavaScript modules support" : "Obsługa modułów JavaScript",
+ "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nie można przeprowadzić sprawdzenia obsługi JavaScript. Napraw lub ręcznie potwierdź, czy Twój serwer WWW obsługuje pliki `.mjs` z odpowiednim typem MIME dla JavaScript.",
+ "Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type." : "Twój serwer WWW nie obsługuje plików `.mjs` z typem MIME dla JavaScript. Może to uniemożliwić wykonywanie niektórych skryptów przez przeglądarkę. Skonfiguruj serwer do obsługi plików `.mjs` z typem `text/javascript` lub `application/javascript`.",
"JavaScript source map support" : "Obsługa mapy źródłowej JavaScript",
+ "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." : "Twój serwer WWW nie jest skonfigurowany do obsługi plików `.js.map`. Bez tych plików mapy źródłowe JavaScript nie będą działać poprawnie, co utrudni debugowanie i rozwiązywanie problemów.",
"Old server-side-encryption" : "Stare szyfrowanie po stronie serwera",
"Disabled" : "Wyłączone",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Stary format szyfrowania po stronie serwera jest włączony. Zalecamy wyłączenie jego.",
+ "Logging level" : "Poziom logowania",
+ "The %1$s configuration option must be a valid integer value." : "Opcja konfiguracyjna %1$s musi mieć prawidłową wartość całkowitą.",
+ "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." : "Poziom logowania jest ustawiony na poziom debugowania. Używaj go tylko w celu diagnozowania problemów, a następnie przywróć mniej szczegółowy poziom, ponieważ ten generuje bardzo dużo informacji i może wpłynąć na wydajność serwera.",
+ "Logging level configured correctly." : "Poziom logowania został poprawnie skonfigurowany.",
"Maintenance window start" : "Rozpoczęcie okna konserwacji",
"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." : "Serwer nie ma skonfigurowanego czasu rozpoczęcia okna konserwacji. Oznacza to, że codzienne zadania w tle wymagające dużych zasobów będą również wykonywane w głównym czasie użytkowania. Zalecamy ustawienie czasu niskiego użycia, aby użytkownicy byli mniej obciążeni obciążeniem wynikającym z tych ciężkich zadań.",
+ "Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC" : "Okno konserwacyjne do wykonywania obciążających zadań w tle przypada między {start}):00 UTC a {end}:00 UTC",
"Memcache" : "Pamięć podręczna",
+ "Memcached is configured as distributed cache, but the wrong PHP module (\"memcache\") is installed. Please install the PHP module \"memcached\"." : "Memcached jest skonfigurowany jako rozproszona pamięć podręczna, ale zainstalowano niewłaściwy moduł PHP (\"memcache\"). Zainstaluj moduł PHP \"memcached”.",
+ "Memcached is configured as distributed cache, but the PHP module \"memcached\" is not installed. Please install the PHP module \"memcached\"." : "Memcached jest skonfigurowany jako rozproszona pamięć podręczna, ale moduł PHP \"memcached” nie jest zainstalowany. Proszę zainstalować moduł PHP \"memcached”.",
"No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nie skonfigurowano pamięci podręcznej. Aby zwiększyć wydajność, skonfiguruj memcache, jeśli jest dostępne.",
+ "Failed to write and read a value from local cache." : "Nie udało się zapisać ani odczytać wartości z lokalnej pamięci podręcznej.",
+ "Failed to write and read a value from distributed cache." : "Nie udało się zapisać ani odczytać wartości z rozproszonej pamięci podręcznej.",
"Configured" : "Skonfigurowano",
+ "Mimetype migrations available" : "Dostępne migracje typów MIME",
+ "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." : "Jedna lub więcej migracji typów MIME jest dostępna. Czasami nowe typy MIME są dodawane, aby lepiej obsługiwać określone typy plików. Migracja typów MIME może długo trwać w większych instancjach, dlatego nie jest przeprowadzana automatycznie podczas aktualizacji. Użyj polecenia `occ maintenance:repair --include-expensive`, aby przeprowadzić migrację.",
"MySQL row format" : "Format wiersza MySQL",
"You are not using MySQL" : "Nie używasz MySQL",
+ "None of your tables use ROW_FORMAT=Compressed" : "Żadna z twoich tabel nie używa 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." : "W bazie danych wykryto nieprawidłowy format wiersza. ROW_FORMAT=Dynamic zapewnia najlepszą wydajność bazy danych dla Nextcloud. Zaktualizuj format wiersza dla następującej tabeli: %s",
"MySQL Unicode support" : "Obsługa Unicode MySQL",
"MySQL is used as database and does support 4-byte characters" : "MySQL jest używany jako baza danych i obsługuje znaki 4-bajtowe",
"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 jest używany jako baza danych, ale nie obsługuje znaków 4-bajtowych. Aby móc bez problemów obsługiwać znaki 4-bajtowe (takie jak emoji) na przykład w nazwach plików lub komentarzach, zaleca się włączenie obsługi 4-bajtowych w MySQL.",
+ "OCS provider resolving" : "Rozpoznawanie dostawcy OCS",
+ "Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Nie można sprawdzić, czy serwer WWW prawidłowo rozwiązuje adresy URL dostawców OCM i OCS.",
+ "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." : "Twój serwer WWW nie jest prawidłowo skonfigurowany do obsługi %1$s.\nPrawdopodobnie jest to związane z nieaktualną konfiguracją serwera, która nie umożliwia bezpośredniego dostępu do tego folderu. \nPorównaj konfigurację z regułami w \".htaccess\" (dla Apache) lub z instrukcją dla Nginx. \nDla Nginx najczęściej wymagają aktualizacji reguły zaczynające się od \"location ~\".",
+ "Overwrite CLI URL" : "Nadpisanie adresu URL w CLI",
+ "The \"overwrite.cli.url\" option in your config.php is correctly set to \"%s\"." : "Opcja \"overwrite.cli.url” w pliku config.php jest poprawnie ustawiona na \"%s\".",
+ "The \"overwrite.cli.url\" option in your config.php is set to \"%s\" which is a correct URL. Suggested URL is \"%s\"." : "Opcja \"overwrite.cli.url” w pliku config.php jest ustawiona na \"%s”, co jest poprawnym adresem URL. Sugerowany adres URL to ”%s\".",
+ "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"%s\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)" : "Upewnij się, że opcja \"overwrite.cli.url” w pliku config.php jest ustawiona na adres URL, którego użytkownicy najczęściej używają do uzyskania dostępu do Nextcloud. Sugerowany adres: \"%s”. W przeciwnym razie mogą wystąpić problemy z generowaniem adresu URL przez cron. (Możliwe, że sugerowany adres nie jest tym, którego użytkownicy używają najczęściej — warto to sprawdzić).",
"PHP APCu configuration" : "Konfiguracja PHP APCu",
"Your APCu cache has been running full, consider increasing the apc.shm_size php setting." : "Twoja pamięć podręczna APCu jest pełna. Rozważ zwiększenie ustawienia php apc.shm_size.",
+ "Your APCu cache is almost full at %s%%, consider increasing the apc.shm_size php setting." : " Twoja pamięć podręczna APCu jest prawie pełna: %s%%. Rozważ zwiększenie ustawienia apc.shm_size w PHP.",
"PHP default charset" : "Domyślny zestaw znaków PHP",
"PHP configuration option \"default_charset\" should be UTF-8" : "Opcja konfiguracyjna PHP \"default_charset\" powinna mieć format UTF-8",
+ "PHP set_time_limit" : "PHP set_time_limit",
"The function is available." : "Funkcja jest dostępna.",
"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." : "Funkcja PHP \"set_time_limit\" nie jest dostępna. Może to spowodować zatrzymanie skryptów w trakcie wykonywania, przerywając instalację. Zdecydowanie zaleca się włączenie tej funkcji.",
"Freetype" : "Typ dowolny",
@@ -212,18 +248,35 @@ OC.L10N.register(
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Twoje PHP nie posiada wsparcia dla FreeType, co powoduje problemy ze zdjęciami profilowymi i interfejsem ustawień.",
"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." : "Wygląda na to, że PHP nie jest poprawnie skonfigurowany do wysyłania zapytań o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca tylko pustą wartość.",
+ "PHP file size upload limit" : "Limit rozmiaru pliku przesyłanego przez PHP",
+ "The PHP upload_max_filesize is too low. A size of at least %1$s is recommended. Current value: %2$s." : "Wartość upload_max_filesize w PHP jest zbyt niska. Zalecana wartość to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP post_max_size is too low. A size of at least %1$s is recommended. Current value: %2$s." : "Wartość post_max_size w PHP jest zbyt niska. Zalecana wartość to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP max_input_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "Wartość max_input_time w PHP jest zbyt niska. Zalecany czas to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP max_execution_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "Wartość max_execution_time w PHP jest zbyt niska. Zalecany czas to co najmniej %1$s. Obecna wartość: %2$s.",
"PHP memory limit" : "Limit pamięci PHP",
+ "The PHP memory limit is below the recommended value of %s. Some features or apps - including the Updater - may not function properly." : "Limit pamięci PHP jest poniżej zalecanej wartości %s. Niektóre funkcje lub aplikacje — w tym aktualizator — mogą nie działać prawidłowo.",
"PHP modules" : "Moduły PHP",
"increases language translation performance and fixes sorting of non-ASCII characters" : "zwiększa wydajność tłumaczenia języka i naprawia sortowanie znaków innych niż ASCII",
+ "for Argon2 for password hashing" : "dla Argon2 do haszowania haseł",
+ "required for SFTP storage and recommended for WebAuthn performance" : "wymagane dla przechowywania SFTP i zalecane dla wydajności WebAuthn",
"for picture rotation in server and metadata extraction in the Photos app" : "do obracania zdjęć na serwerze i ekstrakcji metadanych w aplikacji Zdjęcia",
"This instance is missing some required PHP modules. It is required to install them: %s." : "Ta instancja ma brakujące moduły PHP. Należy zainstalować następujące moduły: %s",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "W tej instancji brakuje niektórych zalecanych modułów PHP. W celu poprawy wydajności i lepszej kompatybilności zdecydowanie zaleca się ich zainstalowanie:\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." : "Moduł PHP OPcache nie jest wczytany. Aby uzyskać lepszą wydajność, zaleca się wczytanie go do instalacji PHP.",
"OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache jest wyłączone. Aby uzyskać lepszą wydajność, zaleca się zastosowanie „opcache.enable=1” w konfiguracji PHP.",
"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." : "Oparta na pamięci współdzielonej pamięć OPcache jest wyłączona. Aby uzyskać lepszą wydajność, zaleca się zastosowanie „opcache.file_cache_only=0” do konfiguracji PHP i używanie pamięci podręcznej plików tylko jako pamięci podręcznej drugiego poziomu.",
+ "OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache nie działa prawidłowo — opcache_get_status() zwraca false. Sprawdź konfigurację.",
+ "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\"." : "Maksymalna liczba kluczy OPcache jest bliska przekroczenia. Aby zapewnić, że wszystkie skrypty będą mogły zostać zapisane w pamięci podręcznej, zaleca się ustawienie w konfiguracji PHP wartości \"opcache.max_accelerated_files\" większej niż \"%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\"." : "Bufor OPcache jest prawie pełny. Aby zapewnić możliwość przechowywania wszystkich skryptów w pamięci podręcznej, zaleca się ustawienie \"opcache.memory_consumption\" w konfiguracji PHP na wartość większą niż \"%s\".",
+ "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\"." : "Bufor ciągów zinterowanych OPcache jest prawie pełny. Aby zapewnić skuteczne buforowanie powtarzających się ciągów, zaleca się ustawienie \"opcache.interned_strings_buffer\" w konfiguracji PHP na wartość większą niż \"%s\".",
+ "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache jest skonfigurowany do usuwania komentarzy w kodzie. Aby Nextcloud działał poprawnie, musi być ustawione \"opcache.save_comments=1\".",
"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 nie może korzystać z API OPcache. Po włączeniu OPcache zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z „opcache.restrict_api” lub odznaczenie tego ustawienia, aby wyłączyć ograniczenia API OPcache, aby zapobiec błędom podczas aktualizacji rdzenia Nextcloud lub aplikacji.",
+ "Checking from CLI, OPcache checks have been skipped." : "Sprawdzanie z poziomu CLI – pominięto testy OPcache.",
+ "The PHP OPcache module is not properly configured. %s." : "Moduł OPcache PHP nie jest poprawnie skonfigurowany. %s.",
"Correctly configured" : "Poprawnie skonfigurowany",
"PHP version" : "Wersja 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." : "Obecnie używasz PHP %1$s. PHP %2$s jest przestarzały od Nextcloud %3$s. Nextcloud %4$s może wymagać co najmniej PHP %5$s. Zaktualizuj do jednej z oficjalnie wspieranych wersji PHP od PHP Group tak szybko, jak to możliwe.",
"You are currently running PHP %s." : "Aktualnie używasz PHP w wersji %s",
"PHP \"output_buffering\" option" : "Opcja PHP \"output_buffering\"",
"PHP configuration option \"output_buffering\" must be disabled" : "Opcja konfiguracji PHP \"output_buffering\" musi być wyłączona",
@@ -241,30 +294,56 @@ OC.L10N.register(
"You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "W tabeli obiektów planowania znajduje się więcej niż %s wierszy. Proszę wykonywać kosztowne prace naprawcze poprzez occ maintenance:repair --include-expensive.",
"Scheduling objects table size is within acceptable range." : "Rozmiar tabeli obiektów planowania mieści się w dopuszczalnym zakresie.",
"HTTP headers" : "Nagłówki 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." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`. Niektóre funkcje mogą nie działać poprawnie, dlatego zaleca się dostosowanie tego ustawienia.",
+ "- 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." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`. Stanowi to potencjalne zagrożenie dla bezpieczeństwa lub prywatności, dlatego zaleca się dostosowanie tego ustawienia.",
+ "- 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}." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`,`%3$s`,`%4$s`,`%5$s` lub `%6$s`. Może to powodować wyciek informacji o odsyłaczu. Zobacz {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." : "Nagłówek HTTP `Strict-Transport-Security` nie jest ustawiony na co najmniej `%d` sekund (obecna wartość: `%d`). Dla lepszego bezpieczeństwa zaleca się stosowanie długiej polityki HSTS.",
+ "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "Nagłówek HTTP `Strict-Transport-Security` jest nieprawidłowy: `%s`. Dla lepszego bezpieczeństwa zaleca się włączenie HSTS.",
+ "- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS." : "Nagłówek HTTP `Strict-Transport-Security` nie jest ustawiony (powinien wynosić co najmniej `%d` sekund). Dla lepszego bezpieczeństwa zaleca się włączenie HSTS.",
"Some headers are not set correctly on your instance" : "Niektóre nagłówki nie są poprawnie ustawione w Twojej instancji",
"Could not check that your web server serves security headers correctly. Please check manually." : "Nie można sprawdzić, czy serwer WWW prawidłowo obsługuje nagłówki zabezpieczeń. Sprawdź ręcznie.",
+ "Could not check that your web server serves security headers correctly, unable to query `%s`" : "Nie można sprawdzić, czy serwer WWW poprawnie wysyła nagłówki bezpieczeństwa, nie udało się wykonać zapytania `%s`",
"Your server is correctly configured to send security headers." : "Twój serwer jest poprawnie skonfigurowany do wysyłania nagłówków zabezpieczeń.",
"Database version" : "Wersja bazy danych",
+ "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." : "Wykryto MariaDB w wersji 10.3, ta wersja jest nieobsługiwana i wspierana jedynie w ramach Ubuntu 20.04. Zalecana jest MariaDB >=%1$s i <= %2$s dla najlepszej wydajności, stabilności i kompatybilności z tą wersją Nextcloud.",
+ "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto MariaDB `%1$s`. Zalecana jest wersja >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i kompatybilności z tą wersją Nextcloud.",
+ "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto MySQL w wersji \"%1$s\". Zalecana jest wersja MySQL >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
+ "PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto PostgreSQL w wersji \"%1$s\". Zalecana jest wersja PostgreSQL >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
"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\"." : "SQLite jest obecnie używany jako baza danych zaplecza. W przypadku większych instalacji zalecamy przejście na inną bazę danych. Jest to szczególnie zalecane w przypadku korzystania z klienta stacjonarnego do synchronizacji plików. Aby przeprowadzić migrację do innej bazy danych, użyj narzędzia wiersza poleceń: „occ db:convert-type”.",
"Unknown database platform" : "Nieznana platforma baz danych",
"Architecture" : "Architektura",
"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!" : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud wymaga wersji 64-bitowej do poprawnego działania. Zaktualizuj proszę swój system i PHP do wersji 64-bitowych!",
+ "Task Processing pickup speed" : "Prędkość pobierania zadań do przetworzenia",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Brak zaplanowanych zadań w ciągu ostatniej godziny.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Prędkość pobierania zadań była prawidłowa w ciągu ostatniej godziny.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin."],
+ "_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._" : ["Prędkość pobierania zadań była niska w ciągu ostatniej godziny. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle."],
"Temporary space available" : "Dostępna przestrzeń tymczasowa",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Błąd podczas sprawdzania tymczasowej ścieżki PHP - nie została ona poprawnie ustawiona na katalog. Wartość zwrócona: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Funkcja PHP „disk_free_space” jest wyłączona, co uniemożliwia sprawdzenie wystarczającej ilości miejsca w katalogach tymczasowych.",
"Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Błąd podczas sprawdzania dostępnego miejsca na dysku tymczasowej ścieżki PHP lub zwrócona informacja o braku wolnego miejsca na dysku. Ścieżka tymczasowa: %s",
+ "- %.1f GiB available in %s (PHP temporary directory)" : "- %.1f GiB dostępne w %s (tymczasowy katalog PHP)",
+ "- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %.1f dostępne w %s (tymczasowy katalog Nextcloud)",
"Temporary directory is correctly configured:\n%s" : "Katalog tymczasowy jest poprawnie skonfigurowany:\n%s",
+ "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s" : "Ta instancja używa magazynu obiektowego opartego na S3 jako głównego magazynu i posiada wystarczającą ilość miejsca w katalogu tymczasowym.\n%s",
+ "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s" : "Ta instancja używa magazynu obiektowego opartego na S3 jako głównego magazynu. Przesłane pliki są tymczasowo przechowywane na serwerze, dlatego zaleca się, aby w katalogu tymczasowym PHP było dostępnych 50 GiB wolnego miejsca. Aby to poprawić, zmień katalog tymczasowy w pliku php.ini lub zwiększ dostępne miejsce w tej lokalizacji.\nSprawdzenie dostępnego miejsca w katalogu tymczasowym wykazało %.1f GiB zamiast zalecanych 50 GiB. Ścieżka: %s",
"Database transaction isolation level" : "Poziom izolacji transakcji bazy danych",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza danych nie działa z poziomem izolacji transakcji \"READ COMMITTED\". Może to powodować problemy, gdy wiele akcji jest wykonywanych równolegle.",
"Was not able to get transaction isolation level: %s" : "Nie udało się uzyskać poziomu izolacji transakcji: %s",
+ ".well-known URLs" : "adresy URL `.well-known`",
+ "`check_for_working_wellknown_setup` is set to false in your configuration, so this check was skipped." : "`check_for_working_wellknown_setup` jest ustawione na false w konfiguracji, więc to sprawdzenie zostało pominięte.",
"Could not check that your web server serves `.well-known` correctly. Please check manually." : "Nie można sprawdzić, czy Twój serwer WWW poprawnie obsługuje `.well-known`. Sprawdź ręcznie.",
+ "Your web server is not properly set up to resolve `.well-known` URLs, failed on:\n`%s`" : "Twój serwer WWW nie jest poprawnie skonfigurowany do obsługi adresów URL `.well-known`, błąd: \n`%s`",
+ "Your server is correctly configured to serve `.well-known` URLs." : "Twój serwer jest poprawnie skonfigurowany do obsługi `.well-known` URL.",
"Font file loading" : "Wczytywanie pliku czcionki",
+ "Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "Nie można sprawdzić obsługi ładowania plików {extension}. Sprawdź ręcznie, czy serwer obsługuje pliki `{extension}`.",
+ "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." : "Twój serwer WWW nie jest poprawnie skonfigurowany do obsługi plików {extension}. Zwykle jest to problem z konfiguracją Nginx. Dla Nextcloud 15 należy dodatkowo zezwolić na obsługę plików {extension}. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej dokumentacji.",
"Profile information" : "Informacje o profilu",
"Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Zdjęcie profilowe, imię i nazwisko, adres e-mail, numer telefonu, adres, witryna internetowa, Twitter, organizacja, rola, nagłówek, biografia i czy Twój profil jest włączony",
"Nextcloud settings" : "Ustawienia Nextcloud",
"Unified task processing" : "Ujednolicone przetwarzanie zadań",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Zadania AI mogą być realizowane przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana do jakiego zadania.",
+ "Allow AI usage for guest users" : "Zezwól na użycie AI dla użytkowników gości",
"Task:" : "Zadanie",
"Enable" : "Włącz",
"None of your currently installed apps provide Task processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania zadań",
@@ -287,12 +366,17 @@ OC.L10N.register(
"Allow sharing with groups" : "Zezwalaj na udostępnianie grupom",
"Restrict users to only share with users in their groups" : "Ogranicz użytkownikom możliwość udostępniania, pozwól tylko w swoich grupach",
"Ignore the following groups when checking group membership" : "Podczas sprawdzania członkostwa w grupach ignoruj ​​następujące grupy",
+ "Allow users to preview files even if download is disabled" : "Pozwól użytkownikom podglądać pliki, nawet jeśli pobieranie jest wyłączone",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Użytkownicy nadal będą mogli robić zrzuty ekranu lub nagrywać ekran. Nie stanowi to pełnej ochrony.",
"Allow users to share via link and emails" : "Zezwalaj użytkownikom na udostępnianie za pośrednictwem linków i e-maili",
"Allow public uploads" : "Zezwalaj na publiczne wysyłanie",
"Always ask for a password" : "Zawsze pytaj o hasło",
"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",
+ "Allow users to set custom share link tokens" : "Pozwól użytkownikom ustawiać własne tokeny do udostępniania",
+ "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 +395,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",
@@ -329,6 +413,7 @@ OC.L10N.register(
"Enforced groups" : "Wymuszone grupy",
"Two-factor authentication is not enforced for members of the following groups." : "Uwierzytelnianie dwuskładnikowe nie jest wymuszane dla członków następujących grup.",
"Excluded groups" : "Wyłączone grupy",
+ "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." : "Gdy grupy są zaznaczone lub wykluczone, stosowana jest następująca logika w celu określenia, czy dla konta ma być wymuszona 2FA:. Jeśli nie wybrano żadnych grup, 2FA jest włączone dla wszystkich, z wyjątkiem członków wykluczonych grup. Jeśli grupy są wybrane, 2FA jest włączone dla wszystkich ich członków. Jeśli konto należy zarówno do grupy wybranej, jak i wykluczonej, priorytet ma grupa wybrana i 2FA jest wymuszane.",
"Save changes" : "Zapisz zmiany",
"Show details for {appName} app" : "Pokaż szczegóły aplikacji {appName}",
"Update to {update}" : "Zaktualizuj do {update}",
@@ -349,11 +434,14 @@ OC.L10N.register(
"No apps found for your version" : "Nie znaleziono aplikacji dla Twojej wersji",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplikacja ma dostępną aktualizację","%n aplikacje mają dostępną aktualizację","%n aplikacji mają dostępną aktualizację","%n aplikacji mają dostępną aktualizację"],
"_Update_::_Update all_" : ["Zaktualizuj","Zaktualizuj","Zaktualizuj","Zaktualizuj wszystko"],
+ "Failed to load groups" : "Nie udało się załadować grup",
"Failed to create group" : "Nie udało się utworzyć grupy",
"Creating group…" : "Tworzenie grupy",
"Create group" : "Utwórz grupę",
"Group name" : "Nazwa grupy",
"Please enter a valid group name" : "Podaj właściwą nazwę grupy",
+ "Search groups…" : "Wyszukaj grupy...",
+ "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." : "Lista grup. Lista nie jest w pełni załadowana ze względów wydajnościowych. Grupy będą ładowane w miarę przewijania lub wyszukiwania.",
"Loading groups…" : "Wczytywanie grup…",
"Could not load app discover section" : "Nie można wczytać sekcji odkrywania aplikacji",
"Could not render element" : "Nie można wyrenderować elementu",
@@ -367,13 +455,36 @@ OC.L10N.register(
"Choose slide to display" : "Wybierz slajd do wyświetlenia",
"{index} of {total}" : "{index} z {total}",
"Daemon" : "Demon",
+ "Deploy Daemon" : "Uruchom demona",
"Type" : "Rodzaj",
"Display Name" : "Wyświetlana nazwa",
"GPUs support" : "Obsługa procesorów graficznych",
"Compute device" : "Urządzenie obliczeniowe",
+ "Advanced deploy options" : "Zaawansowane opcje wdrażania",
+ "Edit ExApp deploy options before installation" : "Edytuj opcje wdrażania ExApp przed instalacją",
+ "Configured ExApp deploy options. Can be set only during installation" : "Skonfigurowane opcje wdrażania ExApp. Można ustawić tylko podczas instalacji",
"Learn more" : "Dowiedz się więcej",
+ "Environment variables" : "Zmienne środowiskowe",
+ "ExApp container environment variables" : "Zmienne środowiskowe kontenera ExApp",
+ "No environment variables defined" : "Nie zdefiniowano żadnych zmiennych środowiskowych",
+ "Mounts" : "Montowania",
+ "Define host folder mounts to bind to the ExApp container" : "Zdefiniuj montowania folderów hosta do powiązania z kontenerem ExApp",
+ "Must exist on the Deploy daemon host prior to installing the ExApp" : "Musi istnieć na hoście demona wdrożeniowego przed instalacją ExApp",
+ "Host path" : "Ścieżka hosta",
+ "Container path" : "Ścieżka kontenera",
+ "Read-only" : "Tylko do odczytu",
+ "Remove mount" : "Usuń montowanie",
+ "New mount" : "Nowe montowanie",
+ "Enter path to host folder" : "Wprowadź ścieżkę do folderu hosta",
+ "Enter path to container folder" : "Wprowadź ścieżkę do folderu kontenera",
+ "Toggle read-only mode" : "Przełącz tryb tylko do odczytu",
+ "Confirm adding new mount" : "Potwierdź dodanie nowego montowania",
"Confirm" : "Potwierdź",
+ "Cancel adding mount" : "Anuluj dodawanie montowania",
"Cancel" : "Anuluj",
+ "Add mount" : "Dodaj montowanie",
+ "ExApp container mounts" : "Montowania kontenera ExApp",
+ "No mounts defined" : "Nie zdefiniowano montowań",
"Description" : "Opis",
"View in store" : "Zobacz w sklepie",
"Visit website" : "Odwiedź stronę",
@@ -385,6 +496,7 @@ OC.L10N.register(
"Limit app usage to groups" : "Ogranicz korzystanie z aplikacji dla grup",
"No results" : "Brak wyników",
"Update to {version}" : "Zaktualizuj do {version}",
+ "Deploy options" : "Opcje wdrażania",
"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.",
@@ -455,32 +567,40 @@ 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",
"Server-side encryption" : "Szyfrowanie po stronie serwera",
"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." : "Szyfrowanie po stronie serwera umożliwia szyfrowanie plików przesyłanych na ten serwer. Wiąże się to z ograniczeniami, takimi jak spadkiem wydajności, więc włącz to tylko w razie potrzeby.",
+ "To encrypt all existing files run this OCC command:" : "Aby zaszyfrować wszystkie istniejące pliki, uruchom to polecenie OCC:",
"Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera",
+ "Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Wyłączenie szyfrowania po stronie serwera jest możliwe tylko za pomocą OCC, zapoznaj się z dokumentacją.",
"No encryption module loaded, please enable an encryption module in the app menu." : "Moduł szyfrowania nie jest załadowany, należy włączyć moduł szyfrowania w menu aplikacji.",
"Select default encryption module:" : "Wybierz domyślny moduł szyfrowania:",
"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}" : "Musisz zmigrować swoje klucze szyfrujące ze starego szyfrowania (ownCloud <= 8.0) do nowego. Włącz \"Domyślny moduł szyfrowania\" i uruchom {command}",
+ "Cancel encryption" : "Anuluj szyfrowanie",
"Enable encryption" : "Włącz szyfrowanie",
+ "Confirm enabling encryption" : "Potwierdź włączenie szyfrowania",
"Please read carefully before activating server-side encryption:" : "Przeczytaj uważnie przed aktywacją szyfrowania po stronie serwera:",
"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." : "Po włączeniu szyfrowania wszystkie pliki wysłane na serwer od tej chwili będą szyfrowane na serwerze. Wyłączenie szyfrowania będzie możliwe dopiero, gdy aktywny moduł szyfrowania wykona tę funkcję oraz wszystkie poprzednie warunki będą spełnione (np. ustawienie klucza odzyskiwania).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Domyślnie zostanie wygenerowany klucz główny dla całej instancji. Sprawdź, czy taki poziom dostępu odpowiada Twoim wymaganiom.",
"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." : "Samo szyfrowanie nie gwarantuje bezpieczeństwa systemu. Więcej informacji na temat działania aplikacji szyfrującej i użycia wspieranych przypadków można znaleźć w dokumentacji.",
"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.",
+ "Refer to the admin documentation on how to manually also encrypt existing files." : "Zapoznaj się z dokumentacją administratora, aby dowiedzieć się, jak ręcznie zaszyfrować istniejące pliki.",
"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}\"",
+ "Failed to delete group \"{group}\"" : "Nie udało się usunąć grupy \"{group}\"",
"Please confirm the group removal" : "Potwierdź usunięcie grupy",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Zamierzasz usunąć grupę \"{group}\". Konta NIE zostaną usunięte.",
"Submit" : "Wyślij",
"Rename group" : "Zmień nazwę grupy",
- "Remove group" : "Usuń grupę",
+ "Delete 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",
+ "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",
@@ -493,11 +613,15 @@ OC.L10N.register(
"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.",
+ "Your biography. Markdown is supported." : "Twoja biografia. Obsługiwany jest Markdown.",
"Unable to update date of birth" : "Nie można zapisać daty urodzin",
"Enter your date of birth" : "Podaj datę swoich urodzin",
+ "You are using {s}{usage}{/s}" : "Używasz {s}{usage}{/s}",
+ "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Używasz {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
"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",
+ "Options for additional email address {index}" : "Opcje dla dodatkowego adresu e-mail {index}",
"Remove primary email" : "Usuń podstawowy adres e-mail",
"Delete email" : "Usuń e-mail",
"This address is not confirmed" : "Ten adres nie jest potwierdzony",
@@ -512,6 +636,7 @@ OC.L10N.register(
"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",
+ "Derived from your locale ({weekDayName})" : "Na podstawie twoich ustawień językowych ({weekDayName})",
"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",
@@ -534,6 +659,7 @@ OC.L10N.register(
"she/her" : "ona/jej",
"he/him" : "on/jego",
"they/them" : "oni/ich",
+ "Your pronouns. E.g. {pronounsExample}" : "Twoje zaimki. Np. {pronounsExample}",
"Your role" : "Twoja rola społeczna",
"Your X (formerly Twitter) handle" : "Twój przeniesiony X (dawniej Twitter).",
"Your website" : "Twoja strona WWW",
@@ -560,8 +686,9 @@ OC.L10N.register(
"Set line manager" : "Ustaw menedżera liniowego",
"Account name will be autogenerated" : "Nazwa konta zostanie wygenerowana automatycznie",
"Account name (required)" : "Nazwa konta (wymagane)",
+ "Failed to search groups" : "Nie udało się wyszukać grup",
"New account" : "Nowe konto",
- "Display name" : "Nazwa wyświetlana",
+ "Display name" : "Wyświetlana nazwa",
"Either password or email is required" : "Wymagane jest hasło lub adres e-mail",
"Password (required)" : "Hasło (wymagane)",
"Email (required)" : "E-mail (wymagany)",
@@ -571,11 +698,13 @@ OC.L10N.register(
"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",
+ "Quota" : "Quota",
"Set account quota" : "Ustaw limit konta",
"Language" : "Język",
"Set default language" : "Ustaw domyślny język",
"Add new account" : "Dodaj nowe konto",
+ "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto...","{userCount} konta...","{userCount} kont...","{userCount} konta..."],
+ "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konta","{userCount} kont","{userCount} konta"],
"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",
@@ -584,6 +713,7 @@ OC.L10N.register(
"Group admin for" : "Administrator grupy",
"Account backend" : "Zaplecze konta",
"Storage location" : "Lokalizacja magazynu",
+ "First login" : "Pierwsze logowanie",
"Last login" : "Ostatnio zalogowany",
"Account actions" : "Czynności na koncie",
"{size} used" : "Wykorzystane: {size}",
@@ -596,6 +726,8 @@ OC.L10N.register(
"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 load groups with details" : "Nie udało się załadować grup ze szczegółami",
+ "Failed to load sub admin groups with details" : "Nie udało się załadować grup administratorów podrzędnych ze szczegółami",
"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",
@@ -603,6 +735,7 @@ OC.L10N.register(
"Display name was successfully changed" : "Nazwa wyświetlana została zmieniona",
"Password can't be empty" : "Hasło nie możne być puste",
"Password was successfully changed" : "Hasło zostało zmienione",
+ "Email can't be empty" : "Adres e-mail nie może być pusty",
"Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony",
"Welcome mail sent!" : "Wysłano wiadomość powitalną!",
"Loading account …" : "Wczytywanie konta...",
@@ -622,10 +755,12 @@ OC.L10N.register(
"Show language" : "Pokaż język",
"Show account backend" : "Pokaż moduł konta",
"Show storage path" : "Pokaż ścieżkę przechowywania",
+ "Show first login" : "Pokaż pierwsze logowanie",
"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",
+ "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sortowanie dotyczy tylko aktualnie załadowanych grup ze względów wydajnościowych. Grupy będą ładowane w miarę nawigowania lub wyszukiwania na liście.",
"By member count" : "Według liczby członków",
"By name" : "Według nazwy",
"Send email" : "Wyślij e-mail",
@@ -658,6 +793,7 @@ OC.L10N.register(
"Account management" : "Zarządzanie kontem",
"Sending…" : "Wysyłam…",
"Email sent" : "E-mail został wysłany",
+ "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Ze względów wydajnościowych po włączeniu szyfrowania na serwerze Nextcloud szyfrowane są tylko nowe i zmienione pliki.",
"Location" : "Lokalizacja",
"Profile picture" : "Zdjęcie profilowe",
"About" : "Informacje",
@@ -689,11 +825,14 @@ OC.L10N.register(
"Show to everyone" : "Pokaż wszystkim",
"Show to logged in accounts only" : "Pokaż tylko zalogowanym kontom",
"Hide" : "Ukryj",
+ "Manually installed apps cannot be updated" : "Aplikacje zainstalowane ręcznie nie mogą być aktualizowane",
+ "{progress}% Deploying …" : "{progress} % trwa wdrażanie…",
+ "{progress}% Initializing …" : "{progress} % trwa inicjalizacja ...",
"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.",
"Unknown" : "Nieznany",
@@ -757,43 +896,18 @@ 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.",
+ "for WebAuthn passwordless login" : "do logowania bezhasłowego WebAuthn",
+ "for WebAuthn passwordless login, and SFTP storage" : "do logowania bezhasłowego WebAuthn i magazynu SFTP",
+ "- 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." : "- Nagłówek HTTP `%1$s` nie zawiera `%2$s`. Stanowi to potencjalne zagrożenie dla bezpieczeństwa lub prywatności, dlatego zaleca się dostosowanie tego ustawienia.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto PostgreSQL w wersji \"%s”. Zalecana wersja PostgreSQL to >=12 i <=16 dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
"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"
+ "Failed to load subadmin groups with details" : "Nie udało się załadować grup subadminów ze szczegółami"
},
"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 ba3604362d2..76c734bf9de 100644
--- a/apps/settings/l10n/pl.json
+++ b/apps/settings/l10n/pl.json
@@ -102,6 +102,7 @@
"Set your password" : "Ustaw hasło",
"Go to %s" : "Przejdź do %s",
"Install Client" : "Zainstaluj klienta",
+ "Logged in account must be a sub admin" : "Zalogowane konto musi być administratorem podrzędnym",
"Apps" : "Aplikacje",
"Personal" : "Osobiste",
"Administration" : "Administracja",
@@ -128,6 +129,9 @@
"Unlimited" : "Bez limitu",
"Verifying" : "Sprawdzanie",
"Allowed admin IP ranges" : "Dozwolone zakresy adresów IP administratora",
+ "Admin IP filtering isn't applied." : "Filtrowanie IP administratora nie zostało zastosowane.",
+ "Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "Klucz konfiguracji \"%1$s\" oczekuje tablicy (znaleziono: %2$s). Walidacja zakresu IP administratora nie zostanie zastosowana.",
+ "Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "Klucz konfiguracji \"%1$s\" zawiera nieprawidłowy(e) zakres(y) IP: \"%2$s\"",
"Admin IP filtering is correctly configured." : "Filtrowanie adresów IP administratora jest poprawnie skonfigurowane.",
"App directories owner" : "Właściciel katalogów aplikacji",
"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" : "Niektóre katalogi aplikacji są własnością innego użytkownika tego serwera WWW. Może to wystąpić, gdy aplikacje zostały zainstalowane ręcznie. Sprawdź uprawnienia poniższych katalogów:\n%s",
@@ -158,51 +162,83 @@
"Database missing indices" : "Brak indeksów w bazie danych",
"Missing indices:" : "Brakujące indeksy:",
"\"%s\" in table \"%s\"" : "„%s” w tabeli „%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." : "Wykryto brakujące opcjonalne indeksy. Od czasu do czasu nowe indeksy są dodawane (przez Nextcloud lub zainstalowane aplikacje), aby poprawić wydajność bazy danych. Dodanie indeksów może zająć trochę czasu i tymczasowo pogorszyć wydajność, więc nie są one dodawane automatycznie podczas aktualizacji. Po ich dodaniu zapytania do tych tabel powinny być szybsze. Użyj polecenia 'occ db:add-missing-indices', aby je dodać.",
"Database missing primary keys" : "W bazie danych brakuje kluczy podstawowych",
"Missing primary key on table \"%s\"." : "Brak klucza podstawowego w tabeli „%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." : "W bazie danych brakuje niektórych kluczy podstawowych. Ze względu na fakt, że dodanie kluczy głównych może zająć trochę czasu, dlatego nie zostały one dodane automatycznie. Brakujące klucze podstawowe można dodać ręcznie, w trakcie pracy instancji uruchamiając \"occ db:add-missing-primary-keys\".",
"Database pending bigint migrations" : "Baza danych oczekująca na migracje bigint",
+ "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." : "Niektórym kolumnom w bazie danych brakuje konwersji na typ big int. Zmiana typu kolumny w dużych tabelach może zająć dużo czasu, dlatego nie została przeprowadzona automatycznie. Uruchamiając 'occ db:convert-filecache-bigint', możesz ręcznie zastosować te zmiany – instancja musi być wtedy offline.",
"Debug mode" : "Tryb debugowania",
"This instance is running in debug mode. Only enable this for local development and not in production environments." : "Instancja działa w trybie debugowania. Włącz to tylko dla wersji lokalnej, a nie w środowiskach produkcyjnych.",
"Debug mode is disabled." : "Tryb debugowania jest wyłączony.",
"Default phone region" : "Domyślny region telefonu",
"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." : "Twoja instalacja nie ma ustawionego domyślnego regionu telefonu. Jest to niezbędne do weryfikacji numerów podanych w profilach użytkowników bez numerów kierunkowych. Aby zezwolić na wprowadzanie numerów bez numeru kierunkowego dodaj \"default_phone_region\" zgodnie z kodami wg ISO 3166-1 do pliku konfiguracyjnego",
"Email test" : "Test e-maila",
+ "Mail delivery is disabled by instance config \"%s\"." : "Dostarczanie poczty jest wyłączone przez konfigurację instancji \"%s\".",
"Email test was successfully sent" : "Test e-maila został pomyślnie wysłany",
"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." : "Nie ustawiłeś albo nie zweryfikowałeś konfiguracji serwera pocztowego. Skorzystaj z opcji podstawowych aby ustawić serwer pocztowy. Następnie użyj przycisku \"Wyślij email\" w celi weryfikacji wprowadzonych ustawień",
"Transactional File Locking" : "Blokowanie plików transakcyjnych",
+ "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." : "Transakcyjne blokowanie plików jest wyłączone. Nie jest to wspierana konfiguracja i może prowadzić do trudności w rozwiązywaniu problemów, w tym uszkodzenia plików. Usuń wpis `filelocking.enabled => false` z pliku `config.php`, aby uniknąć tych problemów.",
"The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Baza danych służy do blokowania plików transakcyjnych. Aby zwiększyć wydajność, skonfiguruj memcache, jeśli jest dostępny.",
"Forwarded for headers" : "Przekazany do nagłówków",
"Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "Twoje ustawienie \"trusted_proxies\" nie jest poprawnie ustawione, powinna to być tablica.",
+ "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation." : "Ustawienie `trusted_proxies` jest nieprawidłowe — powinno być tablicą adresów IP, opcjonalnie z zakresem w notacji CIDR.",
"The reverse proxy header configuration is incorrect. This is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud." : "Konfiguracja nagłówka zwrotnego proxy jest nieprawidłowa. Jest to problem związany z bezpieczeństwem i może pozwolić osobie atakującej na sfałszowanie jego adresu IP jako widocznego dla Nextcloud.",
"Your IP address was resolved as %s" : "Twój adres IP został rozpoznany jako %s",
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud." : "Konfiguracja nagłówka zwrotnego proxy jest nieprawidłowa lub uzyskujesz dostęp do Nextcloud z zaufanego proxy. Jeśli nie, jest to problem związany z bezpieczeństwem i może pozwolić osobie atakującej na sfałszowanie jego adresu IP jako widocznego dla Nextcloud.",
"HTTPS access and URLs" : "Dostęp HTTPS i adresy URL",
"Accessing site insecurely via HTTP. You are strongly advised to set up your server to require HTTPS instead. Without it some important web functionality like \"copy to clipboard\" or \"service workers\" will not work!" : "Niepewny dostęp do witryny za pośrednictwem protokołu HTTP. Zdecydowanie zaleca się skonfigurowanie serwera tak, aby zamiast tego wymagał protokołu HTTPS. Bez tego niektóre ważne funkcje internetowe, takie jak „kopiuj do schowka” lub „pracownicy usług” nie będą działać!",
"Accessing site insecurely via HTTP." : "Niepewny dostęp do witryny za pośrednictwem protokołu HTTP.",
+ "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Uzyskujesz dostęp do swojej instancji przez bezpieczne połączenie, jednak instancja generuje niezabezpieczone adresy URL. Najprawdopodobniej instancja działa za odwrotnym proxy, a ustawienia `overwrite` w Nextcloud są nieprawidłowe.",
+ "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." : "Twoja instancja generuje niezabezpieczone adresy URL. Jeśli uzyskujesz dostęp do instancji przez HTTPS, prawdopodobnie działa ona za odwrotnym proxy, a wartości konfiguracyjne `overwrite` w Nextcloud nie są poprawnie ustawione.",
"You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Uzyskujesz dostęp do swojej instancji poprzez bezpieczne połączenie i Twoja instancja generuje bezpieczne adresy URL.",
"Internet connectivity" : "Łączność z Internetem",
"Internet connectivity is disabled in configuration file." : "Łączność internetowa jest wyłączona w pliku konfiguracyjnym.",
"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." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być zrealizowanych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będą działać. Dostęp zdalny do plików oraz wysyłanie powiadomień e-mailowych również może nie działać. Nawiąż połączenie z tego serwera do Internetu, aby korzystać ze wszystkich funkcji.",
"JavaScript modules support" : "Obsługa modułów JavaScript",
+ "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nie można przeprowadzić sprawdzenia obsługi JavaScript. Napraw lub ręcznie potwierdź, czy Twój serwer WWW obsługuje pliki `.mjs` z odpowiednim typem MIME dla JavaScript.",
+ "Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type." : "Twój serwer WWW nie obsługuje plików `.mjs` z typem MIME dla JavaScript. Może to uniemożliwić wykonywanie niektórych skryptów przez przeglądarkę. Skonfiguruj serwer do obsługi plików `.mjs` z typem `text/javascript` lub `application/javascript`.",
"JavaScript source map support" : "Obsługa mapy źródłowej JavaScript",
+ "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." : "Twój serwer WWW nie jest skonfigurowany do obsługi plików `.js.map`. Bez tych plików mapy źródłowe JavaScript nie będą działać poprawnie, co utrudni debugowanie i rozwiązywanie problemów.",
"Old server-side-encryption" : "Stare szyfrowanie po stronie serwera",
"Disabled" : "Wyłączone",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Stary format szyfrowania po stronie serwera jest włączony. Zalecamy wyłączenie jego.",
+ "Logging level" : "Poziom logowania",
+ "The %1$s configuration option must be a valid integer value." : "Opcja konfiguracyjna %1$s musi mieć prawidłową wartość całkowitą.",
+ "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." : "Poziom logowania jest ustawiony na poziom debugowania. Używaj go tylko w celu diagnozowania problemów, a następnie przywróć mniej szczegółowy poziom, ponieważ ten generuje bardzo dużo informacji i może wpłynąć na wydajność serwera.",
+ "Logging level configured correctly." : "Poziom logowania został poprawnie skonfigurowany.",
"Maintenance window start" : "Rozpoczęcie okna konserwacji",
"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." : "Serwer nie ma skonfigurowanego czasu rozpoczęcia okna konserwacji. Oznacza to, że codzienne zadania w tle wymagające dużych zasobów będą również wykonywane w głównym czasie użytkowania. Zalecamy ustawienie czasu niskiego użycia, aby użytkownicy byli mniej obciążeni obciążeniem wynikającym z tych ciężkich zadań.",
+ "Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC" : "Okno konserwacyjne do wykonywania obciążających zadań w tle przypada między {start}):00 UTC a {end}:00 UTC",
"Memcache" : "Pamięć podręczna",
+ "Memcached is configured as distributed cache, but the wrong PHP module (\"memcache\") is installed. Please install the PHP module \"memcached\"." : "Memcached jest skonfigurowany jako rozproszona pamięć podręczna, ale zainstalowano niewłaściwy moduł PHP (\"memcache\"). Zainstaluj moduł PHP \"memcached”.",
+ "Memcached is configured as distributed cache, but the PHP module \"memcached\" is not installed. Please install the PHP module \"memcached\"." : "Memcached jest skonfigurowany jako rozproszona pamięć podręczna, ale moduł PHP \"memcached” nie jest zainstalowany. Proszę zainstalować moduł PHP \"memcached”.",
"No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nie skonfigurowano pamięci podręcznej. Aby zwiększyć wydajność, skonfiguruj memcache, jeśli jest dostępne.",
+ "Failed to write and read a value from local cache." : "Nie udało się zapisać ani odczytać wartości z lokalnej pamięci podręcznej.",
+ "Failed to write and read a value from distributed cache." : "Nie udało się zapisać ani odczytać wartości z rozproszonej pamięci podręcznej.",
"Configured" : "Skonfigurowano",
+ "Mimetype migrations available" : "Dostępne migracje typów MIME",
+ "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." : "Jedna lub więcej migracji typów MIME jest dostępna. Czasami nowe typy MIME są dodawane, aby lepiej obsługiwać określone typy plików. Migracja typów MIME może długo trwać w większych instancjach, dlatego nie jest przeprowadzana automatycznie podczas aktualizacji. Użyj polecenia `occ maintenance:repair --include-expensive`, aby przeprowadzić migrację.",
"MySQL row format" : "Format wiersza MySQL",
"You are not using MySQL" : "Nie używasz MySQL",
+ "None of your tables use ROW_FORMAT=Compressed" : "Żadna z twoich tabel nie używa 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." : "W bazie danych wykryto nieprawidłowy format wiersza. ROW_FORMAT=Dynamic zapewnia najlepszą wydajność bazy danych dla Nextcloud. Zaktualizuj format wiersza dla następującej tabeli: %s",
"MySQL Unicode support" : "Obsługa Unicode MySQL",
"MySQL is used as database and does support 4-byte characters" : "MySQL jest używany jako baza danych i obsługuje znaki 4-bajtowe",
"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 jest używany jako baza danych, ale nie obsługuje znaków 4-bajtowych. Aby móc bez problemów obsługiwać znaki 4-bajtowe (takie jak emoji) na przykład w nazwach plików lub komentarzach, zaleca się włączenie obsługi 4-bajtowych w MySQL.",
+ "OCS provider resolving" : "Rozpoznawanie dostawcy OCS",
+ "Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Nie można sprawdzić, czy serwer WWW prawidłowo rozwiązuje adresy URL dostawców OCM i OCS.",
+ "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." : "Twój serwer WWW nie jest prawidłowo skonfigurowany do obsługi %1$s.\nPrawdopodobnie jest to związane z nieaktualną konfiguracją serwera, która nie umożliwia bezpośredniego dostępu do tego folderu. \nPorównaj konfigurację z regułami w \".htaccess\" (dla Apache) lub z instrukcją dla Nginx. \nDla Nginx najczęściej wymagają aktualizacji reguły zaczynające się od \"location ~\".",
+ "Overwrite CLI URL" : "Nadpisanie adresu URL w CLI",
+ "The \"overwrite.cli.url\" option in your config.php is correctly set to \"%s\"." : "Opcja \"overwrite.cli.url” w pliku config.php jest poprawnie ustawiona na \"%s\".",
+ "The \"overwrite.cli.url\" option in your config.php is set to \"%s\" which is a correct URL. Suggested URL is \"%s\"." : "Opcja \"overwrite.cli.url” w pliku config.php jest ustawiona na \"%s”, co jest poprawnym adresem URL. Sugerowany adres URL to ”%s\".",
+ "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"%s\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)" : "Upewnij się, że opcja \"overwrite.cli.url” w pliku config.php jest ustawiona na adres URL, którego użytkownicy najczęściej używają do uzyskania dostępu do Nextcloud. Sugerowany adres: \"%s”. W przeciwnym razie mogą wystąpić problemy z generowaniem adresu URL przez cron. (Możliwe, że sugerowany adres nie jest tym, którego użytkownicy używają najczęściej — warto to sprawdzić).",
"PHP APCu configuration" : "Konfiguracja PHP APCu",
"Your APCu cache has been running full, consider increasing the apc.shm_size php setting." : "Twoja pamięć podręczna APCu jest pełna. Rozważ zwiększenie ustawienia php apc.shm_size.",
+ "Your APCu cache is almost full at %s%%, consider increasing the apc.shm_size php setting." : " Twoja pamięć podręczna APCu jest prawie pełna: %s%%. Rozważ zwiększenie ustawienia apc.shm_size w PHP.",
"PHP default charset" : "Domyślny zestaw znaków PHP",
"PHP configuration option \"default_charset\" should be UTF-8" : "Opcja konfiguracyjna PHP \"default_charset\" powinna mieć format UTF-8",
+ "PHP set_time_limit" : "PHP set_time_limit",
"The function is available." : "Funkcja jest dostępna.",
"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." : "Funkcja PHP \"set_time_limit\" nie jest dostępna. Może to spowodować zatrzymanie skryptów w trakcie wykonywania, przerywając instalację. Zdecydowanie zaleca się włączenie tej funkcji.",
"Freetype" : "Typ dowolny",
@@ -210,18 +246,35 @@
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Twoje PHP nie posiada wsparcia dla FreeType, co powoduje problemy ze zdjęciami profilowymi i interfejsem ustawień.",
"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." : "Wygląda na to, że PHP nie jest poprawnie skonfigurowany do wysyłania zapytań o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca tylko pustą wartość.",
+ "PHP file size upload limit" : "Limit rozmiaru pliku przesyłanego przez PHP",
+ "The PHP upload_max_filesize is too low. A size of at least %1$s is recommended. Current value: %2$s." : "Wartość upload_max_filesize w PHP jest zbyt niska. Zalecana wartość to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP post_max_size is too low. A size of at least %1$s is recommended. Current value: %2$s." : "Wartość post_max_size w PHP jest zbyt niska. Zalecana wartość to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP max_input_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "Wartość max_input_time w PHP jest zbyt niska. Zalecany czas to co najmniej %1$s. Obecna wartość: %2$s.",
+ "The PHP max_execution_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "Wartość max_execution_time w PHP jest zbyt niska. Zalecany czas to co najmniej %1$s. Obecna wartość: %2$s.",
"PHP memory limit" : "Limit pamięci PHP",
+ "The PHP memory limit is below the recommended value of %s. Some features or apps - including the Updater - may not function properly." : "Limit pamięci PHP jest poniżej zalecanej wartości %s. Niektóre funkcje lub aplikacje — w tym aktualizator — mogą nie działać prawidłowo.",
"PHP modules" : "Moduły PHP",
"increases language translation performance and fixes sorting of non-ASCII characters" : "zwiększa wydajność tłumaczenia języka i naprawia sortowanie znaków innych niż ASCII",
+ "for Argon2 for password hashing" : "dla Argon2 do haszowania haseł",
+ "required for SFTP storage and recommended for WebAuthn performance" : "wymagane dla przechowywania SFTP i zalecane dla wydajności WebAuthn",
"for picture rotation in server and metadata extraction in the Photos app" : "do obracania zdjęć na serwerze i ekstrakcji metadanych w aplikacji Zdjęcia",
"This instance is missing some required PHP modules. It is required to install them: %s." : "Ta instancja ma brakujące moduły PHP. Należy zainstalować następujące moduły: %s",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "W tej instancji brakuje niektórych zalecanych modułów PHP. W celu poprawy wydajności i lepszej kompatybilności zdecydowanie zaleca się ich zainstalowanie:\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." : "Moduł PHP OPcache nie jest wczytany. Aby uzyskać lepszą wydajność, zaleca się wczytanie go do instalacji PHP.",
"OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache jest wyłączone. Aby uzyskać lepszą wydajność, zaleca się zastosowanie „opcache.enable=1” w konfiguracji PHP.",
"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." : "Oparta na pamięci współdzielonej pamięć OPcache jest wyłączona. Aby uzyskać lepszą wydajność, zaleca się zastosowanie „opcache.file_cache_only=0” do konfiguracji PHP i używanie pamięci podręcznej plików tylko jako pamięci podręcznej drugiego poziomu.",
+ "OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache nie działa prawidłowo — opcache_get_status() zwraca false. Sprawdź konfigurację.",
+ "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\"." : "Maksymalna liczba kluczy OPcache jest bliska przekroczenia. Aby zapewnić, że wszystkie skrypty będą mogły zostać zapisane w pamięci podręcznej, zaleca się ustawienie w konfiguracji PHP wartości \"opcache.max_accelerated_files\" większej niż \"%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\"." : "Bufor OPcache jest prawie pełny. Aby zapewnić możliwość przechowywania wszystkich skryptów w pamięci podręcznej, zaleca się ustawienie \"opcache.memory_consumption\" w konfiguracji PHP na wartość większą niż \"%s\".",
+ "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\"." : "Bufor ciągów zinterowanych OPcache jest prawie pełny. Aby zapewnić skuteczne buforowanie powtarzających się ciągów, zaleca się ustawienie \"opcache.interned_strings_buffer\" w konfiguracji PHP na wartość większą niż \"%s\".",
+ "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache jest skonfigurowany do usuwania komentarzy w kodzie. Aby Nextcloud działał poprawnie, musi być ustawione \"opcache.save_comments=1\".",
"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 nie może korzystać z API OPcache. Po włączeniu OPcache zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z „opcache.restrict_api” lub odznaczenie tego ustawienia, aby wyłączyć ograniczenia API OPcache, aby zapobiec błędom podczas aktualizacji rdzenia Nextcloud lub aplikacji.",
+ "Checking from CLI, OPcache checks have been skipped." : "Sprawdzanie z poziomu CLI – pominięto testy OPcache.",
+ "The PHP OPcache module is not properly configured. %s." : "Moduł OPcache PHP nie jest poprawnie skonfigurowany. %s.",
"Correctly configured" : "Poprawnie skonfigurowany",
"PHP version" : "Wersja 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." : "Obecnie używasz PHP %1$s. PHP %2$s jest przestarzały od Nextcloud %3$s. Nextcloud %4$s może wymagać co najmniej PHP %5$s. Zaktualizuj do jednej z oficjalnie wspieranych wersji PHP od PHP Group tak szybko, jak to możliwe.",
"You are currently running PHP %s." : "Aktualnie używasz PHP w wersji %s",
"PHP \"output_buffering\" option" : "Opcja PHP \"output_buffering\"",
"PHP configuration option \"output_buffering\" must be disabled" : "Opcja konfiguracji PHP \"output_buffering\" musi być wyłączona",
@@ -239,30 +292,56 @@
"You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "W tabeli obiektów planowania znajduje się więcej niż %s wierszy. Proszę wykonywać kosztowne prace naprawcze poprzez occ maintenance:repair --include-expensive.",
"Scheduling objects table size is within acceptable range." : "Rozmiar tabeli obiektów planowania mieści się w dopuszczalnym zakresie.",
"HTTP headers" : "Nagłówki 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." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`. Niektóre funkcje mogą nie działać poprawnie, dlatego zaleca się dostosowanie tego ustawienia.",
+ "- 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." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`. Stanowi to potencjalne zagrożenie dla bezpieczeństwa lub prywatności, dlatego zaleca się dostosowanie tego ustawienia.",
+ "- 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}." : "Nagłówek HTTP `%1$s` nie jest ustawiony na `%2$s`,`%3$s`,`%4$s`,`%5$s` lub `%6$s`. Może to powodować wyciek informacji o odsyłaczu. Zobacz {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." : "Nagłówek HTTP `Strict-Transport-Security` nie jest ustawiony na co najmniej `%d` sekund (obecna wartość: `%d`). Dla lepszego bezpieczeństwa zaleca się stosowanie długiej polityki HSTS.",
+ "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "Nagłówek HTTP `Strict-Transport-Security` jest nieprawidłowy: `%s`. Dla lepszego bezpieczeństwa zaleca się włączenie HSTS.",
+ "- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS." : "Nagłówek HTTP `Strict-Transport-Security` nie jest ustawiony (powinien wynosić co najmniej `%d` sekund). Dla lepszego bezpieczeństwa zaleca się włączenie HSTS.",
"Some headers are not set correctly on your instance" : "Niektóre nagłówki nie są poprawnie ustawione w Twojej instancji",
"Could not check that your web server serves security headers correctly. Please check manually." : "Nie można sprawdzić, czy serwer WWW prawidłowo obsługuje nagłówki zabezpieczeń. Sprawdź ręcznie.",
+ "Could not check that your web server serves security headers correctly, unable to query `%s`" : "Nie można sprawdzić, czy serwer WWW poprawnie wysyła nagłówki bezpieczeństwa, nie udało się wykonać zapytania `%s`",
"Your server is correctly configured to send security headers." : "Twój serwer jest poprawnie skonfigurowany do wysyłania nagłówków zabezpieczeń.",
"Database version" : "Wersja bazy danych",
+ "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." : "Wykryto MariaDB w wersji 10.3, ta wersja jest nieobsługiwana i wspierana jedynie w ramach Ubuntu 20.04. Zalecana jest MariaDB >=%1$s i <= %2$s dla najlepszej wydajności, stabilności i kompatybilności z tą wersją Nextcloud.",
+ "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto MariaDB `%1$s`. Zalecana jest wersja >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i kompatybilności z tą wersją Nextcloud.",
+ "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto MySQL w wersji \"%1$s\". Zalecana jest wersja MySQL >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
+ "PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto PostgreSQL w wersji \"%1$s\". Zalecana jest wersja PostgreSQL >= %2$s i <= %3$s dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
"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\"." : "SQLite jest obecnie używany jako baza danych zaplecza. W przypadku większych instalacji zalecamy przejście na inną bazę danych. Jest to szczególnie zalecane w przypadku korzystania z klienta stacjonarnego do synchronizacji plików. Aby przeprowadzić migrację do innej bazy danych, użyj narzędzia wiersza poleceń: „occ db:convert-type”.",
"Unknown database platform" : "Nieznana platforma baz danych",
"Architecture" : "Architektura",
"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!" : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud wymaga wersji 64-bitowej do poprawnego działania. Zaktualizuj proszę swój system i PHP do wersji 64-bitowych!",
+ "Task Processing pickup speed" : "Prędkość pobierania zadań do przetworzenia",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Brak zaplanowanych zadań w ciągu ostatniej godziny.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin.","Brak zaplanowanych zadań w ciągu ostatnich %n godzin."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Prędkość pobierania zadań była prawidłowa w ciągu ostatniej godziny.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin.","Prędkość pobierania zadań była prawidłowa w ciągu ostatnich %n godzin."],
+ "_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._" : ["Prędkość pobierania zadań była niska w ciągu ostatniej godziny. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle.","Prędkość pobierania zadań była niska w ciągu ostatnich %n godzin. Wiele zadań było pobieranych dłużej niż 4 minuty. Rozważ skonfigurowanie pracownika do przetwarzania zadań w tle."],
"Temporary space available" : "Dostępna przestrzeń tymczasowa",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Błąd podczas sprawdzania tymczasowej ścieżki PHP - nie została ona poprawnie ustawiona na katalog. Wartość zwrócona: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Funkcja PHP „disk_free_space” jest wyłączona, co uniemożliwia sprawdzenie wystarczającej ilości miejsca w katalogach tymczasowych.",
"Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Błąd podczas sprawdzania dostępnego miejsca na dysku tymczasowej ścieżki PHP lub zwrócona informacja o braku wolnego miejsca na dysku. Ścieżka tymczasowa: %s",
+ "- %.1f GiB available in %s (PHP temporary directory)" : "- %.1f GiB dostępne w %s (tymczasowy katalog PHP)",
+ "- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %.1f dostępne w %s (tymczasowy katalog Nextcloud)",
"Temporary directory is correctly configured:\n%s" : "Katalog tymczasowy jest poprawnie skonfigurowany:\n%s",
+ "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s" : "Ta instancja używa magazynu obiektowego opartego na S3 jako głównego magazynu i posiada wystarczającą ilość miejsca w katalogu tymczasowym.\n%s",
+ "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s" : "Ta instancja używa magazynu obiektowego opartego na S3 jako głównego magazynu. Przesłane pliki są tymczasowo przechowywane na serwerze, dlatego zaleca się, aby w katalogu tymczasowym PHP było dostępnych 50 GiB wolnego miejsca. Aby to poprawić, zmień katalog tymczasowy w pliku php.ini lub zwiększ dostępne miejsce w tej lokalizacji.\nSprawdzenie dostępnego miejsca w katalogu tymczasowym wykazało %.1f GiB zamiast zalecanych 50 GiB. Ścieżka: %s",
"Database transaction isolation level" : "Poziom izolacji transakcji bazy danych",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza danych nie działa z poziomem izolacji transakcji \"READ COMMITTED\". Może to powodować problemy, gdy wiele akcji jest wykonywanych równolegle.",
"Was not able to get transaction isolation level: %s" : "Nie udało się uzyskać poziomu izolacji transakcji: %s",
+ ".well-known URLs" : "adresy URL `.well-known`",
+ "`check_for_working_wellknown_setup` is set to false in your configuration, so this check was skipped." : "`check_for_working_wellknown_setup` jest ustawione na false w konfiguracji, więc to sprawdzenie zostało pominięte.",
"Could not check that your web server serves `.well-known` correctly. Please check manually." : "Nie można sprawdzić, czy Twój serwer WWW poprawnie obsługuje `.well-known`. Sprawdź ręcznie.",
+ "Your web server is not properly set up to resolve `.well-known` URLs, failed on:\n`%s`" : "Twój serwer WWW nie jest poprawnie skonfigurowany do obsługi adresów URL `.well-known`, błąd: \n`%s`",
+ "Your server is correctly configured to serve `.well-known` URLs." : "Twój serwer jest poprawnie skonfigurowany do obsługi `.well-known` URL.",
"Font file loading" : "Wczytywanie pliku czcionki",
+ "Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "Nie można sprawdzić obsługi ładowania plików {extension}. Sprawdź ręcznie, czy serwer obsługuje pliki `{extension}`.",
+ "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." : "Twój serwer WWW nie jest poprawnie skonfigurowany do obsługi plików {extension}. Zwykle jest to problem z konfiguracją Nginx. Dla Nextcloud 15 należy dodatkowo zezwolić na obsługę plików {extension}. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej dokumentacji.",
"Profile information" : "Informacje o profilu",
"Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Zdjęcie profilowe, imię i nazwisko, adres e-mail, numer telefonu, adres, witryna internetowa, Twitter, organizacja, rola, nagłówek, biografia i czy Twój profil jest włączony",
"Nextcloud settings" : "Ustawienia Nextcloud",
"Unified task processing" : "Ujednolicone przetwarzanie zadań",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Zadania AI mogą być realizowane przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana do jakiego zadania.",
+ "Allow AI usage for guest users" : "Zezwól na użycie AI dla użytkowników gości",
"Task:" : "Zadanie",
"Enable" : "Włącz",
"None of your currently installed apps provide Task processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania zadań",
@@ -285,12 +364,17 @@
"Allow sharing with groups" : "Zezwalaj na udostępnianie grupom",
"Restrict users to only share with users in their groups" : "Ogranicz użytkownikom możliwość udostępniania, pozwól tylko w swoich grupach",
"Ignore the following groups when checking group membership" : "Podczas sprawdzania członkostwa w grupach ignoruj ​​następujące grupy",
+ "Allow users to preview files even if download is disabled" : "Pozwól użytkownikom podglądać pliki, nawet jeśli pobieranie jest wyłączone",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Użytkownicy nadal będą mogli robić zrzuty ekranu lub nagrywać ekran. Nie stanowi to pełnej ochrony.",
"Allow users to share via link and emails" : "Zezwalaj użytkownikom na udostępnianie za pośrednictwem linków i e-maili",
"Allow public uploads" : "Zezwalaj na publiczne wysyłanie",
"Always ask for a password" : "Zawsze pytaj o hasło",
"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",
+ "Allow users to set custom share link tokens" : "Pozwól użytkownikom ustawiać własne tokeny do udostępniania",
+ "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 +393,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",
@@ -327,6 +411,7 @@
"Enforced groups" : "Wymuszone grupy",
"Two-factor authentication is not enforced for members of the following groups." : "Uwierzytelnianie dwuskładnikowe nie jest wymuszane dla członków następujących grup.",
"Excluded groups" : "Wyłączone grupy",
+ "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." : "Gdy grupy są zaznaczone lub wykluczone, stosowana jest następująca logika w celu określenia, czy dla konta ma być wymuszona 2FA:. Jeśli nie wybrano żadnych grup, 2FA jest włączone dla wszystkich, z wyjątkiem członków wykluczonych grup. Jeśli grupy są wybrane, 2FA jest włączone dla wszystkich ich członków. Jeśli konto należy zarówno do grupy wybranej, jak i wykluczonej, priorytet ma grupa wybrana i 2FA jest wymuszane.",
"Save changes" : "Zapisz zmiany",
"Show details for {appName} app" : "Pokaż szczegóły aplikacji {appName}",
"Update to {update}" : "Zaktualizuj do {update}",
@@ -347,11 +432,14 @@
"No apps found for your version" : "Nie znaleziono aplikacji dla Twojej wersji",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplikacja ma dostępną aktualizację","%n aplikacje mają dostępną aktualizację","%n aplikacji mają dostępną aktualizację","%n aplikacji mają dostępną aktualizację"],
"_Update_::_Update all_" : ["Zaktualizuj","Zaktualizuj","Zaktualizuj","Zaktualizuj wszystko"],
+ "Failed to load groups" : "Nie udało się załadować grup",
"Failed to create group" : "Nie udało się utworzyć grupy",
"Creating group…" : "Tworzenie grupy",
"Create group" : "Utwórz grupę",
"Group name" : "Nazwa grupy",
"Please enter a valid group name" : "Podaj właściwą nazwę grupy",
+ "Search groups…" : "Wyszukaj grupy...",
+ "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." : "Lista grup. Lista nie jest w pełni załadowana ze względów wydajnościowych. Grupy będą ładowane w miarę przewijania lub wyszukiwania.",
"Loading groups…" : "Wczytywanie grup…",
"Could not load app discover section" : "Nie można wczytać sekcji odkrywania aplikacji",
"Could not render element" : "Nie można wyrenderować elementu",
@@ -365,13 +453,36 @@
"Choose slide to display" : "Wybierz slajd do wyświetlenia",
"{index} of {total}" : "{index} z {total}",
"Daemon" : "Demon",
+ "Deploy Daemon" : "Uruchom demona",
"Type" : "Rodzaj",
"Display Name" : "Wyświetlana nazwa",
"GPUs support" : "Obsługa procesorów graficznych",
"Compute device" : "Urządzenie obliczeniowe",
+ "Advanced deploy options" : "Zaawansowane opcje wdrażania",
+ "Edit ExApp deploy options before installation" : "Edytuj opcje wdrażania ExApp przed instalacją",
+ "Configured ExApp deploy options. Can be set only during installation" : "Skonfigurowane opcje wdrażania ExApp. Można ustawić tylko podczas instalacji",
"Learn more" : "Dowiedz się więcej",
+ "Environment variables" : "Zmienne środowiskowe",
+ "ExApp container environment variables" : "Zmienne środowiskowe kontenera ExApp",
+ "No environment variables defined" : "Nie zdefiniowano żadnych zmiennych środowiskowych",
+ "Mounts" : "Montowania",
+ "Define host folder mounts to bind to the ExApp container" : "Zdefiniuj montowania folderów hosta do powiązania z kontenerem ExApp",
+ "Must exist on the Deploy daemon host prior to installing the ExApp" : "Musi istnieć na hoście demona wdrożeniowego przed instalacją ExApp",
+ "Host path" : "Ścieżka hosta",
+ "Container path" : "Ścieżka kontenera",
+ "Read-only" : "Tylko do odczytu",
+ "Remove mount" : "Usuń montowanie",
+ "New mount" : "Nowe montowanie",
+ "Enter path to host folder" : "Wprowadź ścieżkę do folderu hosta",
+ "Enter path to container folder" : "Wprowadź ścieżkę do folderu kontenera",
+ "Toggle read-only mode" : "Przełącz tryb tylko do odczytu",
+ "Confirm adding new mount" : "Potwierdź dodanie nowego montowania",
"Confirm" : "Potwierdź",
+ "Cancel adding mount" : "Anuluj dodawanie montowania",
"Cancel" : "Anuluj",
+ "Add mount" : "Dodaj montowanie",
+ "ExApp container mounts" : "Montowania kontenera ExApp",
+ "No mounts defined" : "Nie zdefiniowano montowań",
"Description" : "Opis",
"View in store" : "Zobacz w sklepie",
"Visit website" : "Odwiedź stronę",
@@ -383,6 +494,7 @@
"Limit app usage to groups" : "Ogranicz korzystanie z aplikacji dla grup",
"No results" : "Brak wyników",
"Update to {version}" : "Zaktualizuj do {version}",
+ "Deploy options" : "Opcje wdrażania",
"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.",
@@ -453,32 +565,40 @@
"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",
"Server-side encryption" : "Szyfrowanie po stronie serwera",
"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." : "Szyfrowanie po stronie serwera umożliwia szyfrowanie plików przesyłanych na ten serwer. Wiąże się to z ograniczeniami, takimi jak spadkiem wydajności, więc włącz to tylko w razie potrzeby.",
+ "To encrypt all existing files run this OCC command:" : "Aby zaszyfrować wszystkie istniejące pliki, uruchom to polecenie OCC:",
"Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera",
+ "Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Wyłączenie szyfrowania po stronie serwera jest możliwe tylko za pomocą OCC, zapoznaj się z dokumentacją.",
"No encryption module loaded, please enable an encryption module in the app menu." : "Moduł szyfrowania nie jest załadowany, należy włączyć moduł szyfrowania w menu aplikacji.",
"Select default encryption module:" : "Wybierz domyślny moduł szyfrowania:",
"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}" : "Musisz zmigrować swoje klucze szyfrujące ze starego szyfrowania (ownCloud <= 8.0) do nowego. Włącz \"Domyślny moduł szyfrowania\" i uruchom {command}",
+ "Cancel encryption" : "Anuluj szyfrowanie",
"Enable encryption" : "Włącz szyfrowanie",
+ "Confirm enabling encryption" : "Potwierdź włączenie szyfrowania",
"Please read carefully before activating server-side encryption:" : "Przeczytaj uważnie przed aktywacją szyfrowania po stronie serwera:",
"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." : "Po włączeniu szyfrowania wszystkie pliki wysłane na serwer od tej chwili będą szyfrowane na serwerze. Wyłączenie szyfrowania będzie możliwe dopiero, gdy aktywny moduł szyfrowania wykona tę funkcję oraz wszystkie poprzednie warunki będą spełnione (np. ustawienie klucza odzyskiwania).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Domyślnie zostanie wygenerowany klucz główny dla całej instancji. Sprawdź, czy taki poziom dostępu odpowiada Twoim wymaganiom.",
"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." : "Samo szyfrowanie nie gwarantuje bezpieczeństwa systemu. Więcej informacji na temat działania aplikacji szyfrującej i użycia wspieranych przypadków można znaleźć w dokumentacji.",
"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.",
+ "Refer to the admin documentation on how to manually also encrypt existing files." : "Zapoznaj się z dokumentacją administratora, aby dowiedzieć się, jak ręcznie zaszyfrować istniejące pliki.",
"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}\"",
+ "Failed to delete group \"{group}\"" : "Nie udało się usunąć grupy \"{group}\"",
"Please confirm the group removal" : "Potwierdź usunięcie grupy",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Zamierzasz usunąć grupę \"{group}\". Konta NIE zostaną usunięte.",
"Submit" : "Wyślij",
"Rename group" : "Zmień nazwę grupy",
- "Remove group" : "Usuń grupę",
+ "Delete 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",
+ "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",
@@ -491,11 +611,15 @@
"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.",
+ "Your biography. Markdown is supported." : "Twoja biografia. Obsługiwany jest Markdown.",
"Unable to update date of birth" : "Nie można zapisać daty urodzin",
"Enter your date of birth" : "Podaj datę swoich urodzin",
+ "You are using {s}{usage}{/s}" : "Używasz {s}{usage}{/s}",
+ "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Używasz {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
"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",
+ "Options for additional email address {index}" : "Opcje dla dodatkowego adresu e-mail {index}",
"Remove primary email" : "Usuń podstawowy adres e-mail",
"Delete email" : "Usuń e-mail",
"This address is not confirmed" : "Ten adres nie jest potwierdzony",
@@ -510,6 +634,7 @@
"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",
+ "Derived from your locale ({weekDayName})" : "Na podstawie twoich ustawień językowych ({weekDayName})",
"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",
@@ -532,6 +657,7 @@
"she/her" : "ona/jej",
"he/him" : "on/jego",
"they/them" : "oni/ich",
+ "Your pronouns. E.g. {pronounsExample}" : "Twoje zaimki. Np. {pronounsExample}",
"Your role" : "Twoja rola społeczna",
"Your X (formerly Twitter) handle" : "Twój przeniesiony X (dawniej Twitter).",
"Your website" : "Twoja strona WWW",
@@ -558,8 +684,9 @@
"Set line manager" : "Ustaw menedżera liniowego",
"Account name will be autogenerated" : "Nazwa konta zostanie wygenerowana automatycznie",
"Account name (required)" : "Nazwa konta (wymagane)",
+ "Failed to search groups" : "Nie udało się wyszukać grup",
"New account" : "Nowe konto",
- "Display name" : "Nazwa wyświetlana",
+ "Display name" : "Wyświetlana nazwa",
"Either password or email is required" : "Wymagane jest hasło lub adres e-mail",
"Password (required)" : "Hasło (wymagane)",
"Email (required)" : "E-mail (wymagany)",
@@ -569,11 +696,13 @@
"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",
+ "Quota" : "Quota",
"Set account quota" : "Ustaw limit konta",
"Language" : "Język",
"Set default language" : "Ustaw domyślny język",
"Add new account" : "Dodaj nowe konto",
+ "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto...","{userCount} konta...","{userCount} kont...","{userCount} konta..."],
+ "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konta","{userCount} kont","{userCount} konta"],
"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",
@@ -582,6 +711,7 @@
"Group admin for" : "Administrator grupy",
"Account backend" : "Zaplecze konta",
"Storage location" : "Lokalizacja magazynu",
+ "First login" : "Pierwsze logowanie",
"Last login" : "Ostatnio zalogowany",
"Account actions" : "Czynności na koncie",
"{size} used" : "Wykorzystane: {size}",
@@ -594,6 +724,8 @@
"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 load groups with details" : "Nie udało się załadować grup ze szczegółami",
+ "Failed to load sub admin groups with details" : "Nie udało się załadować grup administratorów podrzędnych ze szczegółami",
"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",
@@ -601,6 +733,7 @@
"Display name was successfully changed" : "Nazwa wyświetlana została zmieniona",
"Password can't be empty" : "Hasło nie możne być puste",
"Password was successfully changed" : "Hasło zostało zmienione",
+ "Email can't be empty" : "Adres e-mail nie może być pusty",
"Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony",
"Welcome mail sent!" : "Wysłano wiadomość powitalną!",
"Loading account …" : "Wczytywanie konta...",
@@ -620,10 +753,12 @@
"Show language" : "Pokaż język",
"Show account backend" : "Pokaż moduł konta",
"Show storage path" : "Pokaż ścieżkę przechowywania",
+ "Show first login" : "Pokaż pierwsze logowanie",
"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",
+ "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sortowanie dotyczy tylko aktualnie załadowanych grup ze względów wydajnościowych. Grupy będą ładowane w miarę nawigowania lub wyszukiwania na liście.",
"By member count" : "Według liczby członków",
"By name" : "Według nazwy",
"Send email" : "Wyślij e-mail",
@@ -656,6 +791,7 @@
"Account management" : "Zarządzanie kontem",
"Sending…" : "Wysyłam…",
"Email sent" : "E-mail został wysłany",
+ "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Ze względów wydajnościowych po włączeniu szyfrowania na serwerze Nextcloud szyfrowane są tylko nowe i zmienione pliki.",
"Location" : "Lokalizacja",
"Profile picture" : "Zdjęcie profilowe",
"About" : "Informacje",
@@ -687,11 +823,14 @@
"Show to everyone" : "Pokaż wszystkim",
"Show to logged in accounts only" : "Pokaż tylko zalogowanym kontom",
"Hide" : "Ukryj",
+ "Manually installed apps cannot be updated" : "Aplikacje zainstalowane ręcznie nie mogą być aktualizowane",
+ "{progress}% Deploying …" : "{progress} % trwa wdrażanie…",
+ "{progress}% Initializing …" : "{progress} % trwa inicjalizacja ...",
"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.",
"Unknown" : "Nieznany",
@@ -755,43 +894,18 @@
"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.",
+ "for WebAuthn passwordless login" : "do logowania bezhasłowego WebAuthn",
+ "for WebAuthn passwordless login, and SFTP storage" : "do logowania bezhasłowego WebAuthn i magazynu SFTP",
+ "- 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." : "- Nagłówek HTTP `%1$s` nie zawiera `%2$s`. Stanowi to potencjalne zagrożenie dla bezpieczeństwa lub prywatności, dlatego zaleca się dostosowanie tego ustawienia.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Wykryto PostgreSQL w wersji \"%s”. Zalecana wersja PostgreSQL to >=12 i <=16 dla najlepszej wydajności, stabilności i funkcjonalności w tej wersji Nextcloud.",
"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"
+ "Failed to load subadmin groups with details" : "Nie udało się załadować grup subadminów ze szczegółami"
},"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..26f0728604d 100644
--- a/apps/settings/l10n/pt_BR.js
+++ b/apps/settings/l10n/pt_BR.js
@@ -47,8 +47,8 @@ OC.L10N.register(
"Security" : "Segurança",
"You successfully logged in using two-factor authentication (%1$s)" : "Você conectou com sucesso usando a autenticação de dois fatores (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "A tentativa de login usando autenticação de dois fatores falhou (%1$s)",
- "Remote wipe was started on %1$s" : "Limpeza remota iniciou em %1$s",
- "Remote wipe has finished on %1$s" : "Limpeza remota terminou em %1$s",
+ "Remote wipe was started on %1$s" : "Apagamento remoto foi iniciado em %1$s",
+ "Remote wipe has finished on %1$s" : "Apagamento remoto terminou em %1$s",
"Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados",
"Settings" : "Configurações",
"Could not remove app." : "Não foi possível remover o aplicativo.",
@@ -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.",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Configurações Nextcloud",
"Unified task processing" : "Processamento unificado de tarefas",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "As tarefas de IA podem ser implementadas por aplicativos diferentes. Aqui você pode definir qual aplicativo deve ser usado para qual tarefa.",
+ "Allow AI usage for guest users" : "Permitir o uso de IA para usuários convidados",
"Task:" : "Tarefa:",
"Enable" : "Ativar",
"None of your currently installed apps provide Task processing functionality" : "Nenhum dos seus aplicativos instalados atualmente oferece funcionalidade de processamento de Tarefas",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "Permitir o compartilhamento com grupos",
"Restrict users to only share with users in their groups" : "Restringir os usuários para compartilhar apenas com usuários em seus grupos",
"Ignore the following groups when checking group membership" : "Ignorar os seguintes grupos ao verificar a associação ao grupo",
+ "Allow users to preview files even if download is disabled" : "Permitir que os usuários visualizem arquivos mesmo que o download esteja desativado",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Os usuários ainda poderão fazer capturas de tela ou gravar a tela. Isso não oferece nenhuma proteção definitiva.",
"Allow users to share via link and emails" : "Permitir que os usuários compartilhem via link e e-mails",
"Allow public uploads" : "Permitir uploads públicos",
"Always ask for a password" : "Sempre pedir a senha",
@@ -426,7 +432,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",
@@ -481,33 +487,33 @@ OC.L10N.register(
"No mounts defined" : "Nenhuma montagem definida",
"Description" : "Descrição",
"View in store" : "Ver na loja",
- "Visit website" : "Visitar website",
+ "Visit website" : "Visitar site",
"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",
+ "Limit app usage to groups" : "Limitar o uso do aplicativo 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.",
+ "Default Deploy daemon is not accessible" : "O Deploy daemon 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:",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não tem uma versão mínima do Nextcloud atribuída. Isso será um erro no futuro.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não tem uma versão máxima do Nextcloud atribuída. Isso será um erro no futuro.",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não foram atendidas:",
"Latest updated" : "Última atualização",
"Author" : "Autor",
"Categories" : "Categorias ",
"Resources" : "Recursos",
"Documentation" : "Documentação",
"Interact" : "Interagir",
- "Report a bug" : "Relatar um erro",
+ "Report a bug" : "Relatar um problema",
"Request feature" : "Solicitar uma funcionalidade",
"Ask questions or discuss" : "Fazer perguntas ou discutir",
"Rate the app" : "Avalie o aplicativo",
"Rate" : "Avaliação",
- "Changelog" : "Changelog",
+ "Changelog" : "Registro de alterações",
"Google Chrome for Android" : "Google Chrome para Android",
"{productName} iOS app" : "Aplicativo {productName} para iOS",
"{productName} Android app" : "Aplicativo {productName} para Android",
@@ -520,13 +526,13 @@ OC.L10N.register(
"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",
+ "Marked for remote wipe" : "Marcado para apagamento remoto",
+ "Device settings" : "Configurações do dispositivo",
"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.",
+ "Wipe device" : "Apagar o dispositivo",
+ "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogação deste 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",
@@ -561,6 +567,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,12 +590,12 @@ 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.",
"Submit" : "Enviar",
"Rename group" : "Renomear grupo",
- "Remove group" : "Excluir grupo",
+ "Delete group" : "Excluir grupo",
"Current password" : "Senha atual",
"New password" : "Nova senha",
"Change password" : "Alterar senha",
@@ -613,7 +620,7 @@ OC.L10N.register(
"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 ",
+ "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 ",
@@ -636,7 +643,7 @@ OC.L10N.register(
"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",
+ "No language set" : "Nenhum idioma definido",
"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}",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "ela/dela",
"he/him" : "ele/dele",
"they/them" : "eles/delas",
+ "Your pronouns. E.g. {pronounsExample}" : "Seus pronomes. P. ex., {pronounsExample}",
"Your role" : "Sua função",
"Your X (formerly Twitter) handle" : "Seu identificador X (anteriormente Twitter)",
"Your website" : "Seu site",
@@ -659,12 +667,12 @@ OC.L10N.register(
"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",
+ "Unable to update federation scope of the primary {property}" : "Não é possível atualizar o escopo de federação do {property} primário",
+ "Unable to update federation scope of additional {property}" : "Não é possível atualizar o escopo de federação de {property} adicional",
"Add additional email" : "Adicionar e-mail adicional",
"Add" : "Adicionar",
"Create" : "Criar",
- "Change" : "Alterar",
+ "Change" : "Mudar",
"Delete" : "Excluir",
"Reshare" : "Recompartilhar",
"Default language" : "Idioma padrão",
@@ -695,8 +703,8 @@ OC.L10N.register(
"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"],
+ "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta …","{userCount} de contas …","{userCount} contas …"],
+ "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} de 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",
@@ -706,7 +714,7 @@ OC.L10N.register(
"Account backend" : "Back-end da conta",
"Storage location" : "Local do armazenamento",
"First login" : "Primeiro login",
- "Last login" : "Último acesso",
+ "Last login" : "Último login",
"Account actions" : "Ações da conta",
"{size} used" : "{size} usado",
"Delete account" : "Excluir conta",
@@ -714,14 +722,14 @@ OC.L10N.register(
"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}",
+ "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 apagar remotamente os dados do Nextcloud dos dispositivos associados ao {userid}. Só funciona se estiverem conectados à Internet.",
+ "Remote wipe of devices" : "Apagamento remoto de dispositivos",
+ "Wipe {userid}'s devices" : "Apagar 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",
+ "Fully delete {userid}'s account including all their personal files, app data, etc." : "Excluir totalmente a conta de {userid}, incluindo todos os seus 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",
@@ -749,10 +757,10 @@ OC.L10N.register(
"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.",
+ "Sorting" : "Ordenaçã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 ordenação dos grupos por nome. Isso também desabilita a exibição da contagem de membros.",
+ "Group list sorting" : "Ordenação da 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 ordenaçã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",
@@ -760,11 +768,11 @@ OC.L10N.register(
"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",
+ "Server error while trying to complete WebAuthn device registration" : "Erro de servidor ao tentar concluir 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...",
+ "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.",
@@ -773,7 +781,7 @@ OC.L10N.register(
"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",
+ "App Store" : "Loja de Aplicativos",
"Loading app list" : "Carregando lista de aplicativos",
"Loading categories" : "Carregando categorias",
"Developer documentation ↗" : "Documentação do desenvolvedor ↗",
@@ -792,7 +800,7 @@ OC.L10N.register(
"Date of birth" : "Data de nascimento",
"Full name" : "Nome completo",
"Additional email" : "E-mail adicional ",
- "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex. Mastodon)",
+ "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)",
"Headline" : "Título",
"Organisation" : "Organização",
"Phone number" : "Número de telefone",
@@ -836,10 +844,10 @@ OC.L10N.register(
"The app has been enabled but needs to be updated." : "O aplicativo foi ativado, mas precisa ser atualizado.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser ativado, pois torna o servidor instável.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "O aplicativo foi ativado, mas precisa ser atualizado. Você será redirecionado para a página de atualização em 5 segundos.",
- "Do you really want to wipe your data from this device?" : "Quer realmente limpar seus dados deste dispositivo?",
- "Confirm wipe" : "Confirmar a limpeza",
+ "Do you really want to wipe your data from this device?" : "Quer realmente apagar seus dados deste dispositivo?",
+ "Confirm wipe" : "Confirmar o apagamento",
"Could not delete the app token" : "Não foi possível excluir o token do aplicativo",
- "Error while wiping the device with the token" : "Erro ao limpar o dispositivo com o token",
+ "Error while wiping the device with the token" : "Erro ao apagar o dispositivo com o token",
"Error while updating device token name" : "Erro ao atualizar o nome do token do dispositivo",
"Error while updating device token scope" : "Erro ao atualizar o escopo do token do dispositivo",
"Could not set group sorting" : "Não foi possível definir a classificação de grupo",
@@ -888,51 +896,18 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"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..63c48345a3f 100644
--- a/apps/settings/l10n/pt_BR.json
+++ b/apps/settings/l10n/pt_BR.json
@@ -45,8 +45,8 @@
"Security" : "Segurança",
"You successfully logged in using two-factor authentication (%1$s)" : "Você conectou com sucesso usando a autenticação de dois fatores (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "A tentativa de login usando autenticação de dois fatores falhou (%1$s)",
- "Remote wipe was started on %1$s" : "Limpeza remota iniciou em %1$s",
- "Remote wipe has finished on %1$s" : "Limpeza remota terminou em %1$s",
+ "Remote wipe was started on %1$s" : "Apagamento remoto foi iniciado em %1$s",
+ "Remote wipe has finished on %1$s" : "Apagamento remoto terminou em %1$s",
"Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados",
"Settings" : "Configurações",
"Could not remove app." : "Não foi possível remover o aplicativo.",
@@ -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.",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Configurações Nextcloud",
"Unified task processing" : "Processamento unificado de tarefas",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "As tarefas de IA podem ser implementadas por aplicativos diferentes. Aqui você pode definir qual aplicativo deve ser usado para qual tarefa.",
+ "Allow AI usage for guest users" : "Permitir o uso de IA para usuários convidados",
"Task:" : "Tarefa:",
"Enable" : "Ativar",
"None of your currently installed apps provide Task processing functionality" : "Nenhum dos seus aplicativos instalados atualmente oferece funcionalidade de processamento de Tarefas",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "Permitir o compartilhamento com grupos",
"Restrict users to only share with users in their groups" : "Restringir os usuários para compartilhar apenas com usuários em seus grupos",
"Ignore the following groups when checking group membership" : "Ignorar os seguintes grupos ao verificar a associação ao grupo",
+ "Allow users to preview files even if download is disabled" : "Permitir que os usuários visualizem arquivos mesmo que o download esteja desativado",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Os usuários ainda poderão fazer capturas de tela ou gravar a tela. Isso não oferece nenhuma proteção definitiva.",
"Allow users to share via link and emails" : "Permitir que os usuários compartilhem via link e e-mails",
"Allow public uploads" : "Permitir uploads públicos",
"Always ask for a password" : "Sempre pedir a senha",
@@ -424,7 +430,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",
@@ -479,33 +485,33 @@
"No mounts defined" : "Nenhuma montagem definida",
"Description" : "Descrição",
"View in store" : "Ver na loja",
- "Visit website" : "Visitar website",
+ "Visit website" : "Visitar site",
"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",
+ "Limit app usage to groups" : "Limitar o uso do aplicativo 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.",
+ "Default Deploy daemon is not accessible" : "O Deploy daemon 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:",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não tem uma versão mínima do Nextcloud atribuída. Isso será um erro no futuro.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não tem uma versão máxima do Nextcloud atribuída. Isso será um erro no futuro.",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não foram atendidas:",
"Latest updated" : "Última atualização",
"Author" : "Autor",
"Categories" : "Categorias ",
"Resources" : "Recursos",
"Documentation" : "Documentação",
"Interact" : "Interagir",
- "Report a bug" : "Relatar um erro",
+ "Report a bug" : "Relatar um problema",
"Request feature" : "Solicitar uma funcionalidade",
"Ask questions or discuss" : "Fazer perguntas ou discutir",
"Rate the app" : "Avalie o aplicativo",
"Rate" : "Avaliação",
- "Changelog" : "Changelog",
+ "Changelog" : "Registro de alterações",
"Google Chrome for Android" : "Google Chrome para Android",
"{productName} iOS app" : "Aplicativo {productName} para iOS",
"{productName} Android app" : "Aplicativo {productName} para Android",
@@ -518,13 +524,13 @@
"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",
+ "Marked for remote wipe" : "Marcado para apagamento remoto",
+ "Device settings" : "Configurações do dispositivo",
"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.",
+ "Wipe device" : "Apagar o dispositivo",
+ "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogação deste 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",
@@ -559,6 +565,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,12 +588,12 @@
"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.",
"Submit" : "Enviar",
"Rename group" : "Renomear grupo",
- "Remove group" : "Excluir grupo",
+ "Delete group" : "Excluir grupo",
"Current password" : "Senha atual",
"New password" : "Nova senha",
"Change password" : "Alterar senha",
@@ -611,7 +618,7 @@
"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 ",
+ "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 ",
@@ -634,7 +641,7 @@
"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",
+ "No language set" : "Nenhum idioma definido",
"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}",
@@ -650,6 +657,7 @@
"she/her" : "ela/dela",
"he/him" : "ele/dele",
"they/them" : "eles/delas",
+ "Your pronouns. E.g. {pronounsExample}" : "Seus pronomes. P. ex., {pronounsExample}",
"Your role" : "Sua função",
"Your X (formerly Twitter) handle" : "Seu identificador X (anteriormente Twitter)",
"Your website" : "Seu site",
@@ -657,12 +665,12 @@
"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",
+ "Unable to update federation scope of the primary {property}" : "Não é possível atualizar o escopo de federação do {property} primário",
+ "Unable to update federation scope of additional {property}" : "Não é possível atualizar o escopo de federação de {property} adicional",
"Add additional email" : "Adicionar e-mail adicional",
"Add" : "Adicionar",
"Create" : "Criar",
- "Change" : "Alterar",
+ "Change" : "Mudar",
"Delete" : "Excluir",
"Reshare" : "Recompartilhar",
"Default language" : "Idioma padrão",
@@ -693,8 +701,8 @@
"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"],
+ "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta …","{userCount} de contas …","{userCount} contas …"],
+ "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} de 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",
@@ -704,7 +712,7 @@
"Account backend" : "Back-end da conta",
"Storage location" : "Local do armazenamento",
"First login" : "Primeiro login",
- "Last login" : "Último acesso",
+ "Last login" : "Último login",
"Account actions" : "Ações da conta",
"{size} used" : "{size} usado",
"Delete account" : "Excluir conta",
@@ -712,14 +720,14 @@
"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}",
+ "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 apagar remotamente os dados do Nextcloud dos dispositivos associados ao {userid}. Só funciona se estiverem conectados à Internet.",
+ "Remote wipe of devices" : "Apagamento remoto de dispositivos",
+ "Wipe {userid}'s devices" : "Apagar 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",
+ "Fully delete {userid}'s account including all their personal files, app data, etc." : "Excluir totalmente a conta de {userid}, incluindo todos os seus 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",
@@ -747,10 +755,10 @@
"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.",
+ "Sorting" : "Ordenaçã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 ordenação dos grupos por nome. Isso também desabilita a exibição da contagem de membros.",
+ "Group list sorting" : "Ordenação da 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 ordenaçã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",
@@ -758,11 +766,11 @@
"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",
+ "Server error while trying to complete WebAuthn device registration" : "Erro de servidor ao tentar concluir 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...",
+ "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.",
@@ -771,7 +779,7 @@
"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",
+ "App Store" : "Loja de Aplicativos",
"Loading app list" : "Carregando lista de aplicativos",
"Loading categories" : "Carregando categorias",
"Developer documentation ↗" : "Documentação do desenvolvedor ↗",
@@ -790,7 +798,7 @@
"Date of birth" : "Data de nascimento",
"Full name" : "Nome completo",
"Additional email" : "E-mail adicional ",
- "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex. Mastodon)",
+ "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)",
"Headline" : "Título",
"Organisation" : "Organização",
"Phone number" : "Número de telefone",
@@ -834,10 +842,10 @@
"The app has been enabled but needs to be updated." : "O aplicativo foi ativado, mas precisa ser atualizado.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser ativado, pois torna o servidor instável.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "O aplicativo foi ativado, mas precisa ser atualizado. Você será redirecionado para a página de atualização em 5 segundos.",
- "Do you really want to wipe your data from this device?" : "Quer realmente limpar seus dados deste dispositivo?",
- "Confirm wipe" : "Confirmar a limpeza",
+ "Do you really want to wipe your data from this device?" : "Quer realmente apagar seus dados deste dispositivo?",
+ "Confirm wipe" : "Confirmar o apagamento",
"Could not delete the app token" : "Não foi possível excluir o token do aplicativo",
- "Error while wiping the device with the token" : "Erro ao limpar o dispositivo com o token",
+ "Error while wiping the device with the token" : "Erro ao apagar o dispositivo com o token",
"Error while updating device token name" : "Erro ao atualizar o nome do token do dispositivo",
"Error while updating device token scope" : "Erro ao atualizar o escopo do token do dispositivo",
"Could not set group sorting" : "Não foi possível definir a classificação de grupo",
@@ -886,51 +894,18 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..0b26c46977b 100644
--- a/apps/settings/l10n/pt_PT.js
+++ b/apps/settings/l10n/pt_PT.js
@@ -140,8 +140,8 @@ OC.L10N.register(
"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",
+ "Admin documentation" : "Documentação de administrador",
+ "Developer documentation" : "Documentação de programador",
"Details" : "Detalhes",
"All" : "Todos",
"No results" : "Sem resultados",
@@ -160,6 +160,7 @@ OC.L10N.register(
"Rate" : "Classificar",
"Changelog" : "Registo de alterações",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} Aplicação Android",
"Sync client" : "Sincronizar cliente",
"This session" : "Esta sessão",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
@@ -174,11 +175,12 @@ OC.L10N.register(
"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",
+ "App name" : "Nome da aplicação",
"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",
@@ -193,7 +195,6 @@ OC.L10N.register(
"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",
@@ -214,18 +215,20 @@ OC.L10N.register(
"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",
+ "Week starts on {firstDayOfWeek}" : "Semana começa em {firstDayOfWeek}",
"Your phone number" : "O seu número de telefone",
"Add" : "Adicionar",
"Create" : "Criar",
"Change" : "Mudar",
- "Delete" : "Apagar",
+ "Delete" : "Eliminar",
"Reshare" : "Partilhar novamente",
- "Display name" : "Nome de apresentação",
+ "Display name" : "Nome a exibir",
"Email" : "Email",
"Quota" : "Quota",
"Language" : "Idioma",
"Total rows summary" : "Resumo do total de linhas",
"Avatar" : "Avatar",
+ "Account name" : "Nome da conta",
"Group admin for" : "Administrador de grupo para",
"Storage location" : "Localização do armazenamento",
"Last login" : "Último início de sessão",
@@ -263,6 +266,7 @@ OC.L10N.register(
"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",
"Forum" : "Fórum",
"Legal notice" : "Informação legal",
@@ -287,9 +291,6 @@ OC.L10N.register(
"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"
+ "Your biography" : "Biografia"
},
"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..eaeac9bf23f 100644
--- a/apps/settings/l10n/pt_PT.json
+++ b/apps/settings/l10n/pt_PT.json
@@ -138,8 +138,8 @@
"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",
+ "Admin documentation" : "Documentação de administrador",
+ "Developer documentation" : "Documentação de programador",
"Details" : "Detalhes",
"All" : "Todos",
"No results" : "Sem resultados",
@@ -158,6 +158,7 @@
"Rate" : "Classificar",
"Changelog" : "Registo de alterações",
"Google Chrome for Android" : "Google Chrome para Android",
+ "{productName} Android app" : "{productName} Aplicação Android",
"Sync client" : "Sincronizar cliente",
"This session" : "Esta sessão",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
@@ -172,11 +173,12 @@
"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",
+ "App name" : "Nome da aplicação",
"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",
@@ -191,7 +193,6 @@
"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",
@@ -212,18 +213,20 @@
"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",
+ "Week starts on {firstDayOfWeek}" : "Semana começa em {firstDayOfWeek}",
"Your phone number" : "O seu número de telefone",
"Add" : "Adicionar",
"Create" : "Criar",
"Change" : "Mudar",
- "Delete" : "Apagar",
+ "Delete" : "Eliminar",
"Reshare" : "Partilhar novamente",
- "Display name" : "Nome de apresentação",
+ "Display name" : "Nome a exibir",
"Email" : "Email",
"Quota" : "Quota",
"Language" : "Idioma",
"Total rows summary" : "Resumo do total de linhas",
"Avatar" : "Avatar",
+ "Account name" : "Nome da conta",
"Group admin for" : "Administrador de grupo para",
"Storage location" : "Localização do armazenamento",
"Last login" : "Último início de sessão",
@@ -261,6 +264,7 @@
"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",
"Forum" : "Fórum",
"Legal notice" : "Informação legal",
@@ -285,9 +289,6 @@
"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"
+ "Your biography" : "Biografia"
},"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..79a5d09cd30 100644
--- a/apps/settings/l10n/ro.js
+++ b/apps/settings/l10n/ro.js
@@ -169,10 +169,11 @@ OC.L10N.register(
"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",
+ "{productName} Android app" : "{productName} aplicație Android",
"This session" : "Această sesiune",
"Device settings" : "Setările dispozitivului",
"Allow filesystem access" : "Permite accesul la fișierele de sistem",
- "Rename" : "Redenumește",
+ "Rename" : "Redenumire",
"Revoke" : "Revocă",
"Device" : "Dispozitiv",
"Last activity" : "Ultima activitate",
@@ -183,6 +184,7 @@ OC.L10N.register(
"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:",
@@ -190,22 +192,21 @@ OC.L10N.register(
"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?",
"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",
+ "Week starts on {firstDayOfWeek}" : "Săptămâna începe {firstDayOfWeek}",
"Your phone number" : "Numărul tău de telefon",
"Add" : "Adaugă",
- "Create" : "Creează",
+ "Create" : "Crează",
"Change" : "Schimbă",
"Delete" : "Șterge",
"Reshare" : "Redistribuiți",
"Default language" : "Limba implicită",
"Display name" : "Nume afișat",
"Email" : "Email",
- "Quota" : "Cotă",
+ "Quota" : "Procent",
"Language" : "Limba",
"Total rows summary" : "Rezumat total rânduri",
"Avatar" : "Avatar",
@@ -264,9 +265,6 @@ OC.L10N.register(
"Save" : "Salvează",
"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..086c741c0af 100644
--- a/apps/settings/l10n/ro.json
+++ b/apps/settings/l10n/ro.json
@@ -167,10 +167,11 @@
"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",
+ "{productName} Android app" : "{productName} aplicație Android",
"This session" : "Această sesiune",
"Device settings" : "Setările dispozitivului",
"Allow filesystem access" : "Permite accesul la fișierele de sistem",
- "Rename" : "Redenumește",
+ "Rename" : "Redenumire",
"Revoke" : "Revocă",
"Device" : "Dispozitiv",
"Last activity" : "Ultima activitate",
@@ -181,6 +182,7 @@
"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:",
@@ -188,22 +190,21 @@
"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?",
"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",
+ "Week starts on {firstDayOfWeek}" : "Săptămâna începe {firstDayOfWeek}",
"Your phone number" : "Numărul tău de telefon",
"Add" : "Adaugă",
- "Create" : "Creează",
+ "Create" : "Crează",
"Change" : "Schimbă",
"Delete" : "Șterge",
"Reshare" : "Redistribuiți",
"Default language" : "Limba implicită",
"Display name" : "Nume afișat",
"Email" : "Email",
- "Quota" : "Cotă",
+ "Quota" : "Procent",
"Language" : "Limba",
"Total rows summary" : "Rezumat total rânduri",
"Avatar" : "Avatar",
@@ -262,9 +263,6 @@
"Save" : "Salvează",
"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 58f1e7bcb9c..d22f0efd678 100644
--- a/apps/settings/l10n/ru.js
+++ b/apps/settings/l10n/ru.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." : "- 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._" : ["Скорость подхвата задач за последний час была низкой. Многим задачам потребовалось больше 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\" отключена, что не дает провести проверку наличия свободного места во временных каталогах",
@@ -480,15 +483,15 @@ OC.L10N.register(
"ExApp container mounts" : "Монтирование контейнера ExApp",
"No mounts defined" : "Монтирования не определены",
"Description" : "Описание",
- "View in store" : "Посмотреть в магазине приложений",
+ "View in store" : "Перейти в магазин приложений",
"Visit website" : "Перейти на веб-сайт",
"Usage documentation" : "Документация по использованию",
- "Admin documentation" : "Документация для администратора",
- "Developer documentation" : "Документация для разработчиков",
- "Details" : "Подробные сведения",
+ "Admin documentation" : "Документация администратора",
+ "Developer documentation" : "Документация разработчика",
+ "Details" : "Свойства",
"All" : "Все",
"Limit app usage to groups" : "Разрешить использовать приложение только участникам этих групп",
- "No results" : "Результаты отсутствуют",
+ "No results" : "Нет результатов",
"Update to {version}" : "Обновление до {version}",
"Deploy options" : "Варианты развертывания",
"Default Deploy daemon is not accessible" : "Служба публикации по умолчанию недоступна",
@@ -561,6 +564,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,12 +587,12 @@ 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}». Учётные записи НЕ будут удалены.",
"Submit" : "Отправить ответ",
"Rename group" : "Переименовать группу",
- "Remove group" : "Удалить группу",
+ "Delete group" : "Удалить группу",
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Change password" : "Сменить пароль",
@@ -643,7 +647,6 @@ OC.L10N.register(
"No locale set" : "Локаль не задана",
"Your city" : "Ваш город",
"Your organisation" : "Ваша организация",
- "Your phone number" : "Ваш номер телефона",
"Edit your Profile visibility" : "Изменить видимость профиля",
"Unable to update profile enabled state" : "Не удалось обновить состояние профиля",
"Enable profile" : "Использовать профиль",
@@ -740,7 +743,7 @@ OC.L10N.register(
"Select account quota" : "Выбор квоты для учётной записи",
"Set the language" : "Выбрать язык",
"Toggle account actions menu" : "Переключение меню действий с учетной записью",
- "Done" : "Выполнено",
+ "Done" : "Выполненные",
"Edit" : "Редактирование",
"Account management settings" : "Параметры управления учётными записями",
"Visibility" : "Видимость",
@@ -888,51 +891,18 @@ 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" : "Ни одно из установленных вами в данный момент приложений не предоставляет функции обработки текста",
+ "- 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" : "Установить срок действия общего доступа по умолчанию",
- "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.",
"Failed to load subadmin groups with details" : "Не удалось загрузить группы субадминистраторов с подробностями"
},
"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 48fea024a39..4667b9fddf5 100644
--- a/apps/settings/l10n/ru.json
+++ b/apps/settings/l10n/ru.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." : "- 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._" : ["Скорость подхвата задач за последний час была низкой. Многим задачам потребовалось больше 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\" отключена, что не дает провести проверку наличия свободного места во временных каталогах",
@@ -478,15 +481,15 @@
"ExApp container mounts" : "Монтирование контейнера ExApp",
"No mounts defined" : "Монтирования не определены",
"Description" : "Описание",
- "View in store" : "Посмотреть в магазине приложений",
+ "View in store" : "Перейти в магазин приложений",
"Visit website" : "Перейти на веб-сайт",
"Usage documentation" : "Документация по использованию",
- "Admin documentation" : "Документация для администратора",
- "Developer documentation" : "Документация для разработчиков",
- "Details" : "Подробные сведения",
+ "Admin documentation" : "Документация администратора",
+ "Developer documentation" : "Документация разработчика",
+ "Details" : "Свойства",
"All" : "Все",
"Limit app usage to groups" : "Разрешить использовать приложение только участникам этих групп",
- "No results" : "Результаты отсутствуют",
+ "No results" : "Нет результатов",
"Update to {version}" : "Обновление до {version}",
"Deploy options" : "Варианты развертывания",
"Default Deploy daemon is not accessible" : "Служба публикации по умолчанию недоступна",
@@ -559,6 +562,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,12 +585,12 @@
"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}». Учётные записи НЕ будут удалены.",
"Submit" : "Отправить ответ",
"Rename group" : "Переименовать группу",
- "Remove group" : "Удалить группу",
+ "Delete group" : "Удалить группу",
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Change password" : "Сменить пароль",
@@ -641,7 +645,6 @@
"No locale set" : "Локаль не задана",
"Your city" : "Ваш город",
"Your organisation" : "Ваша организация",
- "Your phone number" : "Ваш номер телефона",
"Edit your Profile visibility" : "Изменить видимость профиля",
"Unable to update profile enabled state" : "Не удалось обновить состояние профиля",
"Enable profile" : "Использовать профиль",
@@ -738,7 +741,7 @@
"Select account quota" : "Выбор квоты для учётной записи",
"Set the language" : "Выбрать язык",
"Toggle account actions menu" : "Переключение меню действий с учетной записью",
- "Done" : "Выполнено",
+ "Done" : "Выполненные",
"Edit" : "Редактирование",
"Account management settings" : "Параметры управления учётными записями",
"Visibility" : "Видимость",
@@ -886,51 +889,18 @@
"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" : "Ни одно из установленных вами в данный момент приложений не предоставляет функции обработки текста",
+ "- 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" : "Установить срок действия общего доступа по умолчанию",
- "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.",
"Failed to load subadmin groups with details" : "Не удалось загрузить группы субадминистраторов с подробностями"
},"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..2bc5c774434 100644
--- a/apps/settings/l10n/sc.js
+++ b/apps/settings/l10n/sc.js
@@ -165,7 +165,7 @@ OC.L10N.register(
"Confirm" : "Cunfirma",
"Cancel" : "Annulla",
"Description" : "Descritzione",
- "View in store" : "Càstia in s'archìviu",
+ "View in store" : "Visualiza in sa butega",
"Visit website" : "Vìsita su situ",
"Admin documentation" : "Documentatzione amministratzione",
"Developer documentation" : "Documentatzione isvilupu",
@@ -181,7 +181,7 @@ OC.L10N.register(
"Categories" : "Categ",
"Resources" : "Risorsas",
"Documentation" : "Documentatzione",
- "Report a bug" : "Signala un'errore",
+ "Report a bug" : "Report a bug",
"Request feature" : "Rechede funtzionalidade",
"Ask questions or discuss" : "Faghe preguntas o discuti",
"Rate" : "Vàluta",
@@ -196,7 +196,6 @@ OC.L10N.register(
"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",
@@ -225,7 +224,6 @@ 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." : "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?",
"Submit" : "Imbia",
- "Remove group" : "Boga·nche grupu",
"Current password" : "Crae currente",
"New password" : "Crae noa",
"Change password" : "Càmbia crae",
@@ -284,7 +282,6 @@ OC.L10N.register(
"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",
@@ -296,8 +293,8 @@ OC.L10N.register(
"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",
+ "Adding your device …" : "Agiunta de su dispositivu tuo...",
+ "Unnamed device" : "Dispositivu sena 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.",
@@ -376,17 +373,8 @@ 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"
+ "You are using <strong>{usage}</strong>" : "Ses impreende <strong>{usage}</strong>"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json
index e9127e3af0b..a75db28c4ab 100644
--- a/apps/settings/l10n/sc.json
+++ b/apps/settings/l10n/sc.json
@@ -163,7 +163,7 @@
"Confirm" : "Cunfirma",
"Cancel" : "Annulla",
"Description" : "Descritzione",
- "View in store" : "Càstia in s'archìviu",
+ "View in store" : "Visualiza in sa butega",
"Visit website" : "Vìsita su situ",
"Admin documentation" : "Documentatzione amministratzione",
"Developer documentation" : "Documentatzione isvilupu",
@@ -179,7 +179,7 @@
"Categories" : "Categ",
"Resources" : "Risorsas",
"Documentation" : "Documentatzione",
- "Report a bug" : "Signala un'errore",
+ "Report a bug" : "Report a bug",
"Request feature" : "Rechede funtzionalidade",
"Ask questions or discuss" : "Faghe preguntas o discuti",
"Rate" : "Vàluta",
@@ -194,7 +194,6 @@
"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",
@@ -223,7 +222,6 @@
"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?",
"Submit" : "Imbia",
- "Remove group" : "Boga·nche grupu",
"Current password" : "Crae currente",
"New password" : "Crae noa",
"Change password" : "Càmbia crae",
@@ -282,7 +280,6 @@
"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",
@@ -294,8 +291,8 @@
"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",
+ "Adding your device …" : "Agiunta de su dispositivu tuo...",
+ "Unnamed device" : "Dispositivu sena 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.",
@@ -374,17 +371,8 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Ses impreende <strong>{usage}</strong>"
},"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..8934df6990d 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.",
@@ -479,13 +478,13 @@ OC.L10N.register(
"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",
+ "View in store" : "Zobraziť 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",
+ "Details" : "Podrobnosti",
+ "All" : "Všetko",
"Limit app usage to groups" : "Obmedziť používanie aplikácií pre skupiny",
"No results" : "Žiadne výsledky",
"Update to {version}" : "Aktualizovať na {version}",
@@ -560,6 +559,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,12 +582,9 @@ 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í.",
"Submit" : "Odoslať",
"Rename group" : "Premenovať skupinu",
- "Remove group" : "Odstrániť skupinu",
"Current password" : "Aktuálne heslo",
"New password" : "Nové heslo",
"Change password" : "Zmeniť heslo",
@@ -642,7 +639,6 @@ OC.L10N.register(
"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",
@@ -662,9 +658,9 @@ OC.L10N.register(
"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ť",
+ "Create" : "Vytvoriť",
"Change" : "Zmeniť",
- "Delete" : "Zmazať",
+ "Delete" : "Vymazať",
"Reshare" : "Zdieľať ďalej",
"Default language" : "Predvolený jazyk",
"Common languages" : "Spoločné jazyky",
@@ -886,51 +882,18 @@ 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.",
+ "- 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.",
"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.",
- "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"
},
"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..b7d12713eab 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.",
@@ -477,13 +476,13 @@
"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",
+ "View in store" : "Zobraziť 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",
+ "Details" : "Podrobnosti",
+ "All" : "Všetko",
"Limit app usage to groups" : "Obmedziť používanie aplikácií pre skupiny",
"No results" : "Žiadne výsledky",
"Update to {version}" : "Aktualizovať na {version}",
@@ -558,6 +557,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,12 +580,9 @@
"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í.",
"Submit" : "Odoslať",
"Rename group" : "Premenovať skupinu",
- "Remove group" : "Odstrániť skupinu",
"Current password" : "Aktuálne heslo",
"New password" : "Nové heslo",
"Change password" : "Zmeniť heslo",
@@ -640,7 +637,6 @@
"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",
@@ -660,9 +656,9 @@
"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ť",
+ "Create" : "Vytvoriť",
"Change" : "Zmeniť",
- "Delete" : "Zmazať",
+ "Delete" : "Vymazať",
"Reshare" : "Zdieľať ďalej",
"Default language" : "Predvolený jazyk",
"Common languages" : "Spoločné jazyky",
@@ -884,51 +880,18 @@
"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.",
+ "- 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.",
"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.",
- "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"
},"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..9d6ff9e1f24 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.",
@@ -333,7 +332,7 @@ OC.L10N.register(
"Admin documentation" : "Skrbniška dokumentacija",
"Developer documentation" : "Dokumentacija za razvijalce",
"Details" : "Podrobnosti",
- "All" : "Vsi",
+ "All" : "Vse",
"Limit app usage to groups" : "Omeji uporabo programa na skupine",
"No results" : "Ni zadetkov",
"Update to {version}" : "Posodobi na različico {version}",
@@ -420,12 +419,9 @@ 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.",
"Submit" : "Pošlji",
"Rename group" : "Preimenuj skupino",
- "Remove group" : "Odstrani skupino",
"Current password" : "Trenutno geslo",
"New password" : "Novo geslo",
"Change password" : "Spremeni geslo",
@@ -490,9 +486,9 @@ OC.L10N.register(
"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",
+ "Create" : "Ustvari",
"Change" : "Spreminjanje",
- "Delete" : "Brisanje",
+ "Delete" : "Izbriši",
"Reshare" : "Nadaljnja souporaba",
"Default language" : "Privzeti jezik",
"Common languages" : "Splošni jeziki",
@@ -690,45 +686,14 @@ 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.",
+ "- 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",
- "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."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Uporabljate <strong>{usage}</strong> od <strong>{totalSpace}</strong> (<strong>{usageRelative} %</strong>)"
},
"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..9bb0d22a028 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.",
@@ -331,7 +330,7 @@
"Admin documentation" : "Skrbniška dokumentacija",
"Developer documentation" : "Dokumentacija za razvijalce",
"Details" : "Podrobnosti",
- "All" : "Vsi",
+ "All" : "Vse",
"Limit app usage to groups" : "Omeji uporabo programa na skupine",
"No results" : "Ni zadetkov",
"Update to {version}" : "Posodobi na različico {version}",
@@ -418,12 +417,9 @@
"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.",
"Submit" : "Pošlji",
"Rename group" : "Preimenuj skupino",
- "Remove group" : "Odstrani skupino",
"Current password" : "Trenutno geslo",
"New password" : "Novo geslo",
"Change password" : "Spremeni geslo",
@@ -488,9 +484,9 @@
"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",
+ "Create" : "Ustvari",
"Change" : "Spreminjanje",
- "Delete" : "Brisanje",
+ "Delete" : "Izbriši",
"Reshare" : "Nadaljnja souporaba",
"Default language" : "Privzeti jezik",
"Common languages" : "Splošni jeziki",
@@ -688,45 +684,14 @@
"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.",
+ "- 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",
- "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."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Uporabljate <strong>{usage}</strong> od <strong>{totalSpace}</strong> (<strong>{usageRelative} %</strong>)"
},"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..a574b182c20 100644
--- a/apps/settings/l10n/sq.js
+++ b/apps/settings/l10n/sq.js
@@ -105,10 +105,10 @@ OC.L10N.register(
"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",
+ "Admin documentation" : "Dokumentacioni i administratorit",
+ "Developer documentation" : "Dokumentacioni e zhvilluesit",
+ "Details" : "Detajet",
+ "All" : "Të gjithë",
"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.",
@@ -123,18 +123,20 @@ OC.L10N.register(
"Rate" : "Vlerësoj",
"Changelog" : "Katalogu i ndryshimeve",
"Google Chrome for Android" : "Google Chrome për Android",
+ "{productName} Android app" : "{productName} Android app",
"This session" : "Ky sesion",
"Allow filesystem access" : "Lejo aksesin e sistemit të skedarëve",
- "Rename" : "Rename",
+ "Rename" : "Riemërtoje",
"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",
+ "App name" : "Emri i aplikacionit",
"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",
@@ -147,20 +149,18 @@ 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." : "Ë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?",
"Submit" : "Dërgo",
- "Remove group" : "Hiq grupin",
- "Current password" : "Fjalëkalimi i tanishëm",
- "New password" : "Fjalëkalimi i ri",
+ "Current password" : "Fjalëkalimi aktual",
+ "New password" : "Fjalëkalim 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",
+ "Add" : "Shto ",
"Create" : "Krijo",
"Change" : "Ndrysho",
- "Delete" : "Fshij",
- "Display name" : "Shfaq emrin",
+ "Delete" : "Fshi",
"Email" : "Email",
"Quota" : "Kuota",
"Language" : "Gjuhë",
@@ -219,10 +219,6 @@ OC.L10N.register(
"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"
+ "You are using <strong>{usage}</strong>" : "Ju po përdorni <strong>{usage}</strong>"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sq.json b/apps/settings/l10n/sq.json
index ba32ae4e6ce..1cbea7615e5 100644
--- a/apps/settings/l10n/sq.json
+++ b/apps/settings/l10n/sq.json
@@ -103,10 +103,10 @@
"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",
+ "Admin documentation" : "Dokumentacioni i administratorit",
+ "Developer documentation" : "Dokumentacioni e zhvilluesit",
+ "Details" : "Detajet",
+ "All" : "Të gjithë",
"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.",
@@ -121,18 +121,20 @@
"Rate" : "Vlerësoj",
"Changelog" : "Katalogu i ndryshimeve",
"Google Chrome for Android" : "Google Chrome për Android",
+ "{productName} Android app" : "{productName} Android app",
"This session" : "Ky sesion",
"Allow filesystem access" : "Lejo aksesin e sistemit të skedarëve",
- "Rename" : "Rename",
+ "Rename" : "Riemërtoje",
"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",
+ "App name" : "Emri i aplikacionit",
"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",
@@ -145,20 +147,18 @@
"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?",
"Submit" : "Dërgo",
- "Remove group" : "Hiq grupin",
- "Current password" : "Fjalëkalimi i tanishëm",
- "New password" : "Fjalëkalimi i ri",
+ "Current password" : "Fjalëkalimi aktual",
+ "New password" : "Fjalëkalim 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",
+ "Add" : "Shto ",
"Create" : "Krijo",
"Change" : "Ndrysho",
- "Delete" : "Fshij",
- "Display name" : "Shfaq emrin",
+ "Delete" : "Fshi",
"Email" : "Email",
"Quota" : "Kuota",
"Language" : "Gjuhë",
@@ -217,10 +217,6 @@
"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"
+ "You are using <strong>{usage}</strong>" : "Ju po përdorni <strong>{usage}</strong>"
},"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..64e07b8155b 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”, па не може да се провери довољна количина слободног простора у привременим директоријумима.",
@@ -502,7 +505,7 @@ OC.L10N.register(
"Resources" : "Ресурси",
"Documentation" : "Документација",
"Interact" : "Остварите узајамно деловање",
- "Report a bug" : "Пријави проблем",
+ "Report a bug" : "Пријави грешку",
"Request feature" : "Затражи функционалност",
"Ask questions or discuss" : "Питајте питање или дискутујте",
"Rate the app" : "Оцените апликацију",
@@ -561,6 +564,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,12 +587,12 @@ 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}”. Налози се НЕЋЕ обрисати.",
"Submit" : "Пошаљи",
"Rename group" : "Промени име групе",
- "Remove group" : "Уклони групу",
+ "Delete group" : "Брисање групе",
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Change password" : "Измени лозинку",
@@ -663,9 +667,9 @@ OC.L10N.register(
"Unable to update federation scope of additional {property}" : "Није успело ажурирање опсега важења федерације додатне {property}",
"Add additional email" : "Додај додатни и-мејл",
"Add" : "Додај",
- "Create" : "Направи",
+ "Create" : "Креирање",
"Change" : "Измени",
- "Delete" : "Обриши",
+ "Delete" : "Избриши",
"Reshare" : "Дели даље",
"Default language" : "Подразумевани језик",
"Common languages" : "Најкоришћенији језици",
@@ -888,51 +892,18 @@ 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" : "Ниједна од ваших тренутно инсталираних апликација не пружа функционалност обраде текста",
+ "- 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.",
"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 неподударања на страни сервера или одлазно правило заштитног зида.",
- "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" : "Није успело учитавање подадмин група са детаљима"
},
"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..5ae9913f7c7 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”, па не може да се провери довољна количина слободног простора у привременим директоријумима.",
@@ -500,7 +503,7 @@
"Resources" : "Ресурси",
"Documentation" : "Документација",
"Interact" : "Остварите узајамно деловање",
- "Report a bug" : "Пријави проблем",
+ "Report a bug" : "Пријави грешку",
"Request feature" : "Затражи функционалност",
"Ask questions or discuss" : "Питајте питање или дискутујте",
"Rate the app" : "Оцените апликацију",
@@ -559,6 +562,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,12 +585,12 @@
"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}”. Налози се НЕЋЕ обрисати.",
"Submit" : "Пошаљи",
"Rename group" : "Промени име групе",
- "Remove group" : "Уклони групу",
+ "Delete group" : "Брисање групе",
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Change password" : "Измени лозинку",
@@ -661,9 +665,9 @@
"Unable to update federation scope of additional {property}" : "Није успело ажурирање опсега важења федерације додатне {property}",
"Add additional email" : "Додај додатни и-мејл",
"Add" : "Додај",
- "Create" : "Направи",
+ "Create" : "Креирање",
"Change" : "Измени",
- "Delete" : "Обриши",
+ "Delete" : "Избриши",
"Reshare" : "Дели даље",
"Default language" : "Подразумевани језик",
"Common languages" : "Најкоришћенији језици",
@@ -886,51 +890,18 @@
"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" : "Ниједна од ваших тренутно инсталираних апликација не пружа функционалност обраде текста",
+ "- 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.",
"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 неподударања на страни сервера или одлазно правило заштитног зида.",
- "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" : "Није успело учитавање подадмин група са детаљима"
},"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..c8bcf8b9a0d 100644
--- a/apps/settings/l10n/sv.js
+++ b/apps/settings/l10n/sv.js
@@ -404,6 +404,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,15 +420,12 @@ 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.",
"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",
+ "Change password" : "Byt 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",
@@ -526,7 +524,7 @@ OC.L10N.register(
"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",
+ "Quota" : "Kvot",
"Set account quota" : "Ställ in kvot för konto",
"Language" : "Språk",
"Set default language" : "Ställ in standardspråk",
@@ -573,7 +571,7 @@ OC.L10N.register(
"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",
+ "Done" : "Klar",
"Edit" : "Redigera",
"Account management settings" : "Inställningar kontohantering",
"Visibility" : "Synlighet",
@@ -709,45 +707,13 @@ 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."
+ "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>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json
index e4e10d0a990..cdc16488fd4 100644
--- a/apps/settings/l10n/sv.json
+++ b/apps/settings/l10n/sv.json
@@ -402,6 +402,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,15 +418,12 @@
"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.",
"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",
+ "Change password" : "Byt 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",
@@ -524,7 +522,7 @@
"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",
+ "Quota" : "Kvot",
"Set account quota" : "Ställ in kvot för konto",
"Language" : "Språk",
"Set default language" : "Ställ in standardspråk",
@@ -571,7 +569,7 @@
"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",
+ "Done" : "Klar",
"Edit" : "Redigera",
"Account management settings" : "Inställningar kontohantering",
"Visibility" : "Synlighet",
@@ -707,45 +705,13 @@
"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."
+ "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>)"
},"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..7e52557ce1d 100644
--- a/apps/settings/l10n/th.js
+++ b/apps/settings/l10n/th.js
@@ -109,8 +109,8 @@ OC.L10N.register(
"Description" : "คำอธิบาย",
"View in store" : "ดูในร้านค้า",
"Visit website" : "เข้าสู่เว็บไซต์",
- "Admin documentation" : "เอกสารประกอบสำหรับผู้ดูแลระบบ",
- "Developer documentation" : "เอกสารประกอบสำหรับนักพัฒนา",
+ "Admin documentation" : "เอกสารสำหรับผู้ดูแลระบบ",
+ "Developer documentation" : "เอกสารสำหรับนักพัฒนา",
"Details" : "รายละเอียด",
"All" : "ทั้งหมด",
"Limit app usage to groups" : "จำกัดการใช้แอปสำหรับกลุ่ม",
@@ -159,10 +159,8 @@ 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." : "การสำรองข้อมูลของคุณเป็นประจำเป็นเรื่องที่ดีเสมอ ในกรณีของการเข้ารหัส อย่าลืมสำรองคีย์เข้ารหัสพร้อมข้อมูลของคุณด้วย",
"This is the final warning: Do you really want to enable encryption?" : "นี่คือการเตือนครั้งสุดท้าย: คุณต้องการเปิดใช้การเข้ารหัสจริง ๆ หรือไม่?",
"Submit" : "ส่ง",
- "Remove group" : "ลบกลุ่ม",
"Current password" : "รหัสผ่านปัจจุบัน",
"New password" : "รหัสผ่านใหม่",
- "Change password" : "เปลี่ยนรหัสผ่าน",
"Picture provided by original account" : "ใช้รูปภาพจากบัญชีเดิม",
"Email options" : "ตัวเลือกอีเมล",
"Remove primary email" : "ลบอีเมลหลักออก",
@@ -172,7 +170,7 @@ OC.L10N.register(
"No email address set" : "ไม่ได้ระบุที่อยู่อีเมล",
"Help translate" : "ช่วยแปล",
"No language set" : "ไม่ได้ตั้งภาษา",
- "Add" : "เพิ่ม",
+ "Week starts on {firstDayOfWeek}" : "เริ่มต้นสัปดาห์{firstDayOfWeek}",
"Create" : "สร้าง",
"Change" : "เปลี่ยนแปลง",
"Delete" : "ลบ",
@@ -198,7 +196,6 @@ OC.L10N.register(
"Account deletion" : "การลบบัญชี",
"Delete {userid}'s account" : "ลบบัญชีของ {userid}",
"Welcome mail sent!" : "ส่งอีเมลยินดีต้อนรับแล้ว!",
- "Done" : "เสร็จสิ้น",
"Edit" : "แก้ไข",
"Show storage path" : "แสดงเส้นทางจัดเก็บข้อมูล",
"Show last login" : "แสดงการเข้าสู่ระบบล่าสุด",
@@ -273,12 +270,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..4ed1f6774ad 100644
--- a/apps/settings/l10n/th.json
+++ b/apps/settings/l10n/th.json
@@ -107,8 +107,8 @@
"Description" : "คำอธิบาย",
"View in store" : "ดูในร้านค้า",
"Visit website" : "เข้าสู่เว็บไซต์",
- "Admin documentation" : "เอกสารประกอบสำหรับผู้ดูแลระบบ",
- "Developer documentation" : "เอกสารประกอบสำหรับนักพัฒนา",
+ "Admin documentation" : "เอกสารสำหรับผู้ดูแลระบบ",
+ "Developer documentation" : "เอกสารสำหรับนักพัฒนา",
"Details" : "รายละเอียด",
"All" : "ทั้งหมด",
"Limit app usage to groups" : "จำกัดการใช้แอปสำหรับกลุ่ม",
@@ -157,10 +157,8 @@
"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?" : "นี่คือการเตือนครั้งสุดท้าย: คุณต้องการเปิดใช้การเข้ารหัสจริง ๆ หรือไม่?",
"Submit" : "ส่ง",
- "Remove group" : "ลบกลุ่ม",
"Current password" : "รหัสผ่านปัจจุบัน",
"New password" : "รหัสผ่านใหม่",
- "Change password" : "เปลี่ยนรหัสผ่าน",
"Picture provided by original account" : "ใช้รูปภาพจากบัญชีเดิม",
"Email options" : "ตัวเลือกอีเมล",
"Remove primary email" : "ลบอีเมลหลักออก",
@@ -170,7 +168,7 @@
"No email address set" : "ไม่ได้ระบุที่อยู่อีเมล",
"Help translate" : "ช่วยแปล",
"No language set" : "ไม่ได้ตั้งภาษา",
- "Add" : "เพิ่ม",
+ "Week starts on {firstDayOfWeek}" : "เริ่มต้นสัปดาห์{firstDayOfWeek}",
"Create" : "สร้าง",
"Change" : "เปลี่ยนแปลง",
"Delete" : "ลบ",
@@ -196,7 +194,6 @@
"Account deletion" : "การลบบัญชี",
"Delete {userid}'s account" : "ลบบัญชีของ {userid}",
"Welcome mail sent!" : "ส่งอีเมลยินดีต้อนรับแล้ว!",
- "Done" : "เสร็จสิ้น",
"Edit" : "แก้ไข",
"Show storage path" : "แสดงเส้นทางจัดเก็บข้อมูล",
"Show last login" : "แสดงการเข้าสู่ระบบล่าสุด",
@@ -271,12 +268,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..7a88f10365f 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",
@@ -362,10 +365,12 @@ OC.L10N.register(
"Allow sharing with groups" : "Gruplar ile paylaşılabilsin",
"Restrict users to only share with users in their groups" : "Kullanıcılar, yalnızca kendi gruplarındaki kullanıcılarla paylaşabilsin",
"Ignore the following groups when checking group membership" : "Grup üyeliği denetlenirken şu grupları yok sayılsın",
+ "Allow users to preview files even if download is disabled" : "İndirme özelliği kapatılmış olsa bile kullanıcıların dosyaları ön izlemesine izin verin",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Kullanıcılar ekran görüntüsü alabilirler veya ekranı kaydedebilirler. Bu seçenek tam bir kesin koruma sağlamaz.",
"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 +384,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 +404,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",
@@ -511,8 +516,8 @@ OC.L10N.register(
"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ş",
+ "{productName} Talk for iOS" : "iOS için {productName} Konuş",
+ "{productName} Talk for Android" : "Android için {productName} Konuş",
"Sync client" : "İstemciyi eşitle",
"This session" : "Bu oturum",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
@@ -524,13 +529,13 @@ OC.L10N.register(
"Device settings" : "Aygıt ayarları",
"Allow filesystem access" : "Dosya sistemine erişilebilsin",
"Rename" : "Yeniden adlandır",
- "Revoke" : "Geri al",
+ "Revoke" : "Geri çek",
"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.",
+ "Devices & sessions" : "Aygıtlar ve oturumlar",
+ "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınızda oturum açmış internet, bilgisayar 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",
@@ -544,7 +549,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,38 +565,39 @@ 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.",
"Submit" : "Gönder",
"Rename group" : "Grubu yeniden adlandır",
- "Remove group" : "Grubu sil",
+ "Delete group" : "Grubu sil",
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
- "Change password" : "Parola değiştir",
+ "Change password" : "Parolayı 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ı",
@@ -652,6 +658,7 @@ OC.L10N.register(
"she/her" : "hanım",
"he/him" : "bey",
"they/them" : "kişi",
+ "Your pronouns. E.g. {pronounsExample}" : "Hitaplarınız, örnek {pronounsExample}",
"Your role" : "Pozisyonunuz",
"Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız",
"Your website" : "Sitenizin adresi",
@@ -663,10 +670,10 @@ OC.L10N.register(
"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ş",
+ "Create" : "Ekleme",
+ "Change" : "Değiştirme",
+ "Delete" : "Silme",
+ "Reshare" : "Yeniden paylaşma",
"Default language" : "Varsayılan dil",
"Common languages" : "Sık kullanılan diller",
"Other languages" : "Diğer diller",
@@ -674,7 +681,7 @@ OC.L10N.register(
"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",
+ "Manager" : "Sorumlu",
"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)",
@@ -703,8 +710,8 @@ OC.L10N.register(
"Avatar" : "Avatar",
"Account name" : "Hesap adı",
"Group admin for" : "Şunun grup yöneticisi",
- "Account backend" : "Hesap arka ucu",
- "Storage location" : "Depolama konumu",
+ "Account backend" : "Hesap arka yüzü",
+ "Storage location" : "Depolama alanı konumu",
"First login" : "İlk oturum açma",
"Last login" : "Son oturum açma",
"Account actions" : "Hesap işlemleri",
@@ -714,7 +721,7 @@ OC.L10N.register(
"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.",
+ "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 internet 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",
@@ -745,7 +752,7 @@ OC.L10N.register(
"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 account backend" : "Hesap arka yüzü 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",
@@ -764,10 +771,10 @@ OC.L10N.register(
"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",
+ "Adding your device …" : "Aygıtınız ekleniyor…",
+ "Unnamed device" : "Adlandırılmamış 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.",
+ "Set up your account for passwordless authentication following the FIDO2 standard." : "Hesabınızda FIDO2 standardına uygun parolasız kimlik doğrulamasını yapılandırın.",
"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.",
@@ -886,53 +893,20 @@ 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",
+ "- 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.",
"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.",
- "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"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json
index 92e35aa4ac2..7f03aa37823 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",
@@ -360,10 +363,12 @@
"Allow sharing with groups" : "Gruplar ile paylaşılabilsin",
"Restrict users to only share with users in their groups" : "Kullanıcılar, yalnızca kendi gruplarındaki kullanıcılarla paylaşabilsin",
"Ignore the following groups when checking group membership" : "Grup üyeliği denetlenirken şu grupları yok sayılsın",
+ "Allow users to preview files even if download is disabled" : "İndirme özelliği kapatılmış olsa bile kullanıcıların dosyaları ön izlemesine izin verin",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Kullanıcılar ekran görüntüsü alabilirler veya ekranı kaydedebilirler. Bu seçenek tam bir kesin koruma sağlamaz.",
"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 +382,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 +402,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",
@@ -509,8 +514,8 @@
"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ş",
+ "{productName} Talk for iOS" : "iOS için {productName} Konuş",
+ "{productName} Talk for Android" : "Android için {productName} Konuş",
"Sync client" : "İstemciyi eşitle",
"This session" : "Bu oturum",
"{client} - {version} ({system})" : "{client} - {version} ({system})",
@@ -522,13 +527,13 @@
"Device settings" : "Aygıt ayarları",
"Allow filesystem access" : "Dosya sistemine erişilebilsin",
"Rename" : "Yeniden adlandır",
- "Revoke" : "Geri al",
+ "Revoke" : "Geri çek",
"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.",
+ "Devices & sessions" : "Aygıtlar ve oturumlar",
+ "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınızda oturum açmış internet, bilgisayar 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",
@@ -542,7 +547,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,38 +563,39 @@
"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.",
"Submit" : "Gönder",
"Rename group" : "Grubu yeniden adlandır",
- "Remove group" : "Grubu sil",
+ "Delete group" : "Grubu sil",
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
- "Change password" : "Parola değiştir",
+ "Change password" : "Parolayı 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ı",
@@ -650,6 +656,7 @@
"she/her" : "hanım",
"he/him" : "bey",
"they/them" : "kişi",
+ "Your pronouns. E.g. {pronounsExample}" : "Hitaplarınız, örnek {pronounsExample}",
"Your role" : "Pozisyonunuz",
"Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız",
"Your website" : "Sitenizin adresi",
@@ -661,10 +668,10 @@
"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ş",
+ "Create" : "Ekleme",
+ "Change" : "Değiştirme",
+ "Delete" : "Silme",
+ "Reshare" : "Yeniden paylaşma",
"Default language" : "Varsayılan dil",
"Common languages" : "Sık kullanılan diller",
"Other languages" : "Diğer diller",
@@ -672,7 +679,7 @@
"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",
+ "Manager" : "Sorumlu",
"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)",
@@ -701,8 +708,8 @@
"Avatar" : "Avatar",
"Account name" : "Hesap adı",
"Group admin for" : "Şunun grup yöneticisi",
- "Account backend" : "Hesap arka ucu",
- "Storage location" : "Depolama konumu",
+ "Account backend" : "Hesap arka yüzü",
+ "Storage location" : "Depolama alanı konumu",
"First login" : "İlk oturum açma",
"Last login" : "Son oturum açma",
"Account actions" : "Hesap işlemleri",
@@ -712,7 +719,7 @@
"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.",
+ "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 internet 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",
@@ -743,7 +750,7 @@
"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 account backend" : "Hesap arka yüzü 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",
@@ -762,10 +769,10 @@
"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",
+ "Adding your device …" : "Aygıtınız ekleniyor…",
+ "Unnamed device" : "Adlandırılmamış 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.",
+ "Set up your account for passwordless authentication following the FIDO2 standard." : "Hesabınızda FIDO2 standardına uygun parolasız kimlik doğrulamasını yapılandırın.",
"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.",
@@ -884,53 +891,20 @@
"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",
+ "- 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.",
"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.",
- "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"
},"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..8c52a2caefe 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 نى قوزغىتىش تەۋسىيە قىلىنىدۇ.",
@@ -415,7 +414,7 @@ OC.L10N.register(
"{index} of {total}" : "{index} of {total}",
"Daemon" : "Daemon",
"Deploy Daemon" : "Daemon نى ئورۇنلاشتۇرۇڭ",
- "Type" : "تىپ",
+ "Type" : "Type",
"Display Name" : "كۆرسىتىش ئىسمى",
"GPUs support" : "GPUs نى قوللايدۇ",
"Compute device" : "ھېسابلاش ئۈسكۈنىسى",
@@ -464,7 +463,7 @@ OC.L10N.register(
"Marked for remote wipe" : "يىراقتىن سۈرتۈشكە بەلگە قويۇلغان",
"Device settings" : "ئۈسكۈنىنىڭ تەڭشىكى",
"Allow filesystem access" : "ھۆججەت سىستېمىسىنىڭ زىيارەت قىلىشىغا يول قويۇڭ",
- "Rename" : "ئات ئۆزگەرت",
+ "Rename" : "ئىسىم ئۆزگەرتىش",
"Revoke" : "بىكار قىلىش",
"Wipe device" : "ئۈسكۈنىنى سۈرتۈڭ",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "بۇ بەلگە ئەمەلدىن قالدۇرۇلسا ئۈسكۈنىڭىزنىڭ سۈرتۈلۈشىنىڭ ئالدىنى ئالىدۇ.",
@@ -518,15 +517,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" : "گۇرۇپپا ئۆچۈرۈلگەنلىكىنى جەزملەشتۈرۈڭ",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "سىز «{group}» گۇرۇپپىسىنى ئۆچۈرمەكچى بولۇۋاتىسىز. ھېساباتلار ئۆچۈرۈلمەيدۇ.",
"Submit" : "يوللاڭ",
"Rename group" : "گۇرۇپپىنىڭ نامىنى ئۆزگەرتىش",
- "Remove group" : "گۇرۇپپىنى ئۆچۈرۈڭ",
"Current password" : "نۆۋەتتىكى ئىم",
"New password" : "يېڭى ئىم",
- "Change password" : "ئىم ئۆزگەرت",
+ "Change password" : "پارولنى ئۆزگەرتىڭ",
"Choose your profile picture" : "ئارخىپ رەسىمىڭىزنى تاللاڭ",
"Please select a valid png or jpg file" : "ئىناۋەتلىك png ياكى jpg ھۆججىتىنى تاللاڭ",
"Error setting profile picture" : "ئارخىپ رەسىمىنى تەڭشەشتە خاتالىق",
@@ -665,7 +661,7 @@ OC.L10N.register(
"Select account quota" : "ھېسابات نورمىسىنى تاللاڭ",
"Set the language" : "تىل بەلگىلەڭ",
"Toggle account actions menu" : "ھېسابات ھەرىكەت تىزىملىكى",
- "Done" : "Done",
+ "Done" : "تامام",
"Edit" : "تەھرىر",
"Account management settings" : "ھېسابات باشقۇرۇش تەڭشەكلىرى",
"Visibility" : "كۆرۈنۈشچانلىقى",
@@ -808,48 +804,17 @@ 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" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى تېكىست بىر تەرەپ قىلىش ئىقتىدارى بىلەن تەمىنلىمەيدۇ",
+ "- 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" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ",
- "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 نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "سىز <strong> {usage} </strong> نىڭ <strong> {totalSpace} </strong> نى ئىشلىتىۋاتىسىز (<strong> {usageRelative}% </strong>)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ug.json b/apps/settings/l10n/ug.json
index 82d08c5236f..7b3529fef2c 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 نى قوزغىتىش تەۋسىيە قىلىنىدۇ.",
@@ -413,7 +412,7 @@
"{index} of {total}" : "{index} of {total}",
"Daemon" : "Daemon",
"Deploy Daemon" : "Daemon نى ئورۇنلاشتۇرۇڭ",
- "Type" : "تىپ",
+ "Type" : "Type",
"Display Name" : "كۆرسىتىش ئىسمى",
"GPUs support" : "GPUs نى قوللايدۇ",
"Compute device" : "ھېسابلاش ئۈسكۈنىسى",
@@ -462,7 +461,7 @@
"Marked for remote wipe" : "يىراقتىن سۈرتۈشكە بەلگە قويۇلغان",
"Device settings" : "ئۈسكۈنىنىڭ تەڭشىكى",
"Allow filesystem access" : "ھۆججەت سىستېمىسىنىڭ زىيارەت قىلىشىغا يول قويۇڭ",
- "Rename" : "ئات ئۆزگەرت",
+ "Rename" : "ئىسىم ئۆزگەرتىش",
"Revoke" : "بىكار قىلىش",
"Wipe device" : "ئۈسكۈنىنى سۈرتۈڭ",
"Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "بۇ بەلگە ئەمەلدىن قالدۇرۇلسا ئۈسكۈنىڭىزنىڭ سۈرتۈلۈشىنىڭ ئالدىنى ئالىدۇ.",
@@ -516,15 +515,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" : "گۇرۇپپا ئۆچۈرۈلگەنلىكىنى جەزملەشتۈرۈڭ",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "سىز «{group}» گۇرۇپپىسىنى ئۆچۈرمەكچى بولۇۋاتىسىز. ھېساباتلار ئۆچۈرۈلمەيدۇ.",
"Submit" : "يوللاڭ",
"Rename group" : "گۇرۇپپىنىڭ نامىنى ئۆزگەرتىش",
- "Remove group" : "گۇرۇپپىنى ئۆچۈرۈڭ",
"Current password" : "نۆۋەتتىكى ئىم",
"New password" : "يېڭى ئىم",
- "Change password" : "ئىم ئۆزگەرت",
+ "Change password" : "پارولنى ئۆزگەرتىڭ",
"Choose your profile picture" : "ئارخىپ رەسىمىڭىزنى تاللاڭ",
"Please select a valid png or jpg file" : "ئىناۋەتلىك png ياكى jpg ھۆججىتىنى تاللاڭ",
"Error setting profile picture" : "ئارخىپ رەسىمىنى تەڭشەشتە خاتالىق",
@@ -663,7 +659,7 @@
"Select account quota" : "ھېسابات نورمىسىنى تاللاڭ",
"Set the language" : "تىل بەلگىلەڭ",
"Toggle account actions menu" : "ھېسابات ھەرىكەت تىزىملىكى",
- "Done" : "Done",
+ "Done" : "تامام",
"Edit" : "تەھرىر",
"Account management settings" : "ھېسابات باشقۇرۇش تەڭشەكلىرى",
"Visibility" : "كۆرۈنۈشچانلىقى",
@@ -806,48 +802,17 @@
"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" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى تېكىست بىر تەرەپ قىلىش ئىقتىدارى بىلەن تەمىنلىمەيدۇ",
+ "- 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" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ",
- "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 نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "سىز <strong> {usage} </strong> نىڭ <strong> {totalSpace} </strong> نى ئىشلىتىۋاتىسىز (<strong> {usageRelative}% </strong>)"
},"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..74d5157563c 100644
--- a/apps/settings/l10n/uk.js
+++ b/apps/settings/l10n/uk.js
@@ -391,7 +391,7 @@ OC.L10N.register(
"Details" : "Деталі",
"All" : "Всі",
"Limit app usage to groups" : "Обмежити використання застосунку певними групами",
- "No results" : "Немає результатів",
+ "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. Це може викликати помилку в майбутньому.",
@@ -457,6 +457,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,14 +474,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" : "Підтвердіть вилучення групи",
"Submit" : "Продовжити",
"Rename group" : "Перейменувати групу",
- "Remove group" : "Вилучити групу",
+ "Delete 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" : "Помилка налаштування зображення профілю",
@@ -549,15 +548,15 @@ OC.L10N.register(
"Unable to update federation scope of additional {property}" : "Не вдається оновити область об'єднаної хмари додаткового {property}",
"Add additional email" : "Додайте додаткову електронну адресу",
"Add" : "Додати",
- "Create" : "Створити",
+ "Create" : "Додати",
"Change" : "Змінити",
- "Delete" : "Вилучити",
+ "Delete" : "Вилучати",
"Reshare" : "Надати у спільний доступ",
"Default language" : "Типова мова",
"Common languages" : "Основні мови",
"Other languages" : "Інші мови",
"Password change is disabled because the master key is disabled" : "Зміну пароля вимкнено, оскільки майстер-ключ відключений",
- "No accounts" : "Немає облікових записів",
+ "No accounts" : "Відсутні користувачі",
"Loading accounts …" : "Завантаження облікових записів ...",
"Manager" : "Менеджер",
"Set line manager" : "Встановити безпосереднього начальника",
@@ -573,7 +572,7 @@ OC.L10N.register(
"Set account groups" : "Додати користувача до груп",
"Admin of the following groups" : "Адміністратор таких груп",
"Set account as admin for …" : "Встановити адміністратором для ...",
- "Quota" : "Квота",
+ "Quota" : "Обмеження",
"Set account quota" : "Встановити квоту для користувача",
"Language" : "Мова",
"Set default language" : "Встановити типову мову",
@@ -753,47 +752,15 @@ 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 на стороні сервера або встановленими правилами брандмауера."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},
"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..eb02aff6dbb 100644
--- a/apps/settings/l10n/uk.json
+++ b/apps/settings/l10n/uk.json
@@ -389,7 +389,7 @@
"Details" : "Деталі",
"All" : "Всі",
"Limit app usage to groups" : "Обмежити використання застосунку певними групами",
- "No results" : "Немає результатів",
+ "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. Це може викликати помилку в майбутньому.",
@@ -455,6 +455,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,14 +472,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" : "Підтвердіть вилучення групи",
"Submit" : "Продовжити",
"Rename group" : "Перейменувати групу",
- "Remove group" : "Вилучити групу",
+ "Delete 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" : "Помилка налаштування зображення профілю",
@@ -547,15 +546,15 @@
"Unable to update federation scope of additional {property}" : "Не вдається оновити область об'єднаної хмари додаткового {property}",
"Add additional email" : "Додайте додаткову електронну адресу",
"Add" : "Додати",
- "Create" : "Створити",
+ "Create" : "Додати",
"Change" : "Змінити",
- "Delete" : "Вилучити",
+ "Delete" : "Вилучати",
"Reshare" : "Надати у спільний доступ",
"Default language" : "Типова мова",
"Common languages" : "Основні мови",
"Other languages" : "Інші мови",
"Password change is disabled because the master key is disabled" : "Зміну пароля вимкнено, оскільки майстер-ключ відключений",
- "No accounts" : "Немає облікових записів",
+ "No accounts" : "Відсутні користувачі",
"Loading accounts …" : "Завантаження облікових записів ...",
"Manager" : "Менеджер",
"Set line manager" : "Встановити безпосереднього начальника",
@@ -571,7 +570,7 @@
"Set account groups" : "Додати користувача до груп",
"Admin of the following groups" : "Адміністратор таких груп",
"Set account as admin for …" : "Встановити адміністратором для ...",
- "Quota" : "Квота",
+ "Quota" : "Обмеження",
"Set account quota" : "Встановити квоту для користувача",
"Language" : "Мова",
"Set default language" : "Встановити типову мову",
@@ -751,47 +750,15 @@
"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 на стороні сервера або встановленими правилами брандмауера."
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)"
},"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..1916d2459a5 100644
--- a/apps/settings/l10n/vi.js
+++ b/apps/settings/l10n/vi.js
@@ -205,7 +205,7 @@ OC.L10N.register(
"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",
+ "Details" : "Chi tiết",
"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ả",
@@ -268,14 +268,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",
"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ơ",
@@ -329,8 +326,8 @@ OC.L10N.register(
"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",
+ "Create" : "Tạo",
+ "Change" : "Thay đổi",
"Delete" : "Xóa",
"Reshare" : "Chia sẻ lại",
"Default language" : "Ngôn ngữ mặc định",
@@ -338,7 +335,6 @@ OC.L10N.register(
"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)",
@@ -346,7 +342,7 @@ OC.L10N.register(
"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",
+ "Total rows summary" : "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",
@@ -373,7 +369,7 @@ OC.L10N.register(
"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",
+ "Done" : "Hoàn tất",
"Edit" : "Chỉnh sửa",
"Visibility" : "Hiển thị",
"Show language" : "Hiển thị ngôn ngữ",
@@ -465,38 +461,9 @@ 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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Bạn đang sử dụng {usage} trên {totalSpace} ({usageRelative}%)"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/vi.json b/apps/settings/l10n/vi.json
index 26144a3a72e..ee25e2dacfa 100644
--- a/apps/settings/l10n/vi.json
+++ b/apps/settings/l10n/vi.json
@@ -203,7 +203,7 @@
"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",
+ "Details" : "Chi tiết",
"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ả",
@@ -266,14 +266,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",
"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ơ",
@@ -327,8 +324,8 @@
"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",
+ "Create" : "Tạo",
+ "Change" : "Thay đổi",
"Delete" : "Xóa",
"Reshare" : "Chia sẻ lại",
"Default language" : "Ngôn ngữ mặc định",
@@ -336,7 +333,6 @@
"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)",
@@ -344,7 +340,7 @@
"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",
+ "Total rows summary" : "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",
@@ -371,7 +367,7 @@
"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",
+ "Done" : "Hoàn tất",
"Edit" : "Chỉnh sửa",
"Visibility" : "Hiển thị",
"Show language" : "Hiển thị ngôn ngữ",
@@ -463,38 +459,9 @@
"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"
+ "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Bạn đang sử dụng {usage} trên {totalSpace} ({usageRelative}%)"
},"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..6b9f224f47f 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\" 被禁用,这会阻止检查临时目录中是否有足够的空间。",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud 设置",
"Unified task processing" : "统一任务处理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AI 任务可以由不同的应用程序执行。在这里您可以设置哪个应用程序应该用于哪个任务。",
+ "Allow AI usage for guest users" : "允许访客用户使用 AI",
"Task:" : "任务:",
"Enable" : "启用",
"None of your currently installed apps provide Task processing functionality" : "您当前安装的应用程序均不提供任务处理功能",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "允许群组共享",
"Restrict users to only share with users in their groups" : "限制用户只与他们组中的用户共享",
"Ignore the following groups when checking group membership" : "检查组成员身份时忽略以下组",
+ "Allow users to preview files even if download is disabled" : "即使禁用下载,也允许用户预览文件",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "用户仍然可以屏幕截图或录制屏幕。这并不能提供任何明确的保护。",
"Allow users to share via link and emails" : "允许用户通过链接和电子邮件共享",
"Allow public uploads" : "允许公开上传",
"Always ask for a password" : "始终要求输入密码",
@@ -486,7 +492,7 @@ OC.L10N.register(
"Admin documentation" : "管理员文档",
"Developer documentation" : "开发者文档",
"Details" : "详情",
- "All" : "全部",
+ "All" : "所有",
"Limit app usage to groups" : "限制可使用应用的分组",
"No results" : "没有结果",
"Update to {version}" : "更新至 {version}",
@@ -502,12 +508,12 @@ OC.L10N.register(
"Resources" : "资源",
"Documentation" : "文档",
"Interact" : "交互",
- "Report a bug" : "报告问题",
+ "Report a bug" : "报告 Bug",
"Request feature" : "请求功能",
"Ask questions or discuss" : "提问或讨论",
"Rate the app" : "对应用进行评分",
"Rate" : "评价",
- "Changelog" : "更改日志",
+ "Changelog" : "更新日志",
"Google Chrome for Android" : "Android 版 Google Chrome",
"{productName} iOS app" : "{productName} iOS 应用",
"{productName} Android app" : "{productName} 安卓应用",
@@ -532,7 +538,7 @@ OC.L10N.register(
"Devices & sessions" : "设备和活动链接",
"Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的网页版,桌面和移动客户端。",
"Error while creating device token" : "创建设备令牌时出错",
- "App name" : "应用名",
+ "App name" : "应用的名称",
"Create new app password" : "创建新应用密码",
"App password copied!" : "应用程序密码已复制!",
"Copy app password" : "复制应用程序密码",
@@ -561,6 +567,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,12 +590,12 @@ 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}”。账号将不会被删除。",
"Submit" : "提交",
"Rename group" : "重命名分组",
- "Remove group" : "删除分组",
+ "Delete group" : "删除群组",
"Current password" : "当前密码",
"New password" : "新密码",
"Change password" : "修改密码",
@@ -624,7 +631,7 @@ OC.L10N.register(
"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 update additional email address" : "无法更新附加电子邮件地址",
"Unable to delete additional email address" : "无法删除附加电邮地址",
"Primary email for password reset and notifications" : "用于重设密码和通知的主邮件",
"No email address set" : "尚未设置 Email 地址",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "她",
"he/him" : "他",
"they/them" : "他们",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代词。例如 {pronounsExample}",
"Your role" : "您的角色",
"Your X (formerly Twitter) handle" : "您的X(原Twitter)用户名",
"Your website" : "您的网站",
@@ -733,7 +741,7 @@ OC.L10N.register(
"Loading account …" : "正在加载账号…",
"Change display name" : "更改显示名称",
"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" : "设置新电子邮件地址",
"Add account to group" : "将账号添加到组",
"Set account as admin for" : "将账号设置为管理员",
@@ -749,7 +757,7 @@ OC.L10N.register(
"Show storage path" : "显示存储路径",
"Show first login" : "显示首次登录",
"Show last login" : "显示最后登录",
- "Sorting" : "正在排序",
+ "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." : "出于性能原因,排序仅适用于当前加载的群组。当您在列表中导航或搜索时,将加载群组。",
@@ -888,51 +896,18 @@ 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" : "您当前安装的应用程序均不提供文本处理功能",
+ "- 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" : "设置共享的默认截止日期",
- "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 不匹配或出站防火墙规则的结果。",
- "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" : "无法加载包含详情的子管理员群组"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json
index 91535dacb4f..997db288cc4 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\" 被禁用,这会阻止检查临时目录中是否有足够的空间。",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud 设置",
"Unified task processing" : "统一任务处理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "AI 任务可以由不同的应用程序执行。在这里您可以设置哪个应用程序应该用于哪个任务。",
+ "Allow AI usage for guest users" : "允许访客用户使用 AI",
"Task:" : "任务:",
"Enable" : "启用",
"None of your currently installed apps provide Task processing functionality" : "您当前安装的应用程序均不提供任务处理功能",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "允许群组共享",
"Restrict users to only share with users in their groups" : "限制用户只与他们组中的用户共享",
"Ignore the following groups when checking group membership" : "检查组成员身份时忽略以下组",
+ "Allow users to preview files even if download is disabled" : "即使禁用下载,也允许用户预览文件",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "用户仍然可以屏幕截图或录制屏幕。这并不能提供任何明确的保护。",
"Allow users to share via link and emails" : "允许用户通过链接和电子邮件共享",
"Allow public uploads" : "允许公开上传",
"Always ask for a password" : "始终要求输入密码",
@@ -484,7 +490,7 @@
"Admin documentation" : "管理员文档",
"Developer documentation" : "开发者文档",
"Details" : "详情",
- "All" : "全部",
+ "All" : "所有",
"Limit app usage to groups" : "限制可使用应用的分组",
"No results" : "没有结果",
"Update to {version}" : "更新至 {version}",
@@ -500,12 +506,12 @@
"Resources" : "资源",
"Documentation" : "文档",
"Interact" : "交互",
- "Report a bug" : "报告问题",
+ "Report a bug" : "报告 Bug",
"Request feature" : "请求功能",
"Ask questions or discuss" : "提问或讨论",
"Rate the app" : "对应用进行评分",
"Rate" : "评价",
- "Changelog" : "更改日志",
+ "Changelog" : "更新日志",
"Google Chrome for Android" : "Android 版 Google Chrome",
"{productName} iOS app" : "{productName} iOS 应用",
"{productName} Android app" : "{productName} 安卓应用",
@@ -530,7 +536,7 @@
"Devices & sessions" : "设备和活动链接",
"Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的网页版,桌面和移动客户端。",
"Error while creating device token" : "创建设备令牌时出错",
- "App name" : "应用名",
+ "App name" : "应用的名称",
"Create new app password" : "创建新应用密码",
"App password copied!" : "应用程序密码已复制!",
"Copy app password" : "复制应用程序密码",
@@ -559,6 +565,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,12 +588,12 @@
"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}”。账号将不会被删除。",
"Submit" : "提交",
"Rename group" : "重命名分组",
- "Remove group" : "删除分组",
+ "Delete group" : "删除群组",
"Current password" : "当前密码",
"New password" : "新密码",
"Change password" : "修改密码",
@@ -622,7 +629,7 @@
"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 update additional email address" : "无法更新附加电子邮件地址",
"Unable to delete additional email address" : "无法删除附加电邮地址",
"Primary email for password reset and notifications" : "用于重设密码和通知的主邮件",
"No email address set" : "尚未设置 Email 地址",
@@ -650,6 +657,7 @@
"she/her" : "她",
"he/him" : "他",
"they/them" : "他们",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代词。例如 {pronounsExample}",
"Your role" : "您的角色",
"Your X (formerly Twitter) handle" : "您的X(原Twitter)用户名",
"Your website" : "您的网站",
@@ -731,7 +739,7 @@
"Loading account …" : "正在加载账号…",
"Change display name" : "更改显示名称",
"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" : "设置新电子邮件地址",
"Add account to group" : "将账号添加到组",
"Set account as admin for" : "将账号设置为管理员",
@@ -747,7 +755,7 @@
"Show storage path" : "显示存储路径",
"Show first login" : "显示首次登录",
"Show last login" : "显示最后登录",
- "Sorting" : "正在排序",
+ "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." : "出于性能原因,排序仅适用于当前加载的群组。当您在列表中导航或搜索时,将加载群组。",
@@ -886,51 +894,18 @@
"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" : "您当前安装的应用程序均不提供文本处理功能",
+ "- 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" : "设置共享的默认截止日期",
- "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 不匹配或出站防火墙规则的结果。",
- "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" : "无法加载包含详情的子管理员群组"
},"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..b5db984d060 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」已停用,這會導致無法檢查臨時目錄中的剩餘空間。",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud 設定",
"Unified task processing" : "統一任務處理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "人工智能任務可以由不同的應用程式來實現。 您可以在此處設置哪個應用程式應用於哪個任務。",
+ "Allow AI usage for guest users" : "允許訪客使用者使用 AI",
"Task:" : "任務︰",
"Enable" : "啟用",
"None of your currently installed apps provide Task processing functionality" : "您目前已安裝的應用程式均不提供任務處理功能",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "允許與群組分享",
"Restrict users to only share with users in their groups" : "限制用戶僅能與他們群組中的其他用戶分享",
"Ignore the following groups when checking group membership" : "檢查群組成員身分時不用理會以下群組",
+ "Allow users to preview files even if download is disabled" : "即使停用下載,也允許使用者預覽檔案",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "用戶仍可截圖或錄製畫面。這並不能提供任何確切的保護。",
"Allow users to share via link and emails" : "允許用戶透過連結和電郵分享",
"Allow public uploads" : "允許公開上傳",
"Always ask for a password" : "要求輸入密碼",
@@ -485,8 +491,8 @@ OC.L10N.register(
"Usage documentation" : "使用手冊",
"Admin documentation" : "管理員使用手冊",
"Developer documentation" : "開發人員使用手冊",
- "Details" : "詳細資訊",
- "All" : "所有",
+ "Details" : "細節",
+ "All" : "全部",
"Limit app usage to groups" : "限制特定群組使用應用程式",
"No results" : "沒有結果",
"Update to {version}" : "更新到 {version}",
@@ -507,7 +513,7 @@ OC.L10N.register(
"Ask questions or discuss" : "發問或討論",
"Rate the app" : "評價此應用程式",
"Rate" : "評價",
- "Changelog" : "軟件更新紀錄",
+ "Changelog" : "更新紀錄",
"Google Chrome for Android" : "Android 版 Google Chrome",
"{productName} iOS app" : "{productName} iOS 應用程式",
"{productName} Android app" : "{productName} Android 應用程式",
@@ -561,6 +567,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,12 +590,12 @@ 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}」。帳戶將不會被刪除。",
"Submit" : "遞交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
+ "Delete group" : "刪除群組",
"Current password" : "目前密碼",
"New password" : "新密碼",
"Change password" : "更改密碼",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "她",
"he/him" : "他",
"they/them" : "他們",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代名詞。例如 {pronounsExample}",
"Your role" : "你的角色",
"Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
"Your website" : "您的網站",
@@ -662,9 +670,9 @@ OC.L10N.register(
"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" : "更改",
+ "Add" : "添加",
+ "Create" : "創建",
+ "Change" : "變更",
"Delete" : "刪除",
"Reshare" : "重新分享",
"Default language" : "預設語言",
@@ -764,7 +772,7 @@ OC.L10N.register(
"Passwordless authentication requires a secure connection." : "無密碼身分驗證需要安全連線。",
"Add WebAuthn device" : "新增 WebAuthn 裝置",
"Please authorize your WebAuthn device." : "請驗證您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置……",
+ "Adding your device …" : "正在新增你的裝置…",
"Unnamed device" : "未命名的裝置",
"Passwordless Authentication" : "無密碼驗證",
"Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳戶的無密碼驗證",
@@ -888,51 +896,18 @@ 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" : "您目前安裝的應用程式均不提供文字處理功能",
+ "- 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" : "設定分享的預設到期日",
- "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 不符或連出防火牆規則造成的。",
- "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" : "無法加載包含詳情的副管理員群組"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json
index e061f406203..4c0f6e21589 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」已停用,這會導致無法檢查臨時目錄中的剩餘空間。",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud 設定",
"Unified task processing" : "統一任務處理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "人工智能任務可以由不同的應用程式來實現。 您可以在此處設置哪個應用程式應用於哪個任務。",
+ "Allow AI usage for guest users" : "允許訪客使用者使用 AI",
"Task:" : "任務︰",
"Enable" : "啟用",
"None of your currently installed apps provide Task processing functionality" : "您目前已安裝的應用程式均不提供任務處理功能",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "允許與群組分享",
"Restrict users to only share with users in their groups" : "限制用戶僅能與他們群組中的其他用戶分享",
"Ignore the following groups when checking group membership" : "檢查群組成員身分時不用理會以下群組",
+ "Allow users to preview files even if download is disabled" : "即使停用下載,也允許使用者預覽檔案",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "用戶仍可截圖或錄製畫面。這並不能提供任何確切的保護。",
"Allow users to share via link and emails" : "允許用戶透過連結和電郵分享",
"Allow public uploads" : "允許公開上傳",
"Always ask for a password" : "要求輸入密碼",
@@ -483,8 +489,8 @@
"Usage documentation" : "使用手冊",
"Admin documentation" : "管理員使用手冊",
"Developer documentation" : "開發人員使用手冊",
- "Details" : "詳細資訊",
- "All" : "所有",
+ "Details" : "細節",
+ "All" : "全部",
"Limit app usage to groups" : "限制特定群組使用應用程式",
"No results" : "沒有結果",
"Update to {version}" : "更新到 {version}",
@@ -505,7 +511,7 @@
"Ask questions or discuss" : "發問或討論",
"Rate the app" : "評價此應用程式",
"Rate" : "評價",
- "Changelog" : "軟件更新紀錄",
+ "Changelog" : "更新紀錄",
"Google Chrome for Android" : "Android 版 Google Chrome",
"{productName} iOS app" : "{productName} iOS 應用程式",
"{productName} Android app" : "{productName} Android 應用程式",
@@ -559,6 +565,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,12 +588,12 @@
"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}」。帳戶將不會被刪除。",
"Submit" : "遞交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
+ "Delete group" : "刪除群組",
"Current password" : "目前密碼",
"New password" : "新密碼",
"Change password" : "更改密碼",
@@ -650,6 +657,7 @@
"she/her" : "她",
"he/him" : "他",
"they/them" : "他們",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代名詞。例如 {pronounsExample}",
"Your role" : "你的角色",
"Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
"Your website" : "您的網站",
@@ -660,9 +668,9 @@
"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" : "更改",
+ "Add" : "添加",
+ "Create" : "創建",
+ "Change" : "變更",
"Delete" : "刪除",
"Reshare" : "重新分享",
"Default language" : "預設語言",
@@ -762,7 +770,7 @@
"Passwordless authentication requires a secure connection." : "無密碼身分驗證需要安全連線。",
"Add WebAuthn device" : "新增 WebAuthn 裝置",
"Please authorize your WebAuthn device." : "請驗證您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置……",
+ "Adding your device …" : "正在新增你的裝置…",
"Unnamed device" : "未命名的裝置",
"Passwordless Authentication" : "無密碼驗證",
"Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳戶的無密碼驗證",
@@ -886,51 +894,18 @@
"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" : "您目前安裝的應用程式均不提供文字處理功能",
+ "- 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" : "設定分享的預設到期日",
- "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 不符或連出防火牆規則造成的。",
- "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" : "無法加載包含詳情的副管理員群組"
},"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..922d3ba25a4 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」已停用,這會阻止檢查暫存目錄中是否有足夠的空間。",
@@ -340,6 +343,7 @@ OC.L10N.register(
"Nextcloud settings" : "Nextcloud 設定",
"Unified task processing" : "統一任務處理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "人工智慧任務可以透過不同的應用程式實作。您可以在此處設定要使用哪個應用程式。",
+ "Allow AI usage for guest users" : "允許訪客使用者使用 AI",
"Task:" : "任務:",
"Enable" : "啟用",
"None of your currently installed apps provide Task processing functionality" : "您目前安裝的應用程式均不提供任務處理功能",
@@ -362,6 +366,8 @@ OC.L10N.register(
"Allow sharing with groups" : "允許與群組分享",
"Restrict users to only share with users in their groups" : "限制使用者僅能與他們群組中的其他使用者分享",
"Ignore the following groups when checking group membership" : "檢查群組成員身分時忽略以下群組",
+ "Allow users to preview files even if download is disabled" : "即使停用下載,也允許使用者預覽檔案",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "使用者仍可截圖或錄製畫面。這並不能提供任何確切的保護。",
"Allow users to share via link and emails" : "允許使用者透過連結與電子郵件分享",
"Allow public uploads" : "允許公開上傳",
"Always ask for a password" : "總是詢問密碼",
@@ -485,10 +491,10 @@ OC.L10N.register(
"Usage documentation" : "使用方式說明文件",
"Admin documentation" : "管理員文件",
"Developer documentation" : "開發者文件",
- "Details" : "詳細資料",
- "All" : "所有",
+ "Details" : "詳細資訊",
+ "All" : "全部",
"Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
+ "No results" : "沒有符合的結果",
"Update to {version}" : "更新到 {version}",
"Deploy options" : "部署選項",
"Default Deploy daemon is not accessible" : "預設部署幕後程式無法使用",
@@ -561,6 +567,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,12 +590,12 @@ 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}」。帳號將不會被刪除。",
"Submit" : "提交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
+ "Delete group" : "刪除群組",
"Current password" : "目前密碼",
"New password" : "新密碼",
"Change password" : "變更密碼",
@@ -652,6 +659,7 @@ OC.L10N.register(
"she/her" : "她",
"he/him" : "他",
"they/them" : "他們",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代名詞。例如 {pronounsExample}",
"Your role" : "您的職位",
"Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
"Your website" : "您的網站",
@@ -674,7 +682,7 @@ OC.L10N.register(
"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)" : "帳號名稱(必填)",
@@ -690,7 +698,7 @@ OC.L10N.register(
"Set account groups" : "設定帳號群組",
"Admin of the following groups" : "以下群組的管理員",
"Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
+ "Quota" : "容量限額",
"Set account quota" : "設定帳號容量限制",
"Language" : "語言",
"Set default language" : "設定預設語言",
@@ -888,51 +896,18 @@ 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" : "您目前安裝的應用程式均不提供文字處理功能",
+ "- 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" : "設定分享的預設到期日",
- "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 不符或連出防火牆規則造成的。",
- "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" : "載入包含詳細資訊的子管理員群組失敗"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json
index 7dfbc9616dd..8d4cbc9dae0 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」已停用,這會阻止檢查暫存目錄中是否有足夠的空間。",
@@ -338,6 +341,7 @@
"Nextcloud settings" : "Nextcloud 設定",
"Unified task processing" : "統一任務處理",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "人工智慧任務可以透過不同的應用程式實作。您可以在此處設定要使用哪個應用程式。",
+ "Allow AI usage for guest users" : "允許訪客使用者使用 AI",
"Task:" : "任務:",
"Enable" : "啟用",
"None of your currently installed apps provide Task processing functionality" : "您目前安裝的應用程式均不提供任務處理功能",
@@ -360,6 +364,8 @@
"Allow sharing with groups" : "允許與群組分享",
"Restrict users to only share with users in their groups" : "限制使用者僅能與他們群組中的其他使用者分享",
"Ignore the following groups when checking group membership" : "檢查群組成員身分時忽略以下群組",
+ "Allow users to preview files even if download is disabled" : "即使停用下載,也允許使用者預覽檔案",
+ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "使用者仍可截圖或錄製畫面。這並不能提供任何確切的保護。",
"Allow users to share via link and emails" : "允許使用者透過連結與電子郵件分享",
"Allow public uploads" : "允許公開上傳",
"Always ask for a password" : "總是詢問密碼",
@@ -483,10 +489,10 @@
"Usage documentation" : "使用方式說明文件",
"Admin documentation" : "管理員文件",
"Developer documentation" : "開發者文件",
- "Details" : "詳細資料",
- "All" : "所有",
+ "Details" : "詳細資訊",
+ "All" : "全部",
"Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
+ "No results" : "沒有符合的結果",
"Update to {version}" : "更新到 {version}",
"Deploy options" : "部署選項",
"Default Deploy daemon is not accessible" : "預設部署幕後程式無法使用",
@@ -559,6 +565,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,12 +588,12 @@
"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}」。帳號將不會被刪除。",
"Submit" : "提交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
+ "Delete group" : "刪除群組",
"Current password" : "目前密碼",
"New password" : "新密碼",
"Change password" : "變更密碼",
@@ -650,6 +657,7 @@
"she/her" : "她",
"he/him" : "他",
"they/them" : "他們",
+ "Your pronouns. E.g. {pronounsExample}" : "您的代名詞。例如 {pronounsExample}",
"Your role" : "您的職位",
"Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
"Your website" : "您的網站",
@@ -672,7 +680,7 @@
"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)" : "帳號名稱(必填)",
@@ -688,7 +696,7 @@
"Set account groups" : "設定帳號群組",
"Admin of the following groups" : "以下群組的管理員",
"Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
+ "Quota" : "容量限額",
"Set account quota" : "設定帳號容量限制",
"Language" : "語言",
"Set default language" : "設定預設語言",
@@ -886,51 +894,18 @@
"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" : "您目前安裝的應用程式均不提供文字處理功能",
+ "- 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" : "設定分享的預設到期日",
- "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 不符或連出防火牆規則造成的。",
- "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" : "載入包含詳細資訊的子管理員群組失敗"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/lib/Activity/GroupProvider.php b/apps/settings/lib/Activity/GroupProvider.php
index 72c9ca0d719..2d492265cf4 100644
--- a/apps/settings/lib/Activity/GroupProvider.php
+++ b/apps/settings/lib/Activity/GroupProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Activity/GroupSetting.php b/apps/settings/lib/Activity/GroupSetting.php
index 9433bdb25d2..917f4a7ef26 100644
--- a/apps/settings/lib/Activity/GroupSetting.php
+++ b/apps/settings/lib/Activity/GroupSetting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Activity/SecurityFilter.php b/apps/settings/lib/Activity/SecurityFilter.php
index 5ff6685f449..9a32e82a984 100644
--- a/apps/settings/lib/Activity/SecurityFilter.php
+++ b/apps/settings/lib/Activity/SecurityFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Activity/SecuritySetting.php b/apps/settings/lib/Activity/SecuritySetting.php
index 997e63a97b1..9226b5aea5b 100644
--- a/apps/settings/lib/Activity/SecuritySetting.php
+++ b/apps/settings/lib/Activity/SecuritySetting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Activity/Setting.php b/apps/settings/lib/Activity/Setting.php
index 621dadda11d..f9c659594d6 100644
--- a/apps/settings/lib/Activity/Setting.php
+++ b/apps/settings/lib/Activity/Setting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/AISettingsController.php b/apps/settings/lib/Controller/AISettingsController.php
index e08ec616e80..a3b0a874987 100644
--- a/apps/settings/lib/Controller/AISettingsController.php
+++ b/apps/settings/lib/Controller/AISettingsController.php
@@ -38,7 +38,7 @@ class AISettingsController extends Controller {
*/
#[AuthorizedAdminSetting(settings: ArtificialIntelligence::class)]
public function update($settings) {
- $keys = ['ai.stt_provider', 'ai.textprocessing_provider_preferences', 'ai.taskprocessing_provider_preferences','ai.taskprocessing_type_preferences', 'ai.translation_provider_preferences', 'ai.text2image_provider'];
+ $keys = ['ai.stt_provider', 'ai.textprocessing_provider_preferences', 'ai.taskprocessing_provider_preferences','ai.taskprocessing_type_preferences', 'ai.translation_provider_preferences', 'ai.text2image_provider', 'ai.taskprocessing_guests'];
foreach ($keys as $key) {
if (!isset($settings[$key])) {
continue;
diff --git a/apps/settings/lib/Controller/AdminSettingsController.php b/apps/settings/lib/Controller/AdminSettingsController.php
index 2b731c5cdde..15e2c392148 100644
--- a/apps/settings/lib/Controller/AdminSettingsController.php
+++ b/apps/settings/lib/Controller/AdminSettingsController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Controller/AppSettingsController.php b/apps/settings/lib/Controller/AppSettingsController.php
index df563ac46b7..3feb9c0326c 100644
--- a/apps/settings/lib/Controller/AppSettingsController.php
+++ b/apps/settings/lib/Controller/AppSettingsController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/settings/lib/Controller/AuthorizedGroupController.php b/apps/settings/lib/Controller/AuthorizedGroupController.php
index ad01b590440..82a1ca4703e 100644
--- a/apps/settings/lib/Controller/AuthorizedGroupController.php
+++ b/apps/settings/lib/Controller/AuthorizedGroupController.php
@@ -57,7 +57,7 @@ class AuthorizedGroupController extends Controller {
$this->authorizedGroupService->create($groupData['gid'], $class);
}
}
-
+
return new DataResponse(['valid' => true]);
}
}
diff --git a/apps/settings/lib/Controller/ChangePasswordController.php b/apps/settings/lib/Controller/ChangePasswordController.php
index 2154a9ab11b..a874a47c16a 100644
--- a/apps/settings/lib/Controller/ChangePasswordController.php
+++ b/apps/settings/lib/Controller/ChangePasswordController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -125,9 +126,9 @@ class ChangePasswordController extends Controller {
$currentUser = $this->userSession->getUser();
$targetUser = $this->userManager->get($username);
- if ($currentUser === null || $targetUser === null ||
- !($this->groupManager->isAdmin($this->userId) ||
- $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
+ if ($currentUser === null || $targetUser === null
+ || !($this->groupManager->isAdmin($this->userId)
+ || $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
) {
return new JSONResponse([
'status' => 'error',
diff --git a/apps/settings/lib/Controller/CommonSettingsTrait.php b/apps/settings/lib/Controller/CommonSettingsTrait.php
index 56760c10f81..75d2b1f2f9e 100644
--- a/apps/settings/lib/Controller/CommonSettingsTrait.php
+++ b/apps/settings/lib/Controller/CommonSettingsTrait.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -144,6 +145,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/Controller/MailSettingsController.php b/apps/settings/lib/Controller/MailSettingsController.php
index 13871bc13b6..f1e3b8032dc 100644
--- a/apps/settings/lib/Controller/MailSettingsController.php
+++ b/apps/settings/lib/Controller/MailSettingsController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/settings/lib/Controller/PersonalSettingsController.php b/apps/settings/lib/Controller/PersonalSettingsController.php
index 0a87181c7d7..340ca3f93eb 100644
--- a/apps/settings/lib/Controller/PersonalSettingsController.php
+++ b/apps/settings/lib/Controller/PersonalSettingsController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php
index a720425ab3c..6cd596d6cc8 100644
--- a/apps/settings/lib/Controller/UsersController.php
+++ b/apps/settings/lib/Controller/UsersController.php
@@ -115,8 +115,8 @@ class UsersController extends Controller {
$sortGroupsBy = MetaData::SORT_GROUPNAME;
} else {
if ($this->appManager->isEnabledForUser('user_ldap')) {
- $isLDAPUsed =
- $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy');
+ $isLDAPUsed
+ = $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy');
if ($isLDAPUsed) {
// LDAP user count can be slow, so we sort by group name here
$sortGroupsBy = MetaData::SORT_GROUPNAME;
diff --git a/apps/settings/lib/Hooks.php b/apps/settings/lib/Hooks.php
index d4ee93597e2..f59013ca5e1 100644
--- a/apps/settings/lib/Hooks.php
+++ b/apps/settings/lib/Hooks.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -111,8 +112,8 @@ class Hooks {
* @throws \BadMethodCallException
*/
public function onChangeEmail(IUser $user, $oldMailAddress) {
- if ($oldMailAddress === $user->getEMailAddress() ||
- $user->getLastLogin() === 0) {
+ if ($oldMailAddress === $user->getEMailAddress()
+ || $user->getLastLogin() === 0) {
// Email didn't really change or user didn't login,
// so don't create activities and emails.
return;
diff --git a/apps/settings/lib/Listener/MailProviderListener.php b/apps/settings/lib/Listener/MailProviderListener.php
index 974378c0006..61446f1e6cb 100644
--- a/apps/settings/lib/Listener/MailProviderListener.php
+++ b/apps/settings/lib/Listener/MailProviderListener.php
@@ -38,11 +38,11 @@ class MailProviderListener implements IEventListener {
$this->handleSetValue($event);
return;
}
-
+
}
private function handleGetValue(DeclarativeSettingsGetValueEvent $event): void {
-
+
if ($event->getFieldId() === 'mail_providers_enabled') {
$event->setValue((int)$this->config->getValueBool('core', 'mail_providers_enabled', true));
}
diff --git a/apps/settings/lib/Mailer/NewUserMailHelper.php b/apps/settings/lib/Mailer/NewUserMailHelper.php
index bd4de2b2087..202495a020e 100644
--- a/apps/settings/lib/Mailer/NewUserMailHelper.php
+++ b/apps/settings/lib/Mailer/NewUserMailHelper.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/Search/AppSearch.php b/apps/settings/lib/Search/AppSearch.php
index fbc799e6f04..19c2bce5451 100644
--- a/apps/settings/lib/Search/AppSearch.php
+++ b/apps/settings/lib/Search/AppSearch.php
@@ -47,8 +47,8 @@ class AppSearch implements IProvider {
$result = [];
foreach ($entries as $entry) {
if (
- stripos($entry['name'], $term) === false &&
- stripos($entry['id'], $term) === false
+ stripos($entry['name'], $term) === false
+ && stripos($entry['id'], $term) === false
) {
continue;
}
diff --git a/apps/settings/lib/Search/SectionSearch.php b/apps/settings/lib/Search/SectionSearch.php
index 08a6f9f76b0..52f0c9b08db 100644
--- a/apps/settings/lib/Search/SectionSearch.php
+++ b/apps/settings/lib/Search/SectionSearch.php
@@ -110,8 +110,8 @@ class SectionSearch implements IProvider {
foreach ($sections as $priority => $sectionsByPriority) {
foreach ($sectionsByPriority as $section) {
if (
- stripos($section->getName(), $query->getTerm()) === false &&
- stripos($section->getID(), $query->getTerm()) === false
+ stripos($section->getName(), $query->getTerm()) === false
+ && stripos($section->getID(), $query->getTerm()) === false
) {
continue;
}
diff --git a/apps/settings/lib/Sections/Admin/Delegation.php b/apps/settings/lib/Sections/Admin/Delegation.php
index 2a455f1e549..0dd3b48c20b 100644
--- a/apps/settings/lib/Sections/Admin/Delegation.php
+++ b/apps/settings/lib/Sections/Admin/Delegation.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Service/AuthorizedGroupService.php b/apps/settings/lib/Service/AuthorizedGroupService.php
index 20966446d61..15aca94198a 100644
--- a/apps/settings/lib/Service/AuthorizedGroupService.php
+++ b/apps/settings/lib/Service/AuthorizedGroupService.php
@@ -42,8 +42,8 @@ class AuthorizedGroupService {
* @throws NotFoundException
*/
private function handleException(\Exception $e): void {
- if ($e instanceof DoesNotExistException ||
- $e instanceof MultipleObjectsReturnedException) {
+ if ($e instanceof DoesNotExistException
+ || $e instanceof MultipleObjectsReturnedException) {
throw new NotFoundException('AuthorizedGroup not found');
} else {
throw $e;
diff --git a/apps/settings/lib/Settings/Admin/ArtificialIntelligence.php b/apps/settings/lib/Settings/Admin/ArtificialIntelligence.php
index 555d3c27313..78bec73382d 100644
--- a/apps/settings/lib/Settings/Admin/ArtificialIntelligence.php
+++ b/apps/settings/lib/Settings/Admin/ArtificialIntelligence.php
@@ -125,6 +125,7 @@ class ArtificialIntelligence implements IDelegatedSettings {
$taskProcessingTypeSettings[$taskTypeId] = true;
}
+
$this->initialState->provideInitialState('ai-stt-providers', $sttProviders);
$this->initialState->provideInitialState('ai-translation-providers', $translationProviders);
$this->initialState->provideInitialState('ai-text-processing-providers', $textProcessingProviders);
@@ -140,6 +141,7 @@ class ArtificialIntelligence implements IDelegatedSettings {
'ai.text2image_provider' => count($text2imageProviders) > 0 ? $text2imageProviders[0]['id'] : null,
'ai.taskprocessing_provider_preferences' => $taskProcessingSettings,
'ai.taskprocessing_type_preferences' => $taskProcessingTypeSettings,
+ 'ai.taskprocessing_guests' => false,
];
foreach ($settings as $key => $defaultValue) {
$value = $defaultValue;
@@ -158,7 +160,7 @@ class ArtificialIntelligence implements IDelegatedSettings {
}
continue;
}
-
+
switch ($key) {
case 'ai.taskprocessing_provider_preferences':
case 'ai.taskprocessing_type_preferences':
diff --git a/apps/settings/lib/Settings/Admin/Mail.php b/apps/settings/lib/Settings/Admin/Mail.php
index 566cdea310f..8bf2342a59c 100644
--- a/apps/settings/lib/Settings/Admin/Mail.php
+++ b/apps/settings/lib/Settings/Admin/Mail.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Settings/Admin/Overview.php b/apps/settings/lib/Settings/Admin/Overview.php
index 5db9d9533c4..355200372f1 100644
--- a/apps/settings/lib/Settings/Admin/Overview.php
+++ b/apps/settings/lib/Settings/Admin/Overview.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Settings/Admin/Security.php b/apps/settings/lib/Settings/Admin/Security.php
index 72485b8f8f3..c4efdb478c7 100644
--- a/apps/settings/lib/Settings/Admin/Security.php
+++ b/apps/settings/lib/Settings/Admin/Security.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php
index e001a7d00ea..3dede7fbdb4 100644
--- a/apps/settings/lib/Settings/Admin/Sharing.php
+++ b/apps/settings/lib/Settings/Admin/Sharing.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -72,6 +73,7 @@ class Sharing implements IDelegatedSettings {
'remoteExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_remote_expire_after_n_days', '7'),
'enforceRemoteExpireDate' => $this->getHumanBooleanConfig('core', 'shareapi_enforce_remote_expire_date'),
'allowCustomTokens' => $this->shareManager->allowCustomTokens(),
+ 'allowViewWithoutDownload' => $this->shareManager->allowViewWithoutDownload(),
];
$this->initialState->provideInitialState('sharingAppEnabled', $this->appManager->isEnabledForUser('files_sharing'));
diff --git a/apps/settings/lib/Settings/Personal/Additional.php b/apps/settings/lib/Settings/Personal/Additional.php
index c8b3fc66450..58fe08a63b7 100644
--- a/apps/settings/lib/Settings/Personal/Additional.php
+++ b/apps/settings/lib/Settings/Personal/Additional.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/Settings/Personal/ServerDevNotice.php b/apps/settings/lib/Settings/Personal/ServerDevNotice.php
index 71c83740b92..c9993484abd 100644
--- a/apps/settings/lib/Settings/Personal/ServerDevNotice.php
+++ b/apps/settings/lib/Settings/Personal/ServerDevNotice.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/lib/SetupChecks/DataDirectoryProtected.php b/apps/settings/lib/SetupChecks/DataDirectoryProtected.php
index 4280457ced0..e572c345079 100644
--- a/apps/settings/lib/SetupChecks/DataDirectoryProtected.php
+++ b/apps/settings/lib/SetupChecks/DataDirectoryProtected.php
@@ -66,6 +66,6 @@ class DataDirectoryProtected implements ISetupCheck {
return SetupResult::warning($this->l10n->t('Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory.') . "\n" . $this->serverConfigHelp());
}
return SetupResult::success();
-
+
}
}
diff --git a/apps/settings/lib/SetupChecks/JavaScriptModules.php b/apps/settings/lib/SetupChecks/JavaScriptModules.php
index e09dc459dc8..72f58405811 100644
--- a/apps/settings/lib/SetupChecks/JavaScriptModules.php
+++ b/apps/settings/lib/SetupChecks/JavaScriptModules.php
@@ -55,6 +55,6 @@ class JavaScriptModules implements ISetupCheck {
return SetupResult::warning($this->l10n->t('Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type.') . "\n" . $this->serverConfigHelp());
}
return SetupResult::error($this->l10n->t('Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.'));
-
+
}
}
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/PhpOpcacheSetup.php b/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
index 22605012058..83b7be1c390 100644
--- a/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
+++ b/apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
@@ -57,7 +57,7 @@ class PhpOpcacheSetup implements ISetupCheck {
} elseif ($this->iniGetWrapper->getBool('opcache.file_cache_only')) {
$recommendations[] = $this->l10n->t('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.');
} else {
- // Check whether opcache_get_status has been explicitly disabled an in case skip usage based checks
+ // Check whether opcache_get_status has been explicitly disabled and in case skip usage based checks
$disabledFunctions = $this->iniGetWrapper->getString('disable_functions');
if (isset($disabledFunctions) && str_contains($disabledFunctions, 'opcache_get_status')) {
return [$level, $recommendations];
@@ -70,29 +70,27 @@ class PhpOpcacheSetup implements ISetupCheck {
$level = 'error';
}
- // Recommend to raise value, if more than 90% of max value is reached
- if (
- empty($status['opcache_statistics']['max_cached_keys']) ||
- ($status['opcache_statistics']['num_cached_keys'] / $status['opcache_statistics']['max_cached_keys'] > 0.9)
- ) {
- $recommendations[] = $this->l10n->t('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".', [($this->iniGetWrapper->getNumeric('opcache.max_accelerated_files') ?: 'currently')]);
- }
-
- if (
- empty($status['memory_usage']['free_memory']) ||
- ($status['memory_usage']['used_memory'] / $status['memory_usage']['free_memory'] > 9)
- ) {
- $recommendations[] = $this->l10n->t('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".', [($this->iniGetWrapper->getNumeric('opcache.memory_consumption') ?: 'currently')]);
+ // Check whether OPcache is full, which can be either the overall OPcache size or limit of cached keys reached.
+ // If the limit of cached keys has been reached, num_cached_keys equals max_cached_keys. The recommendation contains this value instead of opcache.max_accelerated_files, since the effective limit is a next higher prime number: https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files
+ // Else, the remaining $status['memory_usage']['free_memory'] was too low to store another script. Aside of used_memory, this can be also due to wasted_memory, remaining cache keys from scripts changed on disk.
+ // Wasted memory is cleared only via opcache_reset(), or if $status['memory_usage']['current_wasted_percentage'] reached opcache.max_wasted_percentage, which triggers an engine restart and hence OPcache reset. Due to this complexity, we check for $status['cache_full'] only.
+ if ($status['cache_full'] === true) {
+ if ($status['opcache_statistics']['num_cached_keys'] === $status['opcache_statistics']['max_cached_keys']) {
+ $recommendations[] = $this->l10n->t('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".', [($status['opcache_statistics']['max_cached_keys'] ?: 'currently')]);
+ } else {
+ $recommendations[] = $this->l10n->t('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".', [($this->iniGetWrapper->getNumeric('opcache.memory_consumption') ?: 'currently')]);
+ }
}
+ // Interned strings buffer: recommend to raise size if more than 90% is used
$interned_strings_buffer = $this->iniGetWrapper->getNumeric('opcache.interned_strings_buffer') ?? 0;
$memory_consumption = $this->iniGetWrapper->getNumeric('opcache.memory_consumption') ?? 0;
if (
// Do not recommend to raise the interned strings buffer size above a quarter of the total OPcache size
- ($interned_strings_buffer < ($memory_consumption / 4)) &&
- (
- empty($status['interned_strings_usage']['free_memory']) ||
- ($status['interned_strings_usage']['used_memory'] / $status['interned_strings_usage']['free_memory'] > 9)
+ ($interned_strings_buffer < ($memory_consumption / 4))
+ && (
+ empty($status['interned_strings_usage']['free_memory'])
+ || ($status['interned_strings_usage']['used_memory'] / $status['interned_strings_usage']['free_memory'] > 9)
)
) {
$recommendations[] = $this->l10n->t('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".', [($this->iniGetWrapper->getNumeric('opcache.interned_strings_buffer') ?: 'currently')]);
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/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/AdminAI.vue b/apps/settings/src/components/AdminAI.vue
index afa08cd676e..044ebd9183e 100644
--- a/apps/settings/src/components/AdminAI.vue
+++ b/apps/settings/src/components/AdminAI.vue
@@ -6,6 +6,11 @@
<div class="ai-settings">
<NcSettingsSection :name="t('settings', 'Unified task processing')"
:description="t('settings', 'AI tasks can be implemented by different apps. Here you can set which app should be used for which task.')">
+ <NcCheckboxRadioSwitch v-model="settings['ai.taskprocessing_guests']"
+ type="switch"
+ @update:modelValue="saveChanges">
+ {{ t('settings', 'Allow AI usage for guest users') }}
+ </NcCheckboxRadioSwitch>
<template v-for="type in taskProcessingTaskTypes">
<div :key="type">
<h3>{{ t('settings', 'Task:') }} {{ type.name }}</h3>
diff --git a/apps/settings/src/components/AdminSettingsSharingForm.vue b/apps/settings/src/components/AdminSettingsSharingForm.vue
index 25dcbb7972d..1973781edee 100644
--- a/apps/settings/src/components/AdminSettingsSharingForm.vue
+++ b/apps/settings/src/components/AdminSettingsSharingForm.vue
@@ -27,6 +27,15 @@
:label="t('settings', 'Ignore the following groups when checking group membership')"
style="width: 100%" />
</div>
+ <NcCheckboxRadioSwitch :checked.sync="settings.allowViewWithoutDownload">
+ {{ t('settings', 'Allow users to preview files even if download is disabled') }}
+ </NcCheckboxRadioSwitch>
+ <NcNoteCard v-show="settings.allowViewWithoutDownload"
+ id="settings-sharing-api-view-without-download-hint"
+ class="sharing__note"
+ type="warning">
+ {{ t('settings', 'Users will still be able to screenshot or record the screen. This does not provide any definitive protection.') }}
+ </NcNoteCard>
</div>
<div v-show="settings.enabled" id="settings-sharing-api" class="sharing__section">
@@ -258,6 +267,7 @@ interface IShareSettings {
remoteExpireAfterNDays: string
enforceRemoteExpireDate: boolean
allowCustomTokens: boolean
+ allowViewWithoutDownload: boolean
}
export default defineComponent({
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/templates/settings/empty.php b/apps/settings/templates/settings/empty.php
index f7ae4113ac6..ce4477fa9df 100644
--- a/apps/settings/templates/settings/empty.php
+++ b/apps/settings/templates/settings/empty.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/tests/Activity/SecurityFilterTest.php b/apps/settings/tests/Activity/SecurityFilterTest.php
index f3f94df3d21..b07c1e825b4 100644
--- a/apps/settings/tests/Activity/SecurityFilterTest.php
+++ b/apps/settings/tests/Activity/SecurityFilterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,15 +13,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..ed9de362a87 100644
--- a/apps/settings/tests/Activity/SecurityProviderTest.php
+++ b/apps/settings/tests/Activity/SecurityProviderTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,27 +17,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,17 +43,15 @@ class SecurityProviderTest extends TestCase {
$this->provider->parse($lang, $event);
}
- public function subjectData() {
+ public static function subjectData(): array {
return [
['twofactor_success'],
['twofactor_failed'],
];
}
- /**
- * @dataProvider subjectData
- */
- public function testParse($subject): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('subjectData')]
+ public function testParse(string $subject): void {
$lang = 'ru';
$event = $this->createMock(IEvent::class);
$l = $this->createMock(IL10N::class);
@@ -68,7 +59,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 +95,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..ca11e38caa8 100644
--- a/apps/settings/tests/Activity/SecuritySettingTest.php
+++ b/apps/settings/tests/Activity/SecuritySettingTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,8 +13,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..b09412d8387 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],
@@ -57,12 +56,8 @@ class ApplicationTest extends TestCase {
];
}
- /**
- * @dataProvider dataContainerQuery
- * @param string $service
- * @param string $expected
- */
- public function testContainerQuery($service, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataContainerQuery')]
+ public function testContainerQuery(string $service, string $expected): void {
$this->assertTrue($this->container->query($service) instanceof $expected);
}
}
diff --git a/apps/settings/tests/Controller/AdminSettingsControllerTest.php b/apps/settings/tests/Controller/AdminSettingsControllerTest.php
index 445e3971cf8..fbdc506457b 100644
--- a/apps/settings/tests/Controller/AdminSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AdminSettingsControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/settings/tests/Controller/AppSettingsControllerTest.php b/apps/settings/tests/Controller/AppSettingsControllerTest.php
index f72bd45a3d2..392bb7b561d 100644
--- a/apps/settings/tests/Controller/AppSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AppSettingsControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2015 ownCloud, Inc.
@@ -37,39 +38,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..d195dbf83d3 100644
--- a/apps/settings/tests/Controller/AuthSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AuthSettingsControllerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,24 +29,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 +49,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(
@@ -128,7 +120,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->session->expects($this->once())
->method('getId')
- ->will($this->throwException(new SessionNotAvailableException()));
+ ->willThrowException(new SessionNotAvailableException());
$expected = new JSONResponse();
$expected->setStatus(Http::STATUS_SERVICE_UNAVAILABLE);
@@ -145,7 +137,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->tokenProvider->expects($this->once())
->method('getToken')
->with('sessionid')
- ->will($this->throwException(new InvalidTokenException()));
+ ->willThrowException(new InvalidTokenException());
$expected = new JSONResponse();
$expected->setStatus(Http::STATUS_SERVICE_UNAVAILABLE);
@@ -214,19 +206,14 @@ 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'],
];
}
- /**
- * @dataProvider dataRenameToken
- *
- * @param string $name
- * @param string $newName
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRenameToken')]
public function testUpdateRename(string $name, string $newName): void {
$tokenId = 42;
$token = $this->createMock(PublicKeyToken::class);
@@ -257,19 +244,14 @@ 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],
];
}
- /**
- * @dataProvider dataUpdateFilesystemScope
- *
- * @param bool $filesystem
- * @param bool $newFilesystem
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateFilesystemScope')]
public function testUpdateFilesystemScope(bool $filesystem, bool $newFilesystem): void {
$tokenId = 42;
$token = $this->createMock(PublicKeyToken::class);
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..1bc05ca4718 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): void {
+ $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..0468ce6814c 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,
@@ -247,14 +235,8 @@ class UsersControllerTest extends \Test\TestCase {
return $account;
}
- /**
- * @dataProvider dataTestSetUserSettings
- *
- * @param string $email
- * @param bool $validEmail
- * @param $expectedStatus
- */
- public function testSetUserSettings($email, $validEmail, $expectedStatus): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSetUserSettings')]
+ 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 +287,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],
@@ -513,20 +495,15 @@ class UsersControllerTest extends \Test\TestCase {
);
}
- /**
- * @dataProvider dataTestSetUserSettingsSubset
- *
- * @param string $property
- * @param string $propertyValue
- */
- public function testSetUserSettingsSubset($property, $propertyValue): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSetUserSettingsSubset')]
+ 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 +531,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 +613,7 @@ class UsersControllerTest extends \Test\TestCase {
);
}
- public function dataTestSetUserSettingsSubset() {
+ public static function dataTestSetUserSettingsSubset(): array {
return [
['avatarScope', IAccountManager::SCOPE_PUBLISHED],
['displayName', 'Display name'],
@@ -660,17 +637,8 @@ class UsersControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestSaveUserSettings
- *
- * @param array $data
- * @param ?string $oldEmailAddress
- * @param ?string $oldDisplayName
- */
- public function testSaveUserSettings($data,
- $oldEmailAddress,
- $oldDisplayName,
- ): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSaveUserSettings')]
+ public function testSaveUserSettings(array $data, ?string $oldEmailAddress, ?string $oldDisplayName): void {
$controller = $this->getController();
$user = $this->createMock(IUser::class);
@@ -722,7 +690,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->invokePrivate($controller, 'saveUserSettings', [$account]);
}
- public function dataTestSaveUserSettings() {
+ public static function dataTestSaveUserSettings(): array {
return [
[
[
@@ -784,9 +752,7 @@ class UsersControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataTestSaveUserSettingsException
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSaveUserSettingsException')]
public function testSaveUserSettingsException(
array $data,
string $oldEmailAddress,
@@ -833,7 +799,7 @@ class UsersControllerTest extends \Test\TestCase {
}
- public function dataTestSaveUserSettingsException() {
+ public static function dataTestSaveUserSettingsException(): array {
return [
[
[
@@ -869,15 +835,8 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetVerificationCode')]
+ 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 +895,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'],
@@ -971,18 +930,13 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertSame(Http::STATUS_BAD_REQUEST, $result->getStatus());
}
- /**
- * @dataProvider dataTestCanAdminChangeUserPasswords
- *
- * @param bool $encryptionEnabled
- * @param bool $encryptionModuleLoaded
- * @param bool $masterKeyEnabled
- * @param bool $expected
- */
- public function testCanAdminChangeUserPasswords($encryptionEnabled,
- $encryptionModuleLoaded,
- $masterKeyEnabled,
- $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCanAdminChangeUserPasswords')]
+ public function testCanAdminChangeUserPasswords(
+ bool $encryptionEnabled,
+ bool $encryptionModuleLoaded,
+ bool $masterKeyEnabled,
+ bool $expected,
+ ): void {
$controller = $this->getController();
$this->encryptionManager->expects($this->any())
@@ -1005,7 +959,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..55520184fc9 100644
--- a/apps/settings/tests/Mailer/NewUserMailHelperTest.php
+++ b/apps/settings/tests/Mailer/NewUserMailHelperTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,29 +21,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 +105,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 +363,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 +603,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 +822,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 +832,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..992c7d43dba 100644
--- a/apps/settings/tests/Settings/Admin/MailTest.php
+++ b/apps/settings/tests/Settings/Admin/MailTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -21,8 +22,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,
@@ -37,7 +38,7 @@ class MailTest extends TestCase {
];
}
- /** @dataProvider dataGetForm */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetForm')]
public function testGetForm(bool $sendmail) {
$finder = $this->createMock(IBinaryFinder::class);
$finder->expects(self::once())
diff --git a/apps/settings/tests/Settings/Admin/SecurityTest.php b/apps/settings/tests/Settings/Admin/SecurityTest.php
index 95b5e988397..89a6d8c0d88 100644
--- a/apps/settings/tests/Settings/Admin/SecurityTest.php
+++ b/apps/settings/tests/Settings/Admin/SecurityTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,21 +17,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,21 +39,15 @@ class SecurityTest extends TestCase {
);
}
- /**
- * @return array
- */
- public function encryptionSettingsProvider() {
+ public static function encryptionSettingsProvider(): array {
return [
[true],
[false],
];
}
- /**
- * @dataProvider encryptionSettingsProvider
- * @param bool $enabled
- */
- public function testGetFormWithOnlyOneBackend($enabled): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('encryptionSettingsProvider')]
+ public function testGetFormWithOnlyOneBackend(bool $enabled): void {
$this->manager
->expects($this->once())
->method('isEnabled')
@@ -84,9 +74,9 @@ class SecurityTest extends TestCase {
}
/**
- * @dataProvider encryptionSettingsProvider
* @param bool $enabled
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('encryptionSettingsProvider')]
public function testGetFormWithMultipleBackends($enabled): void {
$this->manager
->expects($this->once())
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..62e3440fa54 100644
--- a/apps/settings/tests/Settings/Admin/SharingTest.php
+++ b/apps/settings/tests/Settings/Admin/SharingTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,34 +19,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 +93,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..0a0ff4d84af 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): void {
+ $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..c20c78c6e16 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) {
@@ -56,9 +54,7 @@ class DataDirectoryProtectedTest extends TestCase {
->getMock();
}
- /**
- * @dataProvider dataTestStatusCode
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestStatusCode')]
public function testStatusCode(array $status, string $expected, bool $hasBody): void {
$responses = array_map(function ($state) use ($hasBody) {
$response = $this->createMock(IResponse::class);
diff --git a/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php b/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php
index b8b25e74c63..9b4878b45cc 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) {
@@ -44,9 +43,7 @@ class ForwardedForHeadersTest extends TestCase {
);
}
- /**
- * @dataProvider dataForwardedForHeadersWorking
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataForwardedForHeadersWorking')]
public function testForwardedForHeadersWorking(array $trustedProxies, string $remoteAddrNotForwarded, string $remoteAddr, string $result): void {
$this->config->expects($this->once())
->method('getSystemValue')
@@ -68,7 +65,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..67224e11e3a 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;
@@ -59,8 +59,8 @@ class LoggingLevelTest extends TestCase {
];
}
- /** @dataProvider dataRun */
- public function testRun(mixed $value, string $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRun')]
+ 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..1f75907d427 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']],
@@ -109,13 +106,10 @@ class SecurityHeadersTest extends TestCase {
];
}
- /**
- * @dataProvider dataSuccess
- */
- public function testSuccess($headers): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSuccess')]
+ 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 +132,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"],
@@ -153,13 +145,10 @@ class SecurityHeadersTest extends TestCase {
];
}
- /**
- * @dataProvider dataFailure
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFailure')]
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..d55835d66fc 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) {
@@ -97,8 +96,8 @@ class WellKnownUrlsTest extends TestCase {
/**
* Test responses
- * @dataProvider dataTestResponses
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestResponses')]
public function testResponses($responses, string $expectedSeverity): void {
$this->config
->expects($this->once())
@@ -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..b8f8301f777 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);
@@ -94,9 +85,7 @@ class AccountMigratorTest extends TestCase {
);
}
- /**
- * @dataProvider dataImportExportAccount
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataImportExportAccount')]
public function testImportExportAccount(string $userId, array $importData, string $avatarPath, array $importConfig): void {
$user = $this->userManager->createUser($userId, 'topsecretpassword');
$avatarExt = pathinfo($avatarPath, PATHINFO_EXTENSION);
@@ -111,17 +100,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 +142,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 d3b4b1cc10e..56cf9611ec4 100644
--- a/apps/sharebymail/l10n/pl.js
+++ b/apps/sharebymail/l10n/pl.js
@@ -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 7e3719e9f8a..6bd33562909 100644
--- a/apps/sharebymail/l10n/pl.json
+++ b/apps/sharebymail/l10n/pl.json
@@ -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/Activity.php b/apps/sharebymail/lib/Activity.php
index 7e9389da060..2d8289affa4 100644
--- a/apps/sharebymail/lib/Activity.php
+++ b/apps/sharebymail/lib/Activity.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/sharebymail/lib/Capabilities.php b/apps/sharebymail/lib/Capabilities.php
index 67a0ec7a9de..425a695ff36 100644
--- a/apps/sharebymail/lib/Capabilities.php
+++ b/apps/sharebymail/lib/Capabilities.php
@@ -48,24 +48,23 @@ class Capabilities implements ICapability {
return [];
}
return [
- 'files_sharing' =>
- [
- 'sharebymail' =>
- [
- 'enabled' => $this->manager->shareApiAllowLinks(),
- 'send_password_by_mail' => $this->settingsManager->sendPasswordByMail(),
- 'upload_files_drop' => [
- 'enabled' => true,
- ],
- 'password' => [
- 'enabled' => true,
- 'enforced' => $this->manager->shareApiLinkEnforcePassword(),
- ],
- 'expire_date' => [
- 'enabled' => true,
- 'enforced' => $this->manager->shareApiLinkDefaultExpireDateEnforced(),
- ],
- ]
+ 'files_sharing'
+ => [
+ 'sharebymail' => [
+ 'enabled' => $this->manager->shareApiAllowLinks(),
+ 'send_password_by_mail' => $this->settingsManager->sendPasswordByMail(),
+ 'upload_files_drop' => [
+ 'enabled' => true,
+ ],
+ 'password' => [
+ 'enabled' => true,
+ 'enforced' => $this->manager->shareApiLinkEnforcePassword(),
+ ],
+ 'expire_date' => [
+ 'enabled' => true,
+ 'enforced' => $this->manager->shareApiLinkDefaultExpireDateEnforced(),
+ ],
+ ]
]
];
}
diff --git a/apps/sharebymail/lib/Settings/Admin.php b/apps/sharebymail/lib/Settings/Admin.php
index 2bd58f7307f..8f27bbff6d6 100644
--- a/apps/sharebymail/lib/Settings/Admin.php
+++ b/apps/sharebymail/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php
index 194a402848e..16a13786ea1 100644
--- a/apps/sharebymail/lib/ShareByMailProvider.php
+++ b/apps/sharebymail/lib/ShareByMailProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -722,8 +723,8 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
// a real password was given
$validPassword = $plainTextPassword !== null && $plainTextPassword !== '';
- if ($validPassword && ($originalShare->getPassword() !== $share->getPassword() ||
- ($originalShare->getSendPasswordByTalk() && !$share->getSendPasswordByTalk()))) {
+ if ($validPassword && ($originalShare->getPassword() !== $share->getPassword()
+ || ($originalShare->getSendPasswordByTalk() && !$share->getSendPasswordByTalk()))) {
$emails = $this->getSharedWithEmails($share);
$validEmails = array_filter($emails, function ($email) {
return $this->mailer->validateMailAddress($email);
diff --git a/apps/sharebymail/tests/CapabilitiesTest.php b/apps/sharebymail/tests/CapabilitiesTest.php
index d38618650b3..7327e679533 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);
@@ -47,24 +42,23 @@ class CapabilitiesTest extends TestCase {
->willReturn(true);
$capabilities = [
- 'files_sharing' =>
- [
- 'sharebymail' =>
- [
+ 'files_sharing'
+ => [
+ 'sharebymail' => [
+ 'enabled' => true,
+ 'send_password_by_mail' => true,
+ 'upload_files_drop' => [
+ 'enabled' => true,
+ ],
+ 'password' => [
+ 'enabled' => true,
+ 'enforced' => false,
+ ],
+ 'expire_date' => [
'enabled' => true,
- 'send_password_by_mail' => true,
- 'upload_files_drop' => [
- 'enabled' => true,
- ],
- 'password' => [
- 'enabled' => true,
- 'enforced' => false,
- ],
- 'expire_date' => [
- 'enabled' => true,
- 'enforced' => false,
- ],
- ]
+ 'enforced' => false,
+ ],
+ ]
]
];
diff --git a/apps/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php
index b8bcb4151f0..8f70516f12c 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],
@@ -800,30 +844,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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateSendPassword')]
+ 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 +1190,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 +1237,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 +1382,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 +1504,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 +1631,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 +1642,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 +1729,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 +1830,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 +1927,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/appinfo/routes.php b/apps/systemtags/appinfo/routes.php
index d61a35ef630..53997646cc6 100644
--- a/apps/systemtags/appinfo/routes.php
+++ b/apps/systemtags/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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 06cc0e154ea..6d68e5315ea 100644
--- a/apps/systemtags/l10n/de.js
+++ b/apps/systemtags/l10n/de.js
@@ -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 8c2f25aa302..c211ecdc865 100644
--- a/apps/systemtags/l10n/de.json
+++ b/apps/systemtags/l10n/de.json
@@ -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 531023ade74..b2f27431679 100644
--- a/apps/systemtags/l10n/de_DE.js
+++ b/apps/systemtags/l10n/de_DE.js
@@ -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 adaff5ffc70..e84d2b4b4de 100644
--- a/apps/systemtags/l10n/de_DE.json
+++ b/apps/systemtags/l10n/de_DE.json
@@ -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 4830cf04ef0..7a6af25cd8f 100644
--- a/apps/systemtags/l10n/et_EE.js
+++ b/apps/systemtags/l10n/et_EE.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"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 35faa5538d7..e79001a411c 100644
--- a/apps/systemtags/l10n/et_EE.json
+++ b/apps/systemtags/l10n/et_EE.json
@@ -108,8 +108,6 @@
"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 437dd173c1a..6bbd17c5d52 100644
--- a/apps/systemtags/l10n/lv.js
+++ b/apps/systemtags/l10n/lv.js
@@ -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 78723f0c006..254571a47ef 100644
--- a/apps/systemtags/l10n/lv.json
+++ b/apps/systemtags/l10n/lv.json
@@ -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..1ce5b09c6a8 100644
--- a/apps/systemtags/l10n/pl.js
+++ b/apps/systemtags/l10n/pl.js
@@ -65,23 +65,51 @@ OC.L10N.register(
"Delete" : "Usuń",
"Reset" : "Reset",
"Loading …" : "Wczytywanie…",
+ "_{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} zostanie ustawiony, a {tag2} zostanie usunięty z jednego pliku","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików ","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików ","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików "],
+ "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag} zostanie ustawiony dla 1 pliku.","{tag} zostanie ustawiony dla {count} plików.","{tag} zostanie ustawiony dla {count} plików.","{tag} zostanie ustawiony dla {count} plików."],
+ "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} zostanie usunięty z 1 pliku.","{tag} zostanie usunięty z {count} plików."," {tag} zostanie usunięty z {count} plików.","{tag} zostanie usunięty z {count} plików."],
+ "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} i {lastTag} zostaną ustawione dla 1 pliku.","{tags} i {lastTag} zostaną ustawione dla {count} plików.","{tags} i {lastTag} zostaną ustawione dla {count} plików.","{tags} i {lastTag} zostaną ustawione dla {count} plików."],
+ "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} i {lastTag} zostaną usunięte z 1 pliku.","{tags} i {lastTag} zostaną usunięte z {count} plików.","{tags} i {lastTag} zostaną usunięte z {count} plików.","{tags} i {lastTag} zostaną usunięte z {count} plików."],
+ "{displayName} (hidden)" : "{displayName} (ukryty)",
+ "{displayName} (restricted)" : "{displayName} (ograniczony)",
+ "Only admins can create new tags" : "Tylko administratorzy mogą tworzyć nowe tagi",
+ "Failed to apply tags changes" : "Nie udało się zastosować zmian tagów",
+ "File tags modification canceled" : "Modyfikacja tagów pliku została anulowana",
"Manage tags" : "Zarządzaj etykietami",
"Applying tags changes…" : "Zastosowywanie zmian etykiet…",
"Search or create tag" : "Wyszukaj lub utwórz etykietę",
+ "Search tag" : "Wyszukaj tag",
"Change tag color" : "Zmień kolor etykiety",
"Create new tag" : "Utwórz nową etykietę",
"Select or create tags to apply to all selected files" : "Wybierz lub utwórz etykiety do zastosowania do wszystkich zaznaczonych plików",
+ "Select tags to apply to all selected files" : "Wybierz tagi do zastosowania do wszystkich zaznaczonych plików",
"Cancel" : "Anuluj",
"Apply changes" : "Zastosuj zmiany",
"Failed to load tags" : "Nie udało się załadować etykiet",
+ "Failed to load selected tags" : "Nie udało się załadować wybranych tagów",
+ "Failed to select tag" : "Nie udało się wybrać tagu",
+ "System admin disabled tag creation. You can only use existing ones." : "Administrator systemu wyłączył tworzenie tagów. Można używać tylko istniejących tagów.",
"Loading collaborative tags …" : "Wczytywanie wspólnych etykiet…",
+ "Search or create collaborative tags" : "Wyszukaj lub utwórz wspólne tagi",
+ "No tags to select, type to create a new tag" : "Brak tagów do wyboru, wpisz, aby utworzyć nowy tag",
+ "Unable to update setting" : "Nie udało się zaktualizować ustawienia",
+ "System tag creation is now restricted to administrators" : "Tworzenie tagów systemowych jest teraz ograniczone do administratorów",
+ "System tag creation is now allowed for everybody" : "Tworzenie tagów systemowych jest teraz dozwolone dla wszystkich",
+ "System tag management" : "Zarządzanie tagami systemowymi",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Jeśli włączone, tylko administratorzy mogą tworzyć i edytować tagi. Konta nadal mogą przypisywać i usuwać je z plików.",
+ "Restrict tag creation and editing to administrators" : "Ogranicz tworzenie i edytowanie tagów do administratorów",
"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." : "Wspólne etykietowanie jest dostępne dla wszystkich użytkowników. Ograniczone etykiety są widoczne dla użytkowników, ale nie mogą być przez nich przypisane. Etykiety niewidoczne są natomiast przeznaczone do użytku wewnętrznego, ponieważ użytkownicy nie mogą ich zobaczyć ani przypisać.",
"Assigned collaborative tags" : "Przypisane wspólne etykiety",
"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",
+ "Tags you have created will show up here." : "Utworzone przez Ciebie tagi pojawią się tutaj.",
"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 last used tags" : "Nie udało się załadować ostatnio używanych tagów",
+ "Missing \"Content-Location\" header" : "Brakuje nagłówka „Content-Location”",
+ "A tag with the same name already exists" : "Tag o tej samej nazwie już istnieje",
+ "Failed to load tags for file" : "Nie udało się załadować tagów dla pliku",
+ "Failed to set tag for file" : "Nie udało się ustawić tagu dla pliku",
+ "Failed to delete tag for file" : "Nie udało się usunąć tagu z pliku"
},
"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..f4d36fdbbb2 100644
--- a/apps/systemtags/l10n/pl.json
+++ b/apps/systemtags/l10n/pl.json
@@ -63,23 +63,51 @@
"Delete" : "Usuń",
"Reset" : "Reset",
"Loading …" : "Wczytywanie…",
+ "_{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} zostanie ustawiony, a {tag2} zostanie usunięty z jednego pliku","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików ","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików ","{tag1} zostanie ustawiony, a {tag2} zostanie usunięty z {count} plików "],
+ "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag} zostanie ustawiony dla 1 pliku.","{tag} zostanie ustawiony dla {count} plików.","{tag} zostanie ustawiony dla {count} plików.","{tag} zostanie ustawiony dla {count} plików."],
+ "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} zostanie usunięty z 1 pliku.","{tag} zostanie usunięty z {count} plików."," {tag} zostanie usunięty z {count} plików.","{tag} zostanie usunięty z {count} plików."],
+ "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} i {lastTag} zostaną ustawione dla 1 pliku.","{tags} i {lastTag} zostaną ustawione dla {count} plików.","{tags} i {lastTag} zostaną ustawione dla {count} plików.","{tags} i {lastTag} zostaną ustawione dla {count} plików."],
+ "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} i {lastTag} zostaną usunięte z 1 pliku.","{tags} i {lastTag} zostaną usunięte z {count} plików.","{tags} i {lastTag} zostaną usunięte z {count} plików.","{tags} i {lastTag} zostaną usunięte z {count} plików."],
+ "{displayName} (hidden)" : "{displayName} (ukryty)",
+ "{displayName} (restricted)" : "{displayName} (ograniczony)",
+ "Only admins can create new tags" : "Tylko administratorzy mogą tworzyć nowe tagi",
+ "Failed to apply tags changes" : "Nie udało się zastosować zmian tagów",
+ "File tags modification canceled" : "Modyfikacja tagów pliku została anulowana",
"Manage tags" : "Zarządzaj etykietami",
"Applying tags changes…" : "Zastosowywanie zmian etykiet…",
"Search or create tag" : "Wyszukaj lub utwórz etykietę",
+ "Search tag" : "Wyszukaj tag",
"Change tag color" : "Zmień kolor etykiety",
"Create new tag" : "Utwórz nową etykietę",
"Select or create tags to apply to all selected files" : "Wybierz lub utwórz etykiety do zastosowania do wszystkich zaznaczonych plików",
+ "Select tags to apply to all selected files" : "Wybierz tagi do zastosowania do wszystkich zaznaczonych plików",
"Cancel" : "Anuluj",
"Apply changes" : "Zastosuj zmiany",
"Failed to load tags" : "Nie udało się załadować etykiet",
+ "Failed to load selected tags" : "Nie udało się załadować wybranych tagów",
+ "Failed to select tag" : "Nie udało się wybrać tagu",
+ "System admin disabled tag creation. You can only use existing ones." : "Administrator systemu wyłączył tworzenie tagów. Można używać tylko istniejących tagów.",
"Loading collaborative tags …" : "Wczytywanie wspólnych etykiet…",
+ "Search or create collaborative tags" : "Wyszukaj lub utwórz wspólne tagi",
+ "No tags to select, type to create a new tag" : "Brak tagów do wyboru, wpisz, aby utworzyć nowy tag",
+ "Unable to update setting" : "Nie udało się zaktualizować ustawienia",
+ "System tag creation is now restricted to administrators" : "Tworzenie tagów systemowych jest teraz ograniczone do administratorów",
+ "System tag creation is now allowed for everybody" : "Tworzenie tagów systemowych jest teraz dozwolone dla wszystkich",
+ "System tag management" : "Zarządzanie tagami systemowymi",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Jeśli włączone, tylko administratorzy mogą tworzyć i edytować tagi. Konta nadal mogą przypisywać i usuwać je z plików.",
+ "Restrict tag creation and editing to administrators" : "Ogranicz tworzenie i edytowanie tagów do administratorów",
"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." : "Wspólne etykietowanie jest dostępne dla wszystkich użytkowników. Ograniczone etykiety są widoczne dla użytkowników, ale nie mogą być przez nich przypisane. Etykiety niewidoczne są natomiast przeznaczone do użytku wewnętrznego, ponieważ użytkownicy nie mogą ich zobaczyć ani przypisać.",
"Assigned collaborative tags" : "Przypisane wspólne etykiety",
"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",
+ "Tags you have created will show up here." : "Utworzone przez Ciebie tagi pojawią się tutaj.",
"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 last used tags" : "Nie udało się załadować ostatnio używanych tagów",
+ "Missing \"Content-Location\" header" : "Brakuje nagłówka „Content-Location”",
+ "A tag with the same name already exists" : "Tag o tej samej nazwie już istnieje",
+ "Failed to load tags for file" : "Nie udało się załadować tagów dla pliku",
+ "Failed to set tag for file" : "Nie udało się ustawić tagu dla pliku",
+ "Failed to delete tag for file" : "Nie udało się usunąć tagu z pliku"
},"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/lib/Activity/Provider.php b/apps/systemtags/lib/Activity/Provider.php
index f9f15f55830..5849ab173e3 100644
--- a/apps/systemtags/lib/Activity/Provider.php
+++ b/apps/systemtags/lib/Activity/Provider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/systemtags/lib/Activity/Setting.php b/apps/systemtags/lib/Activity/Setting.php
index 95001e95cf3..8f39ef41d26 100644
--- a/apps/systemtags/lib/Activity/Setting.php
+++ b/apps/systemtags/lib/Activity/Setting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/systemtags/lib/Controller/LastUsedController.php b/apps/systemtags/lib/Controller/LastUsedController.php
index c1919290de0..617c502d5c6 100644
--- a/apps/systemtags/lib/Controller/LastUsedController.php
+++ b/apps/systemtags/lib/Controller/LastUsedController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/systemtags/lib/Settings/Admin.php b/apps/systemtags/lib/Settings/Admin.php
index b032e6b7694..2252fd50ba3 100644
--- a/apps/systemtags/lib/Settings/Admin.php
+++ b/apps/systemtags/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/systemtags/tests/Activity/SettingTest.php b/apps/systemtags/tests/Activity/SettingTest.php
index 7ef46705e02..ffbe8850dfc 100644
--- a/apps/systemtags/tests/Activity/SettingTest.php
+++ b/apps/systemtags/tests/Activity/SettingTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/systemtags/tests/Settings/AdminTest.php b/apps/systemtags/tests/Settings/AdminTest.php
index 78f19475fae..4c890755e09 100644
--- a/apps/systemtags/tests/Settings/AdminTest.php
+++ b/apps/systemtags/tests/Settings/AdminTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/clean_opcode_cache.php b/apps/testing/clean_opcode_cache.php
index d87388a05fd..acfeece7e15 100644
--- a/apps/testing/clean_opcode_cache.php
+++ b/apps/testing/clean_opcode_cache.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/AlternativeHomeUserBackend.php b/apps/testing/lib/AlternativeHomeUserBackend.php
index 549209652b4..0524ebe110d 100644
--- a/apps/testing/lib/AlternativeHomeUserBackend.php
+++ b/apps/testing/lib/AlternativeHomeUserBackend.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/testing/lib/AppInfo/Application.php b/apps/testing/lib/AppInfo/Application.php
index bbd9e288cc1..2add318f327 100644
--- a/apps/testing/lib/AppInfo/Application.php
+++ b/apps/testing/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud GmbH
@@ -8,6 +9,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 +28,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 +71,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/Controller/ConfigController.php b/apps/testing/lib/Controller/ConfigController.php
index 36cc4fff9aa..1b38666e51c 100644
--- a/apps/testing/lib/Controller/ConfigController.php
+++ b/apps/testing/lib/Controller/ConfigController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/testing/lib/Controller/LockingController.php b/apps/testing/lib/Controller/LockingController.php
index e226126630f..edc66d012ee 100644
--- a/apps/testing/lib/Controller/LockingController.php
+++ b/apps/testing/lib/Controller/LockingController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/testing/lib/Controller/RateLimitTestController.php b/apps/testing/lib/Controller/RateLimitTestController.php
index b1df0d1d7b5..d3700b69858 100644
--- a/apps/testing/lib/Controller/RateLimitTestController.php
+++ b/apps/testing/lib/Controller/RateLimitTestController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/HiddenGroupBackend.php b/apps/testing/lib/HiddenGroupBackend.php
new file mode 100644
index 00000000000..96ead46c06e
--- /dev/null
+++ b/apps/testing/lib/HiddenGroupBackend.php
@@ -0,0 +1,44 @@
+<?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 {
+ public function __construct(
+ private string $groupName = 'hidden_group',
+ ) {
+ }
+
+ 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/Locking/FakeDBLockingProvider.php b/apps/testing/lib/Locking/FakeDBLockingProvider.php
index 6e2fd9a77d8..f77bacc7a63 100644
--- a/apps/testing/lib/Locking/FakeDBLockingProvider.php
+++ b/apps/testing/lib/Locking/FakeDBLockingProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/testing/lib/Provider/FakeText2ImageProvider.php b/apps/testing/lib/Provider/FakeText2ImageProvider.php
index 8e7ceca02f1..6b607f23347 100644
--- a/apps/testing/lib/Provider/FakeText2ImageProvider.php
+++ b/apps/testing/lib/Provider/FakeText2ImageProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/Provider/FakeTextProcessingProvider.php b/apps/testing/lib/Provider/FakeTextProcessingProvider.php
index ffa7d16ef24..d3b16c55c67 100644
--- a/apps/testing/lib/Provider/FakeTextProcessingProvider.php
+++ b/apps/testing/lib/Provider/FakeTextProcessingProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/Provider/FakeTextProcessingProviderSync.php b/apps/testing/lib/Provider/FakeTextProcessingProviderSync.php
index 55c0cfef3bf..ea822199109 100644
--- a/apps/testing/lib/Provider/FakeTextProcessingProviderSync.php
+++ b/apps/testing/lib/Provider/FakeTextProcessingProviderSync.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/Provider/FakeTranslationProvider.php b/apps/testing/lib/Provider/FakeTranslationProvider.php
index 91d82272231..cc2d13db646 100644
--- a/apps/testing/lib/Provider/FakeTranslationProvider.php
+++ b/apps/testing/lib/Provider/FakeTranslationProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/testing/lib/TaskProcessing/FakeContextWriteProvider.php b/apps/testing/lib/TaskProcessing/FakeContextWriteProvider.php
index 41797f87d8b..9a5574f5147 100644
--- a/apps/testing/lib/TaskProcessing/FakeContextWriteProvider.php
+++ b/apps/testing/lib/TaskProcessing/FakeContextWriteProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/TaskProcessing/FakeTextToImageProvider.php b/apps/testing/lib/TaskProcessing/FakeTextToImageProvider.php
index cd508be9155..455d6c0b518 100644
--- a/apps/testing/lib/TaskProcessing/FakeTextToImageProvider.php
+++ b/apps/testing/lib/TaskProcessing/FakeTextToImageProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/TaskProcessing/FakeTextToTextProvider.php b/apps/testing/lib/TaskProcessing/FakeTextToTextProvider.php
index 6afa2539f10..5012823024e 100644
--- a/apps/testing/lib/TaskProcessing/FakeTextToTextProvider.php
+++ b/apps/testing/lib/TaskProcessing/FakeTextToTextProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/TaskProcessing/FakeTranscribeProvider.php b/apps/testing/lib/TaskProcessing/FakeTranscribeProvider.php
index 933192c95c1..4827a07037a 100644
--- a/apps/testing/lib/TaskProcessing/FakeTranscribeProvider.php
+++ b/apps/testing/lib/TaskProcessing/FakeTranscribeProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/testing/lib/TaskProcessing/FakeTranslateProvider.php b/apps/testing/lib/TaskProcessing/FakeTranslateProvider.php
index 728932acdb3..22be8e83049 100644
--- a/apps/testing/lib/TaskProcessing/FakeTranslateProvider.php
+++ b/apps/testing/lib/TaskProcessing/FakeTranslateProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/appinfo/routes.php b/apps/theming/appinfo/routes.php
index 21cc6aa6c2e..b0aedbbb803 100644
--- a/apps/theming/appinfo/routes.php
+++ b/apps/theming/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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 3ecc474c96a..93ca61f7df5 100644
--- a/apps/theming/l10n/de.js
+++ b/apps/theming/l10n/de.js
@@ -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 1d2b5fb9803..db84ce8fca5 100644
--- a/apps/theming/l10n/de.json
+++ b/apps/theming/l10n/de.json
@@ -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 b2c84dce2dc..4c4258f54bb 100644
--- a/apps/theming/l10n/de_DE.js
+++ b/apps/theming/l10n/de_DE.js
@@ -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 d3064661462..252db90954e 100644
--- a/apps/theming/l10n/de_DE.json
+++ b/apps/theming/l10n/de_DE.json
@@ -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..79e45abb881 100644
--- a/apps/theming/l10n/pl.js
+++ b/apps/theming/l10n/pl.js
@@ -27,7 +27,9 @@ OC.L10N.register(
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Używasz już własnego motywu. Ustawienia aplikacji Theming mogą zostać nadpisane.",
"Theming" : "Motyw",
"Appearance and accessibility" : "Wygląd i dostępność",
+ "PHP Imagick module" : "Moduł 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." : "Moduł PHP \"imagick\" nie jest włączony, pomimo że aplikacja motywu jest. Aby generowanie favicon działało poprawnie, musisz zainstalować i włączyć ten moduł.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Moduł PHP \"imagick\" w tym przypadku nie obsługuje SVG. Dla lepszej kompatybilności zaleca się jego instalację.",
"Dark theme with high contrast mode" : "Ciemny motyw z trybem wysokiego kontrastu",
"Enable dark high contrast mode" : "Włącz ciemny tryb wysokiego kontrastu",
"Similar to the high contrast mode, but with dark colours." : "Podobny do trybu wysokiego kontrastu, ale z ciemnymi kolorami.",
@@ -53,6 +55,8 @@ OC.L10N.register(
"Web link" : "Link",
"a safe home for all your data" : "bezpieczny dom dla wszystkich danych",
"Slogan" : "Slogan",
+ "Primary color" : "Kolor podstawowy",
+ "The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Kolor podstawowy jest używany do wyróżniania elementów, takich jak ważne przyciski. Może być lekko dostosowany w zależności od bieżącego schematu kolorów.",
"Legal notice link" : "Link do informacji prawnej",
"Privacy policy link" : "Link do polityki prywatności",
"Header logo" : "Logo nagłówka",
@@ -63,15 +67,24 @@ OC.L10N.register(
"Disable user theming" : "Wyłącz motywy użytkownika",
"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." : "Chociaż możesz wybrać i dostosować swoją instancję, użytkownicy mogą zmieniać swoje tło i kolory. Jeśli chcesz wymusić dostosowanie, możesz to włączyć.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motyw umożliwia na łatwą personalizację wyglądu instancji i wspieranych klientów. Ustawiony wygląd będzie widoczny dla wszystkich użytkowników.",
+ "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." : "Zamiast obrazu tła możesz również ustawić jednolity kolor tła. Jeśli używasz obrazu tła, zmiana tego koloru wpłynie na kolor ikon w menu aplikacji.",
+ "Background color" : "Kolor tła",
"Upload new logo" : "Wyślij nowe logo",
"Logo" : "Logo",
"Upload new background and login image" : "Wyślij nowe tło i obraz logowania",
"Background and login image" : "Obraz tła i logowania",
"Advanced options" : "Opcje zaawansowane",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Zainstaluj rozszerzenie ImageMagick PHP z obsługą obrazów SVG, aby automatycznie generować favikony na podstawie przesłanego logo i koloru.",
+ "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." : "Uniwersalna dostępność jest dla nas bardzo ważna. Przestrzegamy standardów sieciowych i dbamy, aby wszystko było używalne także bez myszy, jak również z oprogramowaniem wspomagającym, takim jak czytniki ekranu. Dążymy do zgodności z Wytycznymi dotyczącymi {linkstart} dostępności treści internetowych (WCAG) {linkend} 2.1 na poziomie AA, a w przypadku motywów o wysokim kontraście nawet na poziomie 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}!" : "Jeśli znajdziesz jakieś problemy, nie wahaj się zgłosić je na {issuetracker}listę błędów{linkend}. A jeśli chcesz się zaangażować, dołącz do {designteam}naszego zespołu projektowego{linkend}!",
+ "Unable to apply the setting." : "Nie można zastosować ustawienia.",
+ "Appearance and accessibility settings" : "Ustawienia wyglądu i dostępności",
+ "Misc accessibility options" : "Inne opcje dostępności",
"Enable blur background filter (may increase GPU load)" : "Włącz filtr rozmycia tła (może zwiększyć obciążenie GPU)",
"Customization has been disabled by your administrator" : "Dostosowanie zostało wyłączone przez administratora",
+ "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." : "Ustaw kolor podstawowy, aby wyróżnić ważne elementy. Kolor używany dla elementów, takich jak główne przyciski, może się nieco różnić, ponieważ dostosowuje się do wymagań dostępności.",
+ "Background and color" : "Tło i kolor",
+ "The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Tło może być ustawione jako obraz z zestawu domyślnego, przesłany przez użytkownika obraz lub jednolity kolor.",
"Keyboard shortcuts" : "Skróty klawiaturowe",
"In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "W niektórych przypadkach skróty klawiaturowe mogą kolidować z narzędziami ułatwień dostępu. Aby umożliwić prawidłowe skupienie się na narzędziu, możesz tutaj wyłączyć wszystkie skróty klawiaturowe. Spowoduje to również wyłączenie wszystkich dostępnych skrótów w aplikacjach.",
"Disable all keyboard shortcuts" : "Wyłącz wszystkie skróty klawiaturowe",
@@ -92,6 +105,8 @@ OC.L10N.register(
"The default app can not be changed because it was configured by the administrator." : "Domyślnej aplikacji nie można zmienić, ponieważ została skonfigurowana przez administratora.",
"The app order was changed, to see it in action you have to reload the page." : "Kolejność aplikacji została zmieniona, aby zobaczyć ją po zmianie, należy ponownie załadować stronę.",
"Reset default app order" : "Zresetuj domyślną kolejność aplikacji",
+ "Could not set primary color" : "Nie udało się ustawić podstawowego koloru",
+ "Reset primary color" : "Resetuj kolor podstawowy",
"Could not set global default apps" : "Nie można ustawić globalnych aplikacji domyślnych",
"Default app" : "Aplikacja domyślna",
"The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "Domyślną aplikacją jest aplikacja będąca np. otwierana po zalogowaniu lub kliknięciu logo w menu.",
@@ -104,11 +119,7 @@ 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"
+ ". Unable to apply the setting." : ". Nie udało się zapisać ustawień."
},
"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..02308d7f5b7 100644
--- a/apps/theming/l10n/pl.json
+++ b/apps/theming/l10n/pl.json
@@ -25,7 +25,9 @@
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Używasz już własnego motywu. Ustawienia aplikacji Theming mogą zostać nadpisane.",
"Theming" : "Motyw",
"Appearance and accessibility" : "Wygląd i dostępność",
+ "PHP Imagick module" : "Moduł 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." : "Moduł PHP \"imagick\" nie jest włączony, pomimo że aplikacja motywu jest. Aby generowanie favicon działało poprawnie, musisz zainstalować i włączyć ten moduł.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Moduł PHP \"imagick\" w tym przypadku nie obsługuje SVG. Dla lepszej kompatybilności zaleca się jego instalację.",
"Dark theme with high contrast mode" : "Ciemny motyw z trybem wysokiego kontrastu",
"Enable dark high contrast mode" : "Włącz ciemny tryb wysokiego kontrastu",
"Similar to the high contrast mode, but with dark colours." : "Podobny do trybu wysokiego kontrastu, ale z ciemnymi kolorami.",
@@ -51,6 +53,8 @@
"Web link" : "Link",
"a safe home for all your data" : "bezpieczny dom dla wszystkich danych",
"Slogan" : "Slogan",
+ "Primary color" : "Kolor podstawowy",
+ "The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Kolor podstawowy jest używany do wyróżniania elementów, takich jak ważne przyciski. Może być lekko dostosowany w zależności od bieżącego schematu kolorów.",
"Legal notice link" : "Link do informacji prawnej",
"Privacy policy link" : "Link do polityki prywatności",
"Header logo" : "Logo nagłówka",
@@ -61,15 +65,24 @@
"Disable user theming" : "Wyłącz motywy użytkownika",
"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." : "Chociaż możesz wybrać i dostosować swoją instancję, użytkownicy mogą zmieniać swoje tło i kolory. Jeśli chcesz wymusić dostosowanie, możesz to włączyć.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motyw umożliwia na łatwą personalizację wyglądu instancji i wspieranych klientów. Ustawiony wygląd będzie widoczny dla wszystkich użytkowników.",
+ "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." : "Zamiast obrazu tła możesz również ustawić jednolity kolor tła. Jeśli używasz obrazu tła, zmiana tego koloru wpłynie na kolor ikon w menu aplikacji.",
+ "Background color" : "Kolor tła",
"Upload new logo" : "Wyślij nowe logo",
"Logo" : "Logo",
"Upload new background and login image" : "Wyślij nowe tło i obraz logowania",
"Background and login image" : "Obraz tła i logowania",
"Advanced options" : "Opcje zaawansowane",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Zainstaluj rozszerzenie ImageMagick PHP z obsługą obrazów SVG, aby automatycznie generować favikony na podstawie przesłanego logo i koloru.",
+ "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." : "Uniwersalna dostępność jest dla nas bardzo ważna. Przestrzegamy standardów sieciowych i dbamy, aby wszystko było używalne także bez myszy, jak również z oprogramowaniem wspomagającym, takim jak czytniki ekranu. Dążymy do zgodności z Wytycznymi dotyczącymi {linkstart} dostępności treści internetowych (WCAG) {linkend} 2.1 na poziomie AA, a w przypadku motywów o wysokim kontraście nawet na poziomie 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}!" : "Jeśli znajdziesz jakieś problemy, nie wahaj się zgłosić je na {issuetracker}listę błędów{linkend}. A jeśli chcesz się zaangażować, dołącz do {designteam}naszego zespołu projektowego{linkend}!",
+ "Unable to apply the setting." : "Nie można zastosować ustawienia.",
+ "Appearance and accessibility settings" : "Ustawienia wyglądu i dostępności",
+ "Misc accessibility options" : "Inne opcje dostępności",
"Enable blur background filter (may increase GPU load)" : "Włącz filtr rozmycia tła (może zwiększyć obciążenie GPU)",
"Customization has been disabled by your administrator" : "Dostosowanie zostało wyłączone przez administratora",
+ "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." : "Ustaw kolor podstawowy, aby wyróżnić ważne elementy. Kolor używany dla elementów, takich jak główne przyciski, może się nieco różnić, ponieważ dostosowuje się do wymagań dostępności.",
+ "Background and color" : "Tło i kolor",
+ "The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Tło może być ustawione jako obraz z zestawu domyślnego, przesłany przez użytkownika obraz lub jednolity kolor.",
"Keyboard shortcuts" : "Skróty klawiaturowe",
"In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "W niektórych przypadkach skróty klawiaturowe mogą kolidować z narzędziami ułatwień dostępu. Aby umożliwić prawidłowe skupienie się na narzędziu, możesz tutaj wyłączyć wszystkie skróty klawiaturowe. Spowoduje to również wyłączenie wszystkich dostępnych skrótów w aplikacjach.",
"Disable all keyboard shortcuts" : "Wyłącz wszystkie skróty klawiaturowe",
@@ -90,6 +103,8 @@
"The default app can not be changed because it was configured by the administrator." : "Domyślnej aplikacji nie można zmienić, ponieważ została skonfigurowana przez administratora.",
"The app order was changed, to see it in action you have to reload the page." : "Kolejność aplikacji została zmieniona, aby zobaczyć ją po zmianie, należy ponownie załadować stronę.",
"Reset default app order" : "Zresetuj domyślną kolejność aplikacji",
+ "Could not set primary color" : "Nie udało się ustawić podstawowego koloru",
+ "Reset primary color" : "Resetuj kolor podstawowy",
"Could not set global default apps" : "Nie można ustawić globalnych aplikacji domyślnych",
"Default app" : "Aplikacja domyślna",
"The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "Domyślną aplikacją jest aplikacja będąca np. otwierana po zalogowaniu lub kliknięciu logo w menu.",
@@ -102,11 +117,7 @@
"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"
+ ". Unable to apply the setting." : ". Nie udało się zapisać ustawień."
},"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/AppInfo/Application.php b/apps/theming/lib/AppInfo/Application.php
index c031243361f..d08a1903265 100644
--- a/apps/theming/lib/AppInfo/Application.php
+++ b/apps/theming/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Capabilities.php b/apps/theming/lib/Capabilities.php
index b6145298d95..d5d6e415e75 100644
--- a/apps/theming/lib/Capabilities.php
+++ b/apps/theming/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -41,6 +42,7 @@ class Capabilities implements IPublicCapability {
* @return array{
* theming: array{
* name: string,
+ * productName: string,
* url: string,
* slogan: string,
* color: string,
@@ -94,6 +96,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/Command/UpdateConfig.php b/apps/theming/lib/Command/UpdateConfig.php
index 9fec1c4970a..6236f866445 100644
--- a/apps/theming/lib/Command/UpdateConfig.php
+++ b/apps/theming/lib/Command/UpdateConfig.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -34,8 +35,8 @@ class UpdateConfig extends Command {
->addArgument(
'key',
InputArgument::OPTIONAL,
- 'Key to update the theming app configuration (leave empty to get a list of all configured values)' . PHP_EOL .
- 'One of: ' . implode(', ', self::SUPPORTED_KEYS)
+ 'Key to update the theming app configuration (leave empty to get a list of all configured values)' . PHP_EOL
+ . 'One of: ' . implode(', ', self::SUPPORTED_KEYS)
)
->addArgument(
'value',
diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php
index f487663d8c8..e82faf78a79 100644
--- a/apps/theming/lib/Controller/IconController.php
+++ b/apps/theming/lib/Controller/IconController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php
index af4898c03db..4763e384156 100644
--- a/apps/theming/lib/Controller/ThemingController.php
+++ b/apps/theming/lib/Controller/ThemingController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -270,8 +271,8 @@ class ThemingController extends Controller {
return new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'name' => $name,
'url' => $this->imageManager->getImageUrl($key),
'message' => $this->l10n->t('Saved'),
@@ -294,8 +295,8 @@ class ThemingController extends Controller {
return new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => $value,
'message' => $this->l10n->t('Saved'),
],
@@ -317,8 +318,8 @@ class ThemingController extends Controller {
return new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $this->l10n->t('Saved'),
],
'status' => 'success'
@@ -462,8 +463,8 @@ class ThemingController extends Controller {
'theme_color' => $this->themingDefaults->getColorPrimary(),
'background_color' => $this->themingDefaults->getColorPrimary(),
'description' => $description,
- 'icons' =>
- [
+ 'icons'
+ => [
[
'src' => $this->urlGenerator->linkToRoute('theming.Icon.getTouchIcon',
['app' => $app]) . '?v=' . $cacheBusterValue,
diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php
index 4ab9857e2ce..63f4559970d 100644
--- a/apps/theming/lib/IconBuilder.php
+++ b/apps/theming/lib/IconBuilder.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -90,18 +91,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);
@@ -115,10 +115,10 @@ class IconBuilder {
// generate background image with rounded corners
$cornerRadius = 0.2 * $size;
- $background = '<?xml version="1.0" encoding="UTF-8"?>' .
- '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:cc="http://creativecommons.org/ns#" width="' . $size . '" height="' . $size . '" xmlns:xlink="http://www.w3.org/1999/xlink">' .
- '<rect x="0" y="0" rx="' . $cornerRadius . '" ry="' . $cornerRadius . '" width="' . $size . '" height="' . $size . '" style="fill:' . $color . ';" />' .
- '</svg>';
+ $background = '<?xml version="1.0" encoding="UTF-8"?>'
+ . '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:cc="http://creativecommons.org/ns#" width="' . $size . '" height="' . $size . '" xmlns:xlink="http://www.w3.org/1999/xlink">'
+ . '<rect x="0" y="0" rx="' . $cornerRadius . '" ry="' . $cornerRadius . '" width="' . $size . '" height="' . $size . '" style="fill:' . $color . ';" />'
+ . '</svg>';
// resize svg magic as this seems broken in Imagemagick
if ($mime === 'image/svg+xml' || substr($appIconContent, 0, 4) === '<svg') {
if (substr($appIconContent, 0, 5) !== '<?xml') {
@@ -187,13 +187,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/lib/ImageManager.php b/apps/theming/lib/ImageManager.php
index 83828130425..309bf192bc3 100644
--- a/apps/theming/lib/ImageManager.php
+++ b/apps/theming/lib/ImageManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Service/ThemeInjectionService.php b/apps/theming/lib/Service/ThemeInjectionService.php
index f780f5484bd..873d388081c 100644
--- a/apps/theming/lib/Service/ThemeInjectionService.php
+++ b/apps/theming/lib/Service/ThemeInjectionService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Service/ThemesService.php b/apps/theming/lib/Service/ThemesService.php
index 37ea47f80d8..f49524cb62c 100644
--- a/apps/theming/lib/Service/ThemesService.php
+++ b/apps/theming/lib/Service/ThemesService.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Settings/Admin.php b/apps/theming/lib/Settings/Admin.php
index 24ac0729de5..9fa0f2bb0e7 100644
--- a/apps/theming/lib/Settings/Admin.php
+++ b/apps/theming/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Settings/AdminSection.php b/apps/theming/lib/Settings/AdminSection.php
index a659204e722..a1ea568d9f2 100644
--- a/apps/theming/lib/Settings/AdminSection.php
+++ b/apps/theming/lib/Settings/AdminSection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Settings/Personal.php b/apps/theming/lib/Settings/Personal.php
index 9f78f2cbc35..f14deeb35f0 100644
--- a/apps/theming/lib/Settings/Personal.php
+++ b/apps/theming/lib/Settings/Personal.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/Settings/PersonalSection.php b/apps/theming/lib/Settings/PersonalSection.php
index 851f122eed1..0a9361d5533 100644
--- a/apps/theming/lib/Settings/PersonalSection.php
+++ b/apps/theming/lib/Settings/PersonalSection.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php
index 42c96557ba7..04f56895fa3 100644
--- a/apps/theming/lib/ThemingDefaults.php
+++ b/apps/theming/lib/ThemingDefaults.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -120,8 +121,8 @@ class ThemingDefaults extends \OC_Defaults {
if ($entity !== '') {
if ($baseUrl !== '') {
- $footer = '<a href="' . $baseUrl . '" target="_blank"' .
- ' rel="noreferrer noopener" class="entity-name">' . $entity . '</a>';
+ $footer = '<a href="' . $baseUrl . '" target="_blank"'
+ . ' rel="noreferrer noopener" class="entity-name">' . $entity . '</a>';
} else {
$footer = '<span class="entity-name">' . $entity . '</span>';
}
@@ -154,8 +155,8 @@ class ThemingDefaults extends \OC_Defaults {
if ($link['url'] !== ''
&& filter_var($link['url'], FILTER_VALIDATE_URL)
) {
- $legalLinks .= $divider . '<a href="' . $link['url'] . '" class="legal" target="_blank"' .
- ' rel="noreferrer noopener">' . $link['text'] . '</a>';
+ $legalLinks .= $divider . '<a href="' . $link['url'] . '" class="legal" target="_blank"'
+ . ' rel="noreferrer noopener">' . $link['text'] . '</a>';
$divider = ' · ';
}
}
diff --git a/apps/theming/lib/Util.php b/apps/theming/lib/Util.php
index b7022dae8b9..797456632fc 100644
--- a/apps/theming/lib/Util.php
+++ b/apps/theming/lib/Util.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -186,8 +187,8 @@ class Util {
* @return string base64 encoded radio button svg
*/
public function generateRadioButton($color) {
- $radioButtonIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16">' .
- '<path d="M8 1a7 7 0 0 0-7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0-7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6zm0 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8z" fill="' . $color . '"/></svg>';
+ $radioButtonIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16">'
+ . '<path d="M8 1a7 7 0 0 0-7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0-7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6zm0 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8z" fill="' . $color . '"/></svg>';
return base64_encode($radioButtonIcon);
}
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..aa08a45a28b 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',
@@ -132,19 +128,10 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetCapabilities')]
+ 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..c5034600e03 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);
@@ -103,13 +95,13 @@ class IconControllerTest extends TestCase {
$this->imageManager->expects($this->once())
->method('getImage', false)
->with('favicon')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->imageManager->expects($this->any())
->method('shouldReplaceIcons')
->willReturn(true);
$this->imageManager->expects($this->once())
->method('getCachedImage')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->iconBuilder->expects($this->once())
->method('getFavicon')
->with('core')
@@ -127,7 +119,7 @@ class IconControllerTest extends TestCase {
$this->imageManager->expects($this->once())
->method('getImage')
->with('favicon', false)
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->imageManager->expects($this->any())
->method('shouldReplaceIcons')
->willReturn(false);
@@ -152,7 +144,7 @@ class IconControllerTest extends TestCase {
$this->imageManager->expects($this->once())
->method('getImage')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->imageManager->expects($this->any())
->method('shouldReplaceIcons')
->willReturn(true);
@@ -163,7 +155,7 @@ class IconControllerTest extends TestCase {
$file = $this->iconFileMock('filename', 'filecontent');
$this->imageManager->expects($this->once())
->method('getCachedImage')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->imageManager->expects($this->once())
->method('setCachedImage')
->willReturn($file);
@@ -177,7 +169,7 @@ class IconControllerTest extends TestCase {
$this->imageManager->expects($this->once())
->method('getImage')
->with('favicon')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->imageManager->expects($this->any())
->method('shouldReplaceIcons')
->willReturn(false);
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 6dfbb72bb77..fb461f03a28 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'],
@@ -95,14 +97,8 @@ class ThemingControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataUpdateStylesheetSuccess
- *
- * @param string $setting
- * @param string $value
- * @param string $message
- */
- public function testUpdateStylesheetSuccess($setting, $value, $message): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateStylesheetSuccess')]
+ public function testUpdateStylesheetSuccess(string $setting, string $value, string $message): void {
$this->themingDefaults
->expects($this->once())
->method('set')
@@ -116,8 +112,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $message,
],
'status' => 'success',
@@ -126,7 +122,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',
@@ -157,14 +153,8 @@ class ThemingControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataUpdateStylesheetError
- *
- * @param string $setting
- * @param string $value
- * @param string $message
- */
- public function testUpdateStylesheetError($setting, $value, $message): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateStylesheetError')]
+ public function testUpdateStylesheetError(string $setting, string $value, string $message): void {
$this->themingDefaults
->expects($this->never())
->method('set')
@@ -178,8 +168,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $message,
],
'status' => 'error',
@@ -209,8 +199,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'No file uploaded',
],
'status' => 'failure',
@@ -239,8 +229,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Invalid key',
],
'status' => 'failure',
@@ -254,9 +244,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
@@ -291,8 +278,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -332,8 +319,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -344,7 +331,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 +342,8 @@ class ThemingControllerTest extends TestCase {
];
}
- /** @dataProvider dataUpdateImages */
- public function testUpdateLogoNormalLogoUpload($mimeType, $folderExists = true): void {
+ #[\PHPUnit\Framework\Attributes\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();
@@ -394,8 +381,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'name' => 'logo.svg',
'message' => 'Saved',
'url' => 'imageUrl',
@@ -407,8 +394,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);
@@ -444,8 +430,8 @@ class ThemingControllerTest extends TestCase {
->willReturn('imageUrl');
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'name' => 'logo.svg',
'message' => 'Saved',
'url' => 'imageUrl',
@@ -489,8 +475,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => 'Unsupported image type',
],
'status' => 'failure'
@@ -500,7 +486,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'],
@@ -512,10 +498,8 @@ class ThemingControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataPhpUploadErrors
- */
- public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload($error, $expectedErrorMessage): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataPhpUploadErrors')]
+ public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload(int $error, string $expectedErrorMessage): void {
$this->request
->expects($this->once())
->method('getParam')
@@ -540,8 +524,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $expectedErrorMessage,
],
'status' => 'failure'
@@ -551,9 +535,7 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->uploadImage());
}
- /**
- * @dataProvider dataPhpUploadErrors
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataPhpUploadErrors')]
public function testUpdateLogoUploadWithInvalidImageUpload($error, $expectedErrorMessage): void {
$this->request
->expects($this->once())
@@ -579,8 +561,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'message' => $expectedErrorMessage
],
'status' => 'failure'
@@ -604,8 +586,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => 'MyValue',
'message' => 'Saved'
],
@@ -615,15 +597,15 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUndoDelete')]
+ public function testUndoDelete(string $value, string $filename): void {
$this->l10n
->expects($this->once())
->method('t')
@@ -637,8 +619,8 @@ class ThemingControllerTest extends TestCase {
$expected = new DataResponse(
[
- 'data' =>
- [
+ 'data'
+ => [
'value' => $value,
'message' => 'Saved',
],
@@ -722,7 +704,7 @@ class ThemingControllerTest extends TestCase {
];
}
- /** @dataProvider dataGetManifest */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetManifest')]
public function testGetManifest(bool $standalone): void {
$this->config
->expects($this->once())
@@ -752,8 +734,8 @@ class ThemingControllerTest extends TestCase {
$response = new JSONResponse([
'name' => 'Nextcloud',
'start_url' => 'localhost',
- 'icons' =>
- [
+ 'icons'
+ => [
[
'src' => 'touchicon?v=0',
'type' => 'image/png',
diff --git a/apps/theming/tests/Controller/UserThemeControllerTest.php b/apps/theming/tests/Controller/UserThemeControllerTest.php
index 7d369463c0d..9a8c1cd19aa 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'],
@@ -98,13 +92,8 @@ class UserThemeControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataTestThemes
- *
- * @param string $themeId
- * @param string $exception
- */
- public function testEnableTheme($themeId, ?string $exception = null): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestThemes')]
+ public function testEnableTheme(string $themeId, ?string $exception = null): void {
$this->themesService
->expects($this->any())
->method('getThemes')
@@ -118,13 +107,8 @@ class UserThemeControllerTest extends TestCase {
$this->assertEquals($expected, $this->userThemeController->enableTheme($themeId));
}
- /**
- * @dataProvider dataTestThemes
- *
- * @param string $themeId
- * @param string $exception
- */
- public function testDisableTheme($themeId, ?string $exception = null): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestThemes')]
+ 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..d881e4eb75c 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'],
@@ -69,13 +63,8 @@ class IconBuilderTest extends TestCase {
];
}
- /**
- * @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
- */
- public function testRenderAppIcon($app, $color, $file): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRenderAppIcon')]
+ public function testRenderAppIcon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
@@ -98,13 +87,8 @@ class IconBuilderTest extends TestCase {
// cloud be something like $expectedIcon->compareImages($icon, Imagick::METRIC_MEANABSOLUTEERROR)[1])
}
- /**
- * @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
- */
- public function testGetTouchIcon($app, $color, $file): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRenderAppIcon')]
+ public function testGetTouchIcon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
@@ -128,13 +112,8 @@ class IconBuilderTest extends TestCase {
// cloud be something like $expectedIcon->compareImages($icon, Imagick::METRIC_MEANABSOLUTEERROR)[1])
}
- /**
- * @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
- */
- public function testGetFavicon($app, $color, $file): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataRenderAppIcon')]
+ public function testGetFavicon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->imageManager->expects($this->once())
->method('shouldReplaceIcons')
@@ -165,8 +144,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 +157,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 +167,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..0c4d555cc00 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())
@@ -229,7 +221,7 @@ class ImageManagerTest extends TestCase {
$folder->expects($this->once())
->method('getFile')
->with('filename')
- ->will($this->throwException(new NotFoundException()));
+ ->willThrowException(new NotFoundException());
$image = $this->imageManager->getCachedImage('filename');
}
@@ -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],
@@ -321,10 +313,8 @@ class ImageManagerTest extends TestCase {
];
}
- /**
- * @dataProvider dataUpdateImage
- */
- public function testUpdateImage($key, $tmpFile, $folderExists, $shouldConvert): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateImage')]
+ 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..354ed1dec85 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']],
@@ -130,12 +126,11 @@ class ThemesServiceTest extends TestCase {
}
/**
- * @dataProvider dataTestEnableTheme
*
- * @param string $toEnable
* @param string[] $enabledThemes
* @param string[] $expectedEnabled
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestEnableTheme')]
public function testEnableTheme(string $toEnable, array $enabledThemes, array $expectedEnabled): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
@@ -154,7 +149,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestDisableTheme() {
+ public static function dataTestDisableTheme(): array {
return [
['dark', ['default'], ['default']],
['dark', ['dark'], []],
@@ -164,12 +159,11 @@ class ThemesServiceTest extends TestCase {
}
/**
- * @dataProvider dataTestDisableTheme
*
- * @param string $toEnable
* @param string[] $enabledThemes
* @param string[] $expectedEnabled
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestDisableTheme')]
public function testDisableTheme(string $toDisable, array $enabledThemes, array $expectedEnabled): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
@@ -189,7 +183,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestIsEnabled() {
+ public static function dataTestIsEnabled(): array {
return [
['dark', [], false],
['dark', ['dark'], true],
@@ -199,12 +193,10 @@ class ThemesServiceTest extends TestCase {
}
/**
- * @dataProvider dataTestIsEnabled
- *
- * @param string $toEnable
* @param string[] $enabledThemes
*/
- public function testIsEnabled(string $themeId, array $enabledThemes, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsEnabled')]
+ public function testIsEnabled(string $themeId, array $enabledThemes, bool $expected): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
->method('getUser')
@@ -267,7 +259,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestSetEnabledThemes() {
+ public static function dataTestSetEnabledThemes(): array {
return [
[[], []],
[['light'], ['light']],
@@ -277,11 +269,11 @@ class ThemesServiceTest extends TestCase {
}
/**
- * @dataProvider dataTestSetEnabledThemes
*
* @param string[] $enabledThemes
* @param string[] $expected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSetEnabledThemes')]
public function testSetEnabledThemes(array $enabledThemes, array $expected): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
diff --git a/apps/theming/tests/ServicesTest.php b/apps/theming/tests/ServicesTest.php
index 516a1fca776..3971c9b6698 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],
@@ -60,15 +60,11 @@ class ServicesTest extends TestCase {
];
}
- /**
- * @dataProvider queryData
- * @param string $service
- * @param string $expected
- */
- public function testContainerQuery($service, $expected = null): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('queryData')]
+ 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..9216450ec9c 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'),
@@ -86,12 +87,10 @@ class PersonalTest extends TestCase {
}
/**
- * @dataProvider dataTestGetForm
- *
- * @param string $toEnable
* @param string[] $enabledThemes
*/
- public function testGetForm(string $enforcedTheme, $themesState): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetForm')]
+ 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..f516e1f5116 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 [
@@ -145,10 +147,8 @@ class AccessibleThemeTestCase extends TestCase {
];
}
- /**
- * @dataProvider dataAccessibilityPairs
- */
- public function testAccessibilityOfVariables($mainColors, $backgroundColors, $minContrast): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAccessibilityPairs')]
+ 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..d03e8b13300 100644
--- a/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
+++ b/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -22,23 +23,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..7d56fb4b1be 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],
@@ -151,15 +146,11 @@ class DyslexiaFontTest extends TestCase {
}
/**
- * @dataProvider dataTestGetCustomCss
- *
* 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetCustomCss')]
+ 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..1acd12f12fa 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,15 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('legalUrlProvider')]
+ public function testGetImprintURL(string $imprintUrl): void {
$this->config
->expects($this->once())
->method('getAppValue')
@@ -207,11 +194,8 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals($imprintUrl, $this->template->getImprintUrl());
}
- /**
- * @param $privacyUrl
- * @dataProvider legalUrlProvider
- */
- public function testGetPrivacyURL($privacyUrl): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('legalUrlProvider')]
+ public function testGetPrivacyURL(string $privacyUrl): void {
$this->config
->expects($this->once())
->method('getAppValue')
@@ -351,18 +335,15 @@ 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
];
}
- /**
- * @param $invalidImprintUrl
- * @dataProvider invalidLegalUrlProvider
- */
- public function testGetShortFooterInvalidImprint($invalidImprintUrl): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('invalidLegalUrlProvider')]
+ public function testGetShortFooterInvalidImprint(string $invalidImprintUrl): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->config
->expects($this->exactly(5))
@@ -378,11 +359,8 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a> – Slogan', $this->template->getShortFooter());
}
- /**
- * @param $invalidPrivacyUrl
- * @dataProvider invalidLegalUrlProvider
- */
- public function testGetShortFooterInvalidPrivacy($invalidPrivacyUrl): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('invalidLegalUrlProvider')]
+ 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 +406,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,
@@ -469,9 +447,7 @@ class ThemingDefaultsTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetColorPrimary
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetColorPrimary')]
public function testGetColorPrimary(bool $disableTheming, string $primaryColor, string $userPrimaryColor, string $expected): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
@@ -803,7 +779,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 +788,8 @@ class ThemingDefaultsTest extends TestCase {
];
}
- /** @dataProvider dataReplaceImagePath */
- public function testReplaceImagePath($app, $image, $result = 'themingRoute?v=1234abcd'): void {
+ #[\PHPUnit\Framework\Attributes\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..1e944027e32 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],
@@ -46,14 +48,12 @@ class UtilTest extends TestCase {
];
}
- /**
- * @dataProvider dataColorContrast
- */
- public function testColorContrast(string $color1, string $color2, $contrast): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataColorContrast')]
+ 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],
@@ -61,10 +61,8 @@ class UtilTest extends TestCase {
['#ffff00', true],
];
}
- /**
- * @dataProvider dataInvertTextColor
- */
- public function testInvertTextColor($color, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataInvertTextColor')]
+ public function testInvertTextColor(string $color, bool $expected): void {
$invert = $this->util->invertTextColor($color);
$this->assertEquals($expected, $invert);
}
@@ -141,10 +139,8 @@ class UtilTest extends TestCase {
$this->assertEquals($expected, $button);
}
- /**
- * @dataProvider dataGetAppIcon
- */
- public function testGetAppIcon($app, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetAppIcon')]
+ public function testGetAppIcon(string $app, string $expected): void {
$this->appData->expects($this->any())
->method('getFolder')
->with('global/images')
@@ -153,7 +149,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'],
@@ -176,14 +172,12 @@ class UtilTest extends TestCase {
$this->assertEquals($file, $icon);
}
- /**
- * @dataProvider dataGetAppImage
- */
- public function testGetAppImage($app, $image, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetAppImage')]
+ 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,17 +211,15 @@ class UtilTest extends TestCase {
$this->assertTrue($actual);
}
- public function dataIsBackgroundThemed() {
+ public static function dataIsBackgroundThemed(): array {
return [
['', false],
['png', true],
['backgroundColor', false],
];
}
- /**
- * @dataProvider dataIsBackgroundThemed
- */
- public function testIsBackgroundThemed($backgroundMime, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsBackgroundThemed')]
+ 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/Service/BackupCodeStorageTest.php b/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
index 38d3bd55d11..cfc35e7cb1c 100644
--- a/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
+++ b/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
@@ -44,10 +44,10 @@ class BackupCodeStorageTest extends TestCase {
$this->notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $notification) {
- return $notification->getUser() === $this->testUID &&
- $notification->getObjectType() === 'create' &&
- $notification->getObjectId() === 'codes' &&
- $notification->getApp() === 'twofactor_backupcodes';
+ return $notification->getUser() === $this->testUID
+ && $notification->getObjectType() === 'create'
+ && $notification->getObjectId() === 'codes'
+ && $notification->getApp() === 'twofactor_backupcodes';
}));
// Create codes
diff --git a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
index a3c6d15902a..152ff80194a 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
@@ -51,9 +51,7 @@ class ProviderTest extends TestCase {
];
}
- /**
- * @dataProvider subjectData
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('subjectData')]
public function testParse(string $subject): void {
$lang = 'ru';
$event = $this->createMock(IEvent::class);
diff --git a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
index 16a0e8012f7..6b162894258 100644
--- a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
@@ -154,12 +154,12 @@ class RememberBackupCodesJobTest extends TestCase {
$this->notificationManager->expects($this->once())
->method('notify')
->with($this->callback(function (INotification $n) {
- return $n->getApp() === 'twofactor_backupcodes' &&
- $n->getUser() === 'validUID' &&
- $n->getDateTime()->getTimestamp() === 10000000 &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes' &&
- $n->getSubject() === 'create_backupcodes';
+ return $n->getApp() === 'twofactor_backupcodes'
+ && $n->getUser() === 'validUID'
+ && $n->getDateTime()->getTimestamp() === 10000000
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes'
+ && $n->getSubject() === 'create_backupcodes';
}));
self::invokePrivate($this->job, 'run', [['uid' => 'validUID']]);
@@ -198,11 +198,11 @@ class RememberBackupCodesJobTest extends TestCase {
$this->notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $n) {
- return $n->getApp() === 'twofactor_backupcodes' &&
- $n->getUser() === 'validUID' &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes' &&
- $n->getSubject() === 'create_backupcodes';
+ return $n->getApp() === 'twofactor_backupcodes'
+ && $n->getUser() === 'validUID'
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes'
+ && $n->getSubject() === 'create_backupcodes';
}));
$this->notificationManager->expects($this->never())
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
index fc80344ac57..229d8df05d3 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
@@ -48,10 +48,10 @@ class ClearNotificationsTest extends TestCase {
$this->notificationManager->expects($this->once())
->method('markProcessed')
->with($this->callback(function (INotification $n) {
- return $n->getUser() === 'fritz' &&
- $n->getApp() === 'twofactor_backupcodes' &&
- $n->getObjectType() === 'create' &&
- $n->getObjectId() === 'codes';
+ return $n->getUser() === 'fritz'
+ && $n->getApp() === 'twofactor_backupcodes'
+ && $n->getObjectType() === 'create'
+ && $n->getObjectId() === 'codes';
}));
$this->listener->handle($event);
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/pl.js b/apps/updatenotification/l10n/pl.js
index 5e6bb930bfb..84ec70b4c63 100644
--- a/apps/updatenotification/l10n/pl.js
+++ b/apps/updatenotification/l10n/pl.js
@@ -3,14 +3,23 @@ OC.L10N.register(
{
"Channel updated" : "Zaktualizowano kanał",
"Web updater is disabled" : "Aktualizator sieciowy jest wyłączony",
+ "App updated" : "Aplikacja została zaktualizowana",
+ "See what's new" : "Zobacz co nowego",
+ "{app} updated to version {version}" : "{app} zaktualizowana do wersji {version}",
"Update notifications" : "Powiadomienia o aktualizacji",
"The update server could not be reached since %d days to check for new updates." : "Serwer aktualizacji nie był dostępny od %d dni w celu sprawdzenia dostępności nowych aktualizacji.",
"Please check the Nextcloud and server log files for errors." : "Sprawdź pliki dziennika Nextcloud i serwera pod kątem błędów.",
"Update to {serverAndVersion} is available." : "Dostępna jest aktualizacja dla {serverAndVersion}.",
"Update for {app} to version %s is available." : "Dostępna jest aktualizacja dla {app} do wersji %s.",
"Update notification" : "Powiadomienie o aktualizacji",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacjach Nextcloud, aplikacji oraz zapewnia SSO dla modułu aktualizacji.",
+ "Give feedback" : "Przekaż opinię",
+ "Get started" : "Rozpocznij",
+ "No changelog available" : "Brak dostępnego dziennika zmian",
+ "What's new in {app} {version}" : "Co nowego w {app} {version}",
"A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <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}" : "Należy pamiętać, że po wydaniu nowego wydania aktualizacja pojawia się dopiero po pierwszym wydaniu pomocniczym lub później. Wdrażamy nowe wersje rozłożone w czasie i czasami pomijamy wersję, gdy zostaną znalezione problemy. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sprawdzone dnia {lastCheckedDate} - Otwórz dziennik zmian",
"Checking apps for compatible versions" : "Sprawdzanie aplikacji pod kątem kompatybilnych wersji",
"Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na 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." : "Nie można połączyć się ze sklepem z aplikacjami lub zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że serwer ma dostęp do Internetu i może łączyć się ze sklepem z aplikacjami.",
@@ -27,8 +36,10 @@ OC.L10N.register(
"Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
"Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Należy pamiętać, że aktualizator przez przeglądarkę nie jest zalecany przy więcej niż 100 kontach! Zamiast tego użyj aktualizacji z poziomu wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
+ "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." : "Aktualizator przez przeglądarkę jest wyłączony. Użyj aktualizatora z linii poleceń lub odpowiedniego mechanizmu aktualizacji dla swojej metody instalacji (np. docker pull), aby przeprowadzić aktualizację.",
"What's new?" : "Co nowego?",
"View changelog" : "Zobacz listę zmian",
"The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.",
@@ -43,6 +54,8 @@ OC.L10N.register(
"Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
+ "Changelog for app {app}" : "Dziennik zmian aplikacji {app}",
+ "What's new in {app} version {version}" : "Co nowego w aplikacji {app} wersja {version}",
"{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji."
},
"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/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json
index 9ed71f3842c..45f03603ad3 100644
--- a/apps/updatenotification/l10n/pl.json
+++ b/apps/updatenotification/l10n/pl.json
@@ -1,14 +1,23 @@
{ "translations": {
"Channel updated" : "Zaktualizowano kanał",
"Web updater is disabled" : "Aktualizator sieciowy jest wyłączony",
+ "App updated" : "Aplikacja została zaktualizowana",
+ "See what's new" : "Zobacz co nowego",
+ "{app} updated to version {version}" : "{app} zaktualizowana do wersji {version}",
"Update notifications" : "Powiadomienia o aktualizacji",
"The update server could not be reached since %d days to check for new updates." : "Serwer aktualizacji nie był dostępny od %d dni w celu sprawdzenia dostępności nowych aktualizacji.",
"Please check the Nextcloud and server log files for errors." : "Sprawdź pliki dziennika Nextcloud i serwera pod kątem błędów.",
"Update to {serverAndVersion} is available." : "Dostępna jest aktualizacja dla {serverAndVersion}.",
"Update for {app} to version %s is available." : "Dostępna jest aktualizacja dla {app} do wersji %s.",
"Update notification" : "Powiadomienie o aktualizacji",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacjach Nextcloud, aplikacji oraz zapewnia SSO dla modułu aktualizacji.",
+ "Give feedback" : "Przekaż opinię",
+ "Get started" : "Rozpocznij",
+ "No changelog available" : "Brak dostępnego dziennika zmian",
+ "What's new in {app} {version}" : "Co nowego w {app} {version}",
"A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <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}" : "Należy pamiętać, że po wydaniu nowego wydania aktualizacja pojawia się dopiero po pierwszym wydaniu pomocniczym lub później. Wdrażamy nowe wersje rozłożone w czasie i czasami pomijamy wersję, gdy zostaną znalezione problemy. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sprawdzone dnia {lastCheckedDate} - Otwórz dziennik zmian",
"Checking apps for compatible versions" : "Sprawdzanie aplikacji pod kątem kompatybilnych wersji",
"Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na 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." : "Nie można połączyć się ze sklepem z aplikacjami lub zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że serwer ma dostęp do Internetu i może łączyć się ze sklepem z aplikacjami.",
@@ -25,8 +34,10 @@
"Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
"Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Należy pamiętać, że aktualizator przez przeglądarkę nie jest zalecany przy więcej niż 100 kontach! Zamiast tego użyj aktualizacji z poziomu wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
+ "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." : "Aktualizator przez przeglądarkę jest wyłączony. Użyj aktualizatora z linii poleceń lub odpowiedniego mechanizmu aktualizacji dla swojej metody instalacji (np. docker pull), aby przeprowadzić aktualizację.",
"What's new?" : "Co nowego?",
"View changelog" : "Zobacz listę zmian",
"The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.",
@@ -41,6 +52,8 @@
"Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
+ "Changelog for app {app}" : "Dziennik zmian aplikacji {app}",
+ "What's new in {app} version {version}" : "Co nowego w aplikacji {app} wersja {version}",
"{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji."
},"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/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 56012667bb4..2a1678da5db 100644
--- a/apps/updatenotification/lib/AppInfo/Application.php
+++ b/apps/updatenotification/lib/AppInfo/Application.php
@@ -63,8 +63,8 @@ class Application extends App implements IBootstrap {
return;
}
- if (!$appManager->isEnabledForUser('notifications') &&
- $groupManager->isAdmin($user->getUID())) {
+ if (!$appManager->isEnabledForUser('notifications')
+ && $groupManager->isAdmin($user->getUID())) {
try {
$updateChecker = $container->get(UpdateChecker::class);
} catch (ContainerExceptionInterface $e) {
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/templates/empty.php b/apps/updatenotification/templates/empty.php
index 47473ebab9d..6e020c591ed 100644
--- a/apps/updatenotification/templates/empty.php
+++ b/apps/updatenotification/templates/empty.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
index 51237cf012e..26a5ecde052 100644
--- a/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
+++ b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
@@ -152,9 +152,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
];
}
- /**
- * @dataProvider dataCheckCoreUpdate
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCheckCoreUpdate')]
public function testCheckCoreUpdate(string $channel, mixed $versionCheck, mixed $version, ?string $readableVersion, ?int $errorDays): void {
$job = $this->getJob([
'createNotifications',
@@ -231,9 +229,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
];
}
- /**
- * @dataProvider dataCheckAppUpdates
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCheckAppUpdates')]
public function testCheckAppUpdates(array $apps, array $isUpdateAvailable, array $notifications): void {
$job = $this->getJob([
'isUpdateAvailable',
@@ -268,9 +264,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
];
}
- /**
- * @dataProvider dataCreateNotifications
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCreateNotifications')]
public function testCreateNotifications(string $app, string $version, string|false $lastNotification, string|false $callDelete, bool $createNotification, ?array $users, ?array $userNotifications): void {
$job = $this->getJob([
'deleteOutdatedNotifications',
@@ -351,9 +345,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetUsersToNotify
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetUsersToNotify')]
public function testGetUsersToNotify(array $groups, array $groupUsers, array $expected): void {
$job = $this->getJob();
@@ -394,10 +386,10 @@ class UpdateAvailableNotificationsTest extends TestCase {
}
/**
- * @dataProvider dataDeleteOutdatedNotifications
* @param string $app
* @param string $version
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteOutdatedNotifications')]
public function testDeleteOutdatedNotifications(string $app, string $version): void {
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
diff --git a/apps/updatenotification/tests/Controller/APIControllerTest.php b/apps/updatenotification/tests/Controller/APIControllerTest.php
index 3c3764248ef..84973e64c22 100644
--- a/apps/updatenotification/tests/Controller/APIControllerTest.php
+++ b/apps/updatenotification/tests/Controller/APIControllerTest.php
@@ -55,9 +55,7 @@ class APIControllerTest extends TestCase {
);
}
- /**
- * @dataProvider dataGetAppChangelog
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetAppChangelog')]
public function testGetAppChangelogEntry(
array $params,
bool $hasChanges,
diff --git a/apps/updatenotification/tests/Notification/NotifierTest.php b/apps/updatenotification/tests/Notification/NotifierTest.php
index 6d47d0c6b89..aab5a84d6f3 100644
--- a/apps/updatenotification/tests/Notification/NotifierTest.php
+++ b/apps/updatenotification/tests/Notification/NotifierTest.php
@@ -89,9 +89,7 @@ class NotifierTest extends TestCase {
];
}
- /**
- * @dataProvider dataUpdateAlreadyInstalledCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateAlreadyInstalledCheck')]
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 cb815bc8b69..0429c628049 100644
--- a/apps/updatenotification/tests/Settings/AdminTest.php
+++ b/apps/updatenotification/tests/Settings/AdminTest.php
@@ -448,9 +448,7 @@ class AdminTest extends TestCase {
];
}
- /**
- * @dataProvider changesProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('changesProvider')]
public function testFilterChanges($changes, $userLang, $expectation): void {
$iterator = $this->createMock(ILanguageIterator::class);
$iterator->expects($this->any())
diff --git a/apps/updatenotification/tests/UpdateCheckerTest.php b/apps/updatenotification/tests/UpdateCheckerTest.php
index af6f2c06d09..cffdc25d3e4 100644
--- a/apps/updatenotification/tests/UpdateCheckerTest.php
+++ b/apps/updatenotification/tests/UpdateCheckerTest.php
@@ -16,7 +16,7 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UpdateCheckerTest extends TestCase {
-
+
private ChangesCheck&MockObject $changesChecker;
private VersionCheck&MockObject $updater;
private IInitialState&MockObject $initialState;
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/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/pl.js b/apps/user_ldap/l10n/pl.js
index d2a45ba97d6..1e8b788f12f 100644
--- a/apps/user_ldap/l10n/pl.js
+++ b/apps/user_ldap/l10n/pl.js
@@ -6,10 +6,12 @@ OC.L10N.register(
"Invalid configuration: Anonymous binding is not allowed." : "Nieprawidłowa konfiguracja: Anonimowe podpinanie jest niedozwolone.",
"Valid configuration, connection established!" : "Konfiguracja poprawna, połączenie ustanowione!",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Konfiguracja poprawna, ale powiązanie nie powiodło się. Sprawdź konfigurację serwera i poświadczenia.",
+ "Invalid configuration: %s" : "Nieprawidłowa konfiguracja: %s",
"No action specified" : "Nie określono akcji",
"No configuration specified" : "Nie określono konfiguracji",
"No data specified" : "Nie określono danych",
"Invalid data specified" : "Podano nieprawidłowe dane",
+ "Could not set configuration %1$s to %2$s" : "Nie można ustawić konfiguracji %1$s na %2$s",
"Action does not exist" : "Akcja nie istnieje",
"Renewing …" : "Odnawianie…",
"Very weak password" : "Bardzo słabe hasło",
@@ -52,6 +54,14 @@ OC.L10N.register(
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Brak symbolu zastępczego \"%uid\". Zostanie zastąpiony nazwą logowania podczas odpytywania LDAP/AD.",
"Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Pole do wpisu dla grupy zostało wyłączone, ponieważ LDAP/AD nie obsługuje memberOf.",
+ "Password change rejected. Hint: %s" : "Zmiana hasła odrzucona: Wskazówka: %s",
+ "Mandatory field \"%s\" left empty" : "Obowiązkowe pole \"%s\" pozostawiono puste",
+ "A password is given, but not an LDAP agent" : "Podano hasło, ale nie wskazano agenta LDAP",
+ "No password is given for the user agent" : "Nie podano hasła dla agenta użytkownika",
+ "No LDAP base DN was given" : "Nie podano bazowego DN LDAP",
+ "User base DN is not a subnode of global base DN" : "Bazowy DN użytkownika nie jest podwęzłem globalnego DN",
+ "Group base DN is not a subnode of global base DN" : "Bazowy DN grupy nie jest podwęzłem globalnego DN",
+ "Login filter does not contain %s placeholder." : "Filtr logowania nie zawiera zastępnika %s.",
"Please login with the new password" : "Zaloguj się przy użyciu nowego hasła",
"LDAP User backend" : "Moduł użytkownika LDAP",
"Your password will expire tomorrow." : "Twoje hasło wygasa jutro.",
@@ -59,6 +69,10 @@ OC.L10N.register(
"_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."],
"LDAP/AD integration" : "Integracja z LDAP/AD",
"LDAP Connection" : "Połączenie LDAP",
+ "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %s połączenie nie powiodło się","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s"],
+ "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %2$s wyszukiwanie nie powiodło się ","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s"],
+ "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Jest jedna nieaktywna konfiguracja LDAP\" %s","Istnieją %1$n nieaktywne konfiguracje LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s"],
+ "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : ["Łączenie i wyszukiwanie działa dla skonfigurowanego połączenia LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)"],
"Invalid LDAP UUIDs" : "Nieprawidłowy LDAP UUID",
"None found" : "Nie znaleziono",
"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." : "Znaleziono nieprawidłowe identyfikatory UUID kont lub grup LDAP. Sprawdź ustawienia „Zastąp wykrywanie UUID” w części eksperckiej konfiguracji LDAP i użyj „occ ldap:update-uuid”, aby je zaktualizować.",
@@ -192,12 +206,23 @@ OC.L10N.register(
"Website Field" : "Pole witryny internetowej",
"User profile Website will be set from the specified attribute" : "Witryna internetowa profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Address Field" : "Pole adresu",
+ "User profile Address will be set from the specified attribute" : "Adres profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Twitter Field" : "Pole Twittera/X",
+ "User profile Twitter will be set from the specified attribute" : "Twitter profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Fediverse Field" : "Pole Fediversum",
+ "User profile Fediverse will be set from the specified attribute" : "Fediverse profilu użytkownika zostanie ustawione na podstawie określonego atrybutu",
"Organisation Field" : "Pole organizacji",
+ "User profile Organisation will be set from the specified attribute" : "Organizacja profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Role Field" : "Pole roli",
+ "User profile Role will be set from the specified attribute" : "Rola w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
+ "Headline Field" : "Pole nagłówka",
+ "User profile Headline will be set from the specified attribute" : "Nagłówek profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Biography Field" : "Pole biografii",
+ "User profile Biography will be set from the specified attribute" : "Biografia profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Birthdate Field" : "Pole daty urodzenia",
+ "User profile Date of birth will be set from the specified attribute" : "Data urodzenia w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
+ "Pronouns Field" : "Pole zaimków",
+ "User profile Pronouns will be set from the specified attribute" : "Zaimki w profilu użytkownika zostaną ustawione na podstawie określonego atrybutu",
"Internal Username" : "Wewnętrzna nazwa użytkownika",
"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.",
"Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:",
diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json
index 8925a27a537..57c25f9609b 100644
--- a/apps/user_ldap/l10n/pl.json
+++ b/apps/user_ldap/l10n/pl.json
@@ -4,10 +4,12 @@
"Invalid configuration: Anonymous binding is not allowed." : "Nieprawidłowa konfiguracja: Anonimowe podpinanie jest niedozwolone.",
"Valid configuration, connection established!" : "Konfiguracja poprawna, połączenie ustanowione!",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Konfiguracja poprawna, ale powiązanie nie powiodło się. Sprawdź konfigurację serwera i poświadczenia.",
+ "Invalid configuration: %s" : "Nieprawidłowa konfiguracja: %s",
"No action specified" : "Nie określono akcji",
"No configuration specified" : "Nie określono konfiguracji",
"No data specified" : "Nie określono danych",
"Invalid data specified" : "Podano nieprawidłowe dane",
+ "Could not set configuration %1$s to %2$s" : "Nie można ustawić konfiguracji %1$s na %2$s",
"Action does not exist" : "Akcja nie istnieje",
"Renewing …" : "Odnawianie…",
"Very weak password" : "Bardzo słabe hasło",
@@ -50,6 +52,14 @@
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Brak symbolu zastępczego \"%uid\". Zostanie zastąpiony nazwą logowania podczas odpytywania LDAP/AD.",
"Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Pole do wpisu dla grupy zostało wyłączone, ponieważ LDAP/AD nie obsługuje memberOf.",
+ "Password change rejected. Hint: %s" : "Zmiana hasła odrzucona: Wskazówka: %s",
+ "Mandatory field \"%s\" left empty" : "Obowiązkowe pole \"%s\" pozostawiono puste",
+ "A password is given, but not an LDAP agent" : "Podano hasło, ale nie wskazano agenta LDAP",
+ "No password is given for the user agent" : "Nie podano hasła dla agenta użytkownika",
+ "No LDAP base DN was given" : "Nie podano bazowego DN LDAP",
+ "User base DN is not a subnode of global base DN" : "Bazowy DN użytkownika nie jest podwęzłem globalnego DN",
+ "Group base DN is not a subnode of global base DN" : "Bazowy DN grupy nie jest podwęzłem globalnego DN",
+ "Login filter does not contain %s placeholder." : "Filtr logowania nie zawiera zastępnika %s.",
"Please login with the new password" : "Zaloguj się przy użyciu nowego hasła",
"LDAP User backend" : "Moduł użytkownika LDAP",
"Your password will expire tomorrow." : "Twoje hasło wygasa jutro.",
@@ -57,6 +67,10 @@
"_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."],
"LDAP/AD integration" : "Integracja z LDAP/AD",
"LDAP Connection" : "Połączenie LDAP",
+ "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %s połączenie nie powiodło się","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s"],
+ "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %2$s wyszukiwanie nie powiodło się ","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s"],
+ "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Jest jedna nieaktywna konfiguracja LDAP\" %s","Istnieją %1$n nieaktywne konfiguracje LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s"],
+ "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : ["Łączenie i wyszukiwanie działa dla skonfigurowanego połączenia LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)"],
"Invalid LDAP UUIDs" : "Nieprawidłowy LDAP UUID",
"None found" : "Nie znaleziono",
"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." : "Znaleziono nieprawidłowe identyfikatory UUID kont lub grup LDAP. Sprawdź ustawienia „Zastąp wykrywanie UUID” w części eksperckiej konfiguracji LDAP i użyj „occ ldap:update-uuid”, aby je zaktualizować.",
@@ -190,12 +204,23 @@
"Website Field" : "Pole witryny internetowej",
"User profile Website will be set from the specified attribute" : "Witryna internetowa profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Address Field" : "Pole adresu",
+ "User profile Address will be set from the specified attribute" : "Adres profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Twitter Field" : "Pole Twittera/X",
+ "User profile Twitter will be set from the specified attribute" : "Twitter profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Fediverse Field" : "Pole Fediversum",
+ "User profile Fediverse will be set from the specified attribute" : "Fediverse profilu użytkownika zostanie ustawione na podstawie określonego atrybutu",
"Organisation Field" : "Pole organizacji",
+ "User profile Organisation will be set from the specified attribute" : "Organizacja profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Role Field" : "Pole roli",
+ "User profile Role will be set from the specified attribute" : "Rola w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
+ "Headline Field" : "Pole nagłówka",
+ "User profile Headline will be set from the specified attribute" : "Nagłówek profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu",
"Biography Field" : "Pole biografii",
+ "User profile Biography will be set from the specified attribute" : "Biografia profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
"Birthdate Field" : "Pole daty urodzenia",
+ "User profile Date of birth will be set from the specified attribute" : "Data urodzenia w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu",
+ "Pronouns Field" : "Pole zaimków",
+ "User profile Pronouns will be set from the specified attribute" : "Zaimki w profilu użytkownika zostaną ustawione na podstawie określonego atrybutu",
"Internal Username" : "Wewnętrzna nazwa użytkownika",
"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.",
"Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:",
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/Access.php b/apps/user_ldap/lib/Access.php
index ff9ed6d7747..9fe0aa64268 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -341,8 +341,8 @@ class Access extends LDAPUtility {
$cr = $this->connection->getConnectionResource();
try {
// try PASSWD extended operation first
- return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password) ||
- @$this->invokeLDAPMethod('modReplace', $userDN, $password);
+ return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password)
+ || @$this->invokeLDAPMethod('modReplace', $userDN, $password);
} catch (ConstraintViolationException $e) {
throw new HintException('Password change rejected.', Util::getL10N('user_ldap')->t('Password change rejected. Hint: %s', $e->getMessage()), (int)$e->getCode());
}
@@ -1811,8 +1811,8 @@ class Access extends LDAPUtility {
* user. Instead we write a log message.
*/
$this->logger->info(
- 'Passed string does not resemble a valid GUID. Known UUID ' .
- '({uuid}) probably does not match UUID configuration.',
+ 'Passed string does not resemble a valid GUID. Known UUID '
+ . '({uuid}) probably does not match UUID configuration.',
['app' => 'user_ldap', 'uuid' => $guid]
);
return $guid;
diff --git a/apps/user_ldap/lib/AccessFactory.php b/apps/user_ldap/lib/AccessFactory.php
index c5c8ca17e41..da114c467a7 100644
--- a/apps/user_ldap/lib/AccessFactory.php
+++ b/apps/user_ldap/lib/AccessFactory.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/AppInfo/Application.php b/apps/user_ldap/lib/AppInfo/Application.php
index 01ffbc5b853..70b7920f7ab 100644
--- a/apps/user_ldap/lib/AppInfo/Application.php
+++ b/apps/user_ldap/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Command/ResetGroup.php b/apps/user_ldap/lib/Command/ResetGroup.php
index 89d3f31f69d..5833ca980f2 100644
--- a/apps/user_ldap/lib/Command/ResetGroup.php
+++ b/apps/user_ldap/lib/Command/ResetGroup.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Command/ResetUser.php b/apps/user_ldap/lib/Command/ResetUser.php
index 58dfbf68519..1409806e4ac 100644
--- a/apps/user_ldap/lib/Command/ResetUser.php
+++ b/apps/user_ldap/lib/Command/ResetUser.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/Command/TestUserSettings.php b/apps/user_ldap/lib/Command/TestUserSettings.php
index 51cf7c06473..12690158f98 100644
--- a/apps/user_ldap/lib/Command/TestUserSettings.php
+++ b/apps/user_ldap/lib/Command/TestUserSettings.php
@@ -91,9 +91,9 @@ class TestUserSettings extends Command {
if (!$access->isDNPartOfBase($knownDn, $access->getConnection()->ldapBaseUsers)) {
$output->writeln(
- "User <info>$knownDn</info> is not in one of the configured user bases: <info>" .
- implode(',', $access->getConnection()->ldapBaseUsers) .
- '</info>.'
+ "User <info>$knownDn</info> is not in one of the configured user bases: <info>"
+ . implode(',', $access->getConnection()->ldapBaseUsers)
+ . '</info>.'
);
}
diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php
index 78a5f93d29e..336179ac341 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);
@@ -663,8 +661,8 @@ class Connection extends LDAPUtility {
$this->doConnect($this->configuration->ldapBackupHost ?? '', $this->configuration->ldapBackupPort ?? '');
$this->bindResult = [];
$bindStatus = $this->bind();
- $error = $this->ldap->isResource($this->ldapConnectionRes) ?
- $this->ldap->errno($this->ldapConnectionRes) : -1;
+ $error = $this->ldap->isResource($this->ldapConnectionRes)
+ ? $this->ldap->errno($this->ldapConnectionRes) : -1;
if ($bindStatus && $error === 0 && !$forceBackupHost) {
//when bind to backup server succeeded and failed to main server,
//skip contacting it for 15min
diff --git a/apps/user_ldap/lib/ConnectionFactory.php b/apps/user_ldap/lib/ConnectionFactory.php
index fbc30f6b73f..dd0ad31920a 100644
--- a/apps/user_ldap/lib/ConnectionFactory.php
+++ b/apps/user_ldap/lib/ConnectionFactory.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php
index 0a019312e35..d98e6d41b52 100644
--- a/apps/user_ldap/lib/Controller/ConfigAPIController.php
+++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Controller/RenewPasswordController.php b/apps/user_ldap/lib/Controller/RenewPasswordController.php
index 275e2671bf7..8389a362b8f 100644
--- a/apps/user_ldap/lib/Controller/RenewPasswordController.php
+++ b/apps/user_ldap/lib/Controller/RenewPasswordController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Exceptions/AttributeNotSet.php b/apps/user_ldap/lib/Exceptions/AttributeNotSet.php
index 35df63518b4..4d6053eda66 100644
--- a/apps/user_ldap/lib/Exceptions/AttributeNotSet.php
+++ b/apps/user_ldap/lib/Exceptions/AttributeNotSet.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
index f468abd2282..d0d384c31de 100644
--- a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
+++ b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Exceptions/NotOnLDAP.php b/apps/user_ldap/lib/Exceptions/NotOnLDAP.php
index 8f3d8fc3499..cd74e918829 100644
--- a/apps/user_ldap/lib/Exceptions/NotOnLDAP.php
+++ b/apps/user_ldap/lib/Exceptions/NotOnLDAP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/GroupPluginManager.php b/apps/user_ldap/lib/GroupPluginManager.php
index 6bdb5559a02..9e8ae6805a4 100644
--- a/apps/user_ldap/lib/GroupPluginManager.php
+++ b/apps/user_ldap/lib/GroupPluginManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php
index 85c71fc5fd8..271cc96afbd 100644
--- a/apps/user_ldap/lib/Group_LDAP.php
+++ b/apps/user_ldap/lib/Group_LDAP.php
@@ -1019,9 +1019,9 @@ class Group_LDAP extends ABackend implements GroupInterface, IGroupLDAP, IGetDis
return $groupUsers;
}
$search = $this->access->escapeFilterPart($search, true);
- $isMemberUid =
- ($this->ldapGroupMemberAssocAttr === 'memberuid' ||
- $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress');
+ $isMemberUid
+ = ($this->ldapGroupMemberAssocAttr === 'memberuid'
+ || $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress');
//we need to apply the search filter
//alternatives that need to be checked:
@@ -1199,10 +1199,10 @@ class Group_LDAP extends ABackend implements GroupInterface, IGroupLDAP, IGetDis
* compared with GroupInterface::CREATE_GROUP etc.
*/
public function implementsActions($actions): bool {
- return (bool)((GroupInterface::COUNT_USERS |
- GroupInterface::DELETE_GROUP |
- GroupInterface::IS_ADMIN |
- $this->groupPluginManager->getImplementedActions()) & $actions);
+ return (bool)((GroupInterface::COUNT_USERS
+ | GroupInterface::DELETE_GROUP
+ | GroupInterface::IS_ADMIN
+ | $this->groupPluginManager->getImplementedActions()) & $actions);
}
/**
diff --git a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
index d4a8f332362..8b63d54aa66 100644
--- a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
+++ b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/IGroupLDAP.php b/apps/user_ldap/lib/IGroupLDAP.php
index 764e0c88e64..667eb421004 100644
--- a/apps/user_ldap/lib/IGroupLDAP.php
+++ b/apps/user_ldap/lib/IGroupLDAP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/ILDAPGroupPlugin.php b/apps/user_ldap/lib/ILDAPGroupPlugin.php
index d601e3a6548..261b9383dc1 100644
--- a/apps/user_ldap/lib/ILDAPGroupPlugin.php
+++ b/apps/user_ldap/lib/ILDAPGroupPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/ILDAPUserPlugin.php b/apps/user_ldap/lib/ILDAPUserPlugin.php
index 3dbda1f6a99..80437bef452 100644
--- a/apps/user_ldap/lib/ILDAPUserPlugin.php
+++ b/apps/user_ldap/lib/ILDAPUserPlugin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/IUserLDAP.php b/apps/user_ldap/lib/IUserLDAP.php
index 6fcd68c0c01..5e8e29c3adf 100644
--- a/apps/user_ldap/lib/IUserLDAP.php
+++ b/apps/user_ldap/lib/IUserLDAP.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,14 +9,14 @@ namespace OCA\User_LDAP;
interface IUserLDAP {
//Functions used by LDAPProvider
-
+
/**
* Return access for LDAP interaction.
* @param string $uid
* @return Access instance of Access for LDAP interaction
*/
public function getLDAPAccess($uid);
-
+
/**
* Return a new LDAP connection for the specified user.
* @param string $uid
diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php
index 7cfc473c950..76277b43c0b 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'])) {
@@ -179,8 +179,8 @@ class CleanUp extends TimedJob {
* @param bool $reset whether the offset should be set to 0
*/
public function setOffset(bool $reset = false): void {
- $newOffset = $reset ? 0 :
- $this->getOffset() + $this->getChunkSize();
+ $newOffset = $reset ? 0
+ : $this->getOffset() + $this->getChunkSize();
$this->ocConfig->setAppValue('user_ldap', 'cleanUpJobOffset', (string)$newOffset);
}
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/Migration/UUIDFix.php b/apps/user_ldap/lib/Migration/UUIDFix.php
index 309910cdf0c..e853f3bba66 100644
--- a/apps/user_ldap/lib/Migration/UUIDFix.php
+++ b/apps/user_ldap/lib/Migration/UUIDFix.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Migration/UUIDFixGroup.php b/apps/user_ldap/lib/Migration/UUIDFixGroup.php
index 4d039a72ebc..3924c91e7ba 100644
--- a/apps/user_ldap/lib/Migration/UUIDFixGroup.php
+++ b/apps/user_ldap/lib/Migration/UUIDFixGroup.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Migration/UUIDFixInsert.php b/apps/user_ldap/lib/Migration/UUIDFixInsert.php
index de777f6f010..bb92314d93a 100644
--- a/apps/user_ldap/lib/Migration/UUIDFixInsert.php
+++ b/apps/user_ldap/lib/Migration/UUIDFixInsert.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Migration/UUIDFixUser.php b/apps/user_ldap/lib/Migration/UUIDFixUser.php
index 0c292a2c2ae..71c3f638095 100644
--- a/apps/user_ldap/lib/Migration/UUIDFixUser.php
+++ b/apps/user_ldap/lib/Migration/UUIDFixUser.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Notification/Notifier.php b/apps/user_ldap/lib/Notification/Notifier.php
index 8d8bc8be5a3..0195cb9e65b 100644
--- a/apps/user_ldap/lib/Notification/Notifier.php
+++ b/apps/user_ldap/lib/Notification/Notifier.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php
index 014210ca8f0..89fb063265b 100644
--- a/apps/user_ldap/lib/Settings/Admin.php
+++ b/apps/user_ldap/lib/Settings/Admin.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,8 +9,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 +25,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/Settings/Section.php b/apps/user_ldap/lib/Settings/Section.php
index 6e342279f46..3b95e25513d 100644
--- a/apps/user_ldap/lib/Settings/Section.php
+++ b/apps/user_ldap/lib/Settings/Section.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/User/DeletedUsersIndex.php b/apps/user_ldap/lib/User/DeletedUsersIndex.php
index 9ce78f15d8b..f57f71a9d47 100644
--- a/apps/user_ldap/lib/User/DeletedUsersIndex.php
+++ b/apps/user_ldap/lib/User/DeletedUsersIndex.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php
index 1dff026e7d8..590cd6708b6 100644
--- a/apps/user_ldap/lib/User/User.php
+++ b/apps/user_ldap/lib/User/User.php
@@ -175,9 +175,9 @@ class User {
$cacheKey = 'getUserProfile-' . $username;
$profileCached = $this->connection->getFromCache($cacheKey);
// honoring profile disabled in config.php and check if user profile was refreshed
- if ($this->config->getSystemValueBool('profile.enabled', true) &&
- ($profileCached === null) && // no cache or TTL not expired
- !$this->wasRefreshed('profile')) {
+ if ($this->config->getSystemValueBool('profile.enabled', true)
+ && ($profileCached === null) // no cache or TTL not expired
+ && !$this->wasRefreshed('profile')) {
// check current data
$profileValues = [];
//User Profile Field - Phone number
diff --git a/apps/user_ldap/lib/UserPluginManager.php b/apps/user_ldap/lib/UserPluginManager.php
index bbcf4157016..ed87fea6fde 100644
--- a/apps/user_ldap/lib/UserPluginManager.php
+++ b/apps/user_ldap/lib/UserPluginManager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php
index 6a648b2624c..c3f56f5ff9b 100644
--- a/apps/user_ldap/lib/User_LDAP.php
+++ b/apps/user_ldap/lib/User_LDAP.php
@@ -119,8 +119,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I
$attrs = $this->access->userManager->getAttributes();
$users = $this->access->fetchUsersByLoginName($loginName, $attrs);
if (count($users) < 1) {
- throw new NotOnLDAP('No user available for the given login name on ' .
- $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort);
+ throw new NotOnLDAP('No user available for the given login name on '
+ . $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort);
}
return $users[0];
}
@@ -142,8 +142,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I
if (!$user instanceof User) {
$this->logger->warning(
- 'LDAP Login: Could not get user object for DN ' . $dn .
- '. Maybe the LDAP entry has no set display name attribute?',
+ 'LDAP Login: Could not get user object for DN ' . $dn
+ . '. Maybe the LDAP entry has no set display name attribute?',
['app' => 'user_ldap']
);
return false;
@@ -177,8 +177,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I
$user = $this->access->userManager->get($uid);
if (!$user instanceof User) {
- throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid .
- '. Maybe the LDAP entry has no set display name attribute?');
+ throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid
+ . '. Maybe the LDAP entry has no set display name attribute?');
}
if ($user->getUsername() !== false && $this->access->setPassword($user->getDN(), $password)) {
$ldapDefaultPPolicyDN = $this->access->connection->ldapDefaultPPolicyDN;
diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php
index 2739cdeba67..0d41f495ce9 100644
--- a/apps/user_ldap/lib/User_Proxy.php
+++ b/apps/user_ldap/lib/User_Proxy.php
@@ -415,11 +415,11 @@ class User_Proxy extends Proxy implements IUserBackend, UserInterface, IUserLDAP
if ($search !== '') {
$disabledUsers = array_filter(
$disabledUsers,
- fn (OfflineUser $user): bool =>
- mb_stripos($user->getOCName(), $search) !== false ||
- mb_stripos($user->getUID(), $search) !== false ||
- mb_stripos($user->getDisplayName(), $search) !== false ||
- mb_stripos($user->getEmail(), $search) !== false,
+ fn (OfflineUser $user): bool
+ => mb_stripos($user->getOCName(), $search) !== false
+ || mb_stripos($user->getUID(), $search) !== false
+ || mb_stripos($user->getDisplayName(), $search) !== false
+ || mb_stripos($user->getEmail(), $search) !== false,
);
}
return array_map(
diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php
index 6fe6c0c2906..15a9f9cb212 100644
--- a/apps/user_ldap/lib/Wizard.php
+++ b/apps/user_ldap/lib/Wizard.php
@@ -260,8 +260,8 @@ class Wizard extends LDAPUtility {
$this->applyFind('ldap_email_attr', $winner);
if ($writeLog) {
$this->logger->info(
- 'The mail attribute has automatically been reset, ' .
- 'because the original value did not return any results.',
+ 'The mail attribute has automatically been reset, '
+ . 'because the original value did not return any results.',
['app' => 'user_ldap']
);
}
@@ -1209,8 +1209,8 @@ class Wizard extends LDAPUtility {
//When looking for objectclasses, testing few entries is sufficient,
$dig = 3;
- $availableFeatures =
- $this->cumulativeSearchOnAttribute($objectclasses, $attr,
+ $availableFeatures
+ = $this->cumulativeSearchOnAttribute($objectclasses, $attr,
$dig, $maxEntryObjC);
if (is_array($availableFeatures)
&& count($availableFeatures) > 0) {
diff --git a/apps/user_ldap/lib/WizardResult.php b/apps/user_ldap/lib/WizardResult.php
index 09aadd2b781..d6fd67d4204 100644
--- a/apps/user_ldap/lib/WizardResult.php
+++ b/apps/user_ldap/lib/WizardResult.php
@@ -20,7 +20,7 @@ class WizardResult {
$this->changes[$key] = $value;
}
-
+
public function markChange() {
$this->markedChange = true;
}
diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php
index dba6e5480d5..54be29d0f86 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,39 +109,39 @@ 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));
}
/**
- * @dataProvider convertSID2StrSuccessData
* @param array $sidArray
* @param $sidExpected
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('convertSID2StrSuccessData')]
public function testConvertSID2StrSuccess(array $sidArray, $sidExpected): void {
$sidBinary = implode('', $sidArray);
$this->assertSame($sidExpected, $this->access->convertSID2Str($sidBinary));
}
- public function convertSID2StrSuccessData() {
+ public static function convertSID2StrSuccessData(): array {
return [
[
[
@@ -209,55 +199,49 @@ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dnInputDataProvider')]
+ 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 {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dnInputDataProvider')]
+ 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 +250,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 +274,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 +319,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 +360,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 +400,7 @@ class AccessTest extends TestCase {
$this->access->batchApplyUserAttributes($data);
}
- public function dNAttributeProvider() {
+ public static function dNAttributeProvider(): array {
// corresponds to Access::resemblesDN()
return [
'dn' => ['dn'],
@@ -426,13 +410,10 @@ class AccessTest extends TestCase {
];
}
- /**
- * @dataProvider dNAttributeProvider
- * @param $attribute
- */
- public function testSanitizeDN($attribute): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dNAttributeProvider')]
+ 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 +609,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 +657,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 +675,7 @@ class AccessTest extends TestCase {
];
}
- public function groupIDCandidateProvider() {
+ public static function groupIDCandidateProvider(): array {
return [
['alice', 'alice'],
['b/ob', 'b/ob'],
@@ -711,13 +692,8 @@ class AccessTest extends TestCase {
];
}
- /**
- * @dataProvider intUsernameProvider
- *
- * @param $name
- * @param $expected
- */
- public function testSanitizeUsername($name, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('intUsernameProvider')]
+ public function testSanitizeUsername(string $name, ?string $expected): void {
if ($expected === null) {
$this->expectException(\InvalidArgumentException::class);
}
@@ -725,9 +701,7 @@ class AccessTest extends TestCase {
$this->assertSame($expected, $sanitizedName);
}
- /**
- * @dataProvider groupIDCandidateProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('groupIDCandidateProvider')]
public function testSanitizeGroupIDCandidate(string $name, string $expected): void {
$sanitizedName = $this->access->sanitizeGroupIDCandidate($name);
$this->assertSame($expected, $sanitizedName);
@@ -752,7 +726,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..db92598fcfd 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',
' ',
@@ -86,15 +86,13 @@ class ConfigurationTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider configurationDataProvider
- */
- public function testSetValue($key, $input, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('configurationDataProvider')]
+ 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']],
@@ -105,18 +103,14 @@ class ConfigurationTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider avatarRuleValueProvider
- */
- public function testGetAvatarAttributes($setting, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('avatarRuleValueProvider')]
+ public function testGetAvatarAttributes(string $setting, array $expected): void {
$this->configuration->setConfiguration(['ldapUserAvatarRule' => $setting]);
$this->assertSame($expected, $this->configuration->getAvatarAttributes());
}
- /**
- * @dataProvider avatarRuleValueProvider
- */
- public function testResolveRule($setting, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('avatarRuleValueProvider')]
+ 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..7116e15898f 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();
@@ -102,8 +101,7 @@ class ConnectionTest extends \Test\TestCase {
// Not called often enough? Then, the fallback to the backup server is broken.
$this->connection->expects($this->exactly(2))
->method('getFromCache')
- ->with('overrideMainServer')
- ->will($this->onConsecutiveCalls(false, false, true, true));
+ ->with('overrideMainServer')->willReturnOnConsecutiveCalls(false, false, true, true);
$this->connection->expects($this->once())
->method('writeToCache')
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..10182111768 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',
@@ -485,9 +475,7 @@ class Group_LDAPTest extends TestCase {
];
}
- /**
- * @dataProvider groupWithMembersProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')]
public function testInGroupMember(string $gid, string $groupDn, array $memberDNs): void {
$uid = 'someUser';
$userDn = $memberDNs[0];
@@ -526,9 +514,7 @@ class Group_LDAPTest extends TestCase {
$this->assertTrue($this->groupBackend->inGroup($uid, $gid));
}
- /**
- * @dataProvider groupWithMembersProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')]
public function testInGroupMemberNot(string $gid, string $groupDn, array $memberDNs): void {
$uid = 'unelatedUser';
$userDn = 'uid=unrelatedUser,ou=unrelatedTeam,ou=unrelatedDepartment,dc=someDomain,dc=someTld';
@@ -567,14 +553,12 @@ class Group_LDAPTest extends TestCase {
$this->assertFalse($this->groupBackend->inGroup($uid, $gid));
}
- /**
- * @dataProvider groupWithMembersProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')]
public function testInGroupMemberUid(string $gid, string $groupDn, array $memberDNs): void {
$memberUids = [];
$userRecords = [];
foreach ($memberDNs as $dn) {
- $memberUids[] = ldap_explode_dn($dn, false)[0];
+ $memberUids[] = ldap_explode_dn($dn, 0)[0];
$userRecords[] = ['dn' => [$dn]];
}
@@ -777,8 +761,7 @@ class Group_LDAPTest extends TestCase {
->method('username2dn')
->willReturn($dn);
$this->access->expects($this->exactly(5))
- ->method('readAttribute')
- ->will($this->onConsecutiveCalls($expectedGroups, [], [], [], []));
+ ->method('readAttribute')->willReturnOnConsecutiveCalls($expectedGroups, [], [], [], []);
$this->access->expects($this->any())
->method('dn2groupname')
->willReturnArgument(0);
@@ -876,8 +859,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 +886,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,20 +929,18 @@ 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],
];
}
- /**
- * @dataProvider nestedGroupsProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('nestedGroupsProvider')]
public function testGetGroupsByMember(bool $nestedGroups): void {
$groupFilter = '(&(objectclass=nextcloudGroup)(nextcloudEnabled=TRUE))';
$this->access->connection->expects($this->any())
@@ -1076,7 +1057,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 +1071,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 +1079,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 +1093,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 +1107,7 @@ class Group_LDAPTest extends TestCase {
->willReturn(true);
$mapper = $this->getMockBuilder(GroupMapping::class)
- ->setMethods(['unmap'])
+ ->onlyMethods(['unmap'])
->disableOriginalConstructor()
->getMock();
@@ -1143,7 +1124,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 +1138,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 +1152,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 +1160,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 +1174,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 +1188,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 +1196,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 +1211,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 +1225,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 +1244,7 @@ class Group_LDAPTest extends TestCase {
$this->groupBackend->getGroupDetails('gid');
}
- public function groupMemberProvider() {
+ public static function groupMemberProvider(): array {
$base = 'dc=species,dc=earth';
$birdsDn = [
@@ -1331,11 +1312,8 @@ class Group_LDAPTest extends TestCase {
];
}
- /**
- * @param string[] $expectedMembers
- * @dataProvider groupMemberProvider
- */
- public function testGroupMembers(array $expectedResult, ?array $groupsInfo = null): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('groupMemberProvider')]
+ public function testGroupMembers(array $expectedResult, array $groupsInfo): void {
$this->access->expects($this->any())
->method('readAttribute')
->willReturnCallback(function ($group) use ($groupsInfo) {
@@ -1360,21 +1338,21 @@ 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],
];
}
- /**
- * @dataProvider displayNameProvider
- */
- public function testGetDisplayName(string $expected, $ldapResult): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('displayNameProvider')]
+ 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/Bootstrap.php b/apps/user_ldap/tests/Integration/Bootstrap.php
index 1e270aa6f8a..ef0909d4bea 100644
--- a/apps/user_ldap/tests/Integration/Bootstrap.php
+++ b/apps/user_ldap/tests/Integration/Bootstrap.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
index e45238fa978..e1529384239 100644
--- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
@@ -1,9 +1,10 @@
<?php
+
/**
* 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..5a1e563a1e8 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);
@@ -62,7 +61,7 @@ class CleanUpTest extends TestCase {
public function test_runNotAllowedByBrokenHelper(): void {
$this->mocks['helper']->expects($this->once())
->method('haveDisabledConfigurations')
- ->will($this->throwException(new Exception()));
+ ->willThrowException(new Exception());
$this->mocks['ocConfig']->expects($this->never())
->method('getSystemValue');
diff --git a/apps/user_ldap/tests/Jobs/SyncTest.php b/apps/user_ldap/tests/Jobs/SyncTest.php
index 8277e7d48a9..f6ecf984ab0 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
@@ -106,9 +102,7 @@ class SyncTest extends TestCase {
];
}
- /**
- * @dataProvider intervalDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('intervalDataProvider')]
public function testUpdateInterval(int $userCount, int $pagingSize1, int $pagingSize2): void {
$this->config->expects($this->once())
->method('setAppValue')
@@ -139,7 +133,7 @@ class SyncTest extends TestCase {
$this->sync->updateInterval();
}
- public function moreResultsProvider() {
+ public static function moreResultsProvider(): array {
return [
[ 3, 3, true ],
[ 3, 5, true ],
@@ -149,11 +143,13 @@ class SyncTest extends TestCase {
];
}
- /**
- * @dataProvider moreResultsProvider
- */
+ #[\PHPUnit\Framework\Attributes\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 +162,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 +187,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 [
@@ -204,22 +200,24 @@ class SyncTest extends TestCase {
];
}
- /**
- * @dataProvider cycleDataProvider
- */
- public function testDetermineNextCycle($cycleData, $prefixes, $expectedCycle): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('cycleDataProvider')]
+ 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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
} else {
$this->config->expects($this->never())
->method('setAppValue');
@@ -248,7 +246,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
[[
@@ -280,10 +278,8 @@ class SyncTest extends TestCase {
];
}
- /**
- * @dataProvider runDataProvider
- */
- public function testRun($runData): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')]
+ public function testRun(array $runData): void {
$this->config->expects($this->any())
->method('getAppValue')
->willReturnCallback(function ($app, $key, $default) use ($runData) {
@@ -310,13 +306,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): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->config->expects($this->any())
->method('getAppKeys')
->with('user_ldap')
@@ -327,7 +328,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 +345,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..6da592ad6a1 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',
@@ -31,11 +33,7 @@ class LDAPTest extends TestCase {
];
}
- /**
- * @param string $errorMessage
- * @param bool $passThrough
- * @dataProvider errorProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('errorProvider')]
public function testSearchWithErrorHandler(string $errorMessage, bool $passThrough): void {
$wasErrorHandlerCalled = false;
$errorHandler = function ($number, $message, $file, $line) use (&$wasErrorHandlerCalled): 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..6215ffcb6a1 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),
@@ -94,10 +86,8 @@ class UUIDFixInsertTest extends TestCase {
];
}
- /**
- * @dataProvider recordProvider
- */
- public function testRun($userBatches, $groupBatches): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('recordProvider')]
+ 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 +95,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')
@@ -121,10 +114,8 @@ class UUIDFixInsertTest extends TestCase {
$this->job->run($out);
}
- /**
- * @dataProvider recordProviderTooLongAndNone
- */
- public function testRunWithManyAndNone($userBatches, $groupBatches): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('recordProviderTooLongAndNone')]
+ 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 +123,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..061118f10c1 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],
@@ -34,9 +35,7 @@ class BirthdateParserServiceTest extends TestCase {
];
}
- /**
- * @dataProvider parseBirthdateDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('parseBirthdateDataProvider')]
public function testParseBirthdate(
string $value,
?DateTimeImmutable $expected,
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..bf9d1f5746f 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'],
@@ -105,9 +85,7 @@ class ManagerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dnProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dnProvider')]
public function testGetByDNExisting(string $inputDN): void {
$uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
@@ -197,16 +175,14 @@ class ManagerTest extends \Test\TestCase {
$this->assertNull($user);
}
- public function attributeRequestProvider() {
+ public static function attributeRequestProvider(): array {
return [
[false],
[true],
];
}
- /**
- * @dataProvider attributeRequestProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('attributeRequestProvider')]
public function testGetAttributes($minimal): void {
$this->connection->setConfiguration([
'ldapEmailAttribute' => 'MAIL',
@@ -217,10 +193,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..223e63421ad 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],
@@ -52,9 +47,7 @@ class OfflineUserTest extends TestCase {
];
}
- /**
- * @dataProvider shareOwnerProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('shareOwnerProvider')]
public function testHasActiveShares(array $existingShareTypes, bool $expected): void {
$shareMock = $this->createMock(IShare::class);
diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php
index badbca7f476..00edd8b3f9b 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 ],
@@ -788,9 +780,7 @@ class UserTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider extStorageHomeDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('extStorageHomeDataProvider')]
public function testUpdateExtStorageHome(string $expected, ?string $valueFromLDAP = null, bool $isSet = true): void {
if ($valueFromLDAP === null) {
$this->connection->expects($this->once())
@@ -865,7 +855,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 +874,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 +887,7 @@ class UserTest extends \Test\TestCase {
$this->userManager,
$this->notificationManager
])
- ->setMethods($requiredMethods)
+ ->onlyMethods($requiredMethods)
->getMock();
$this->connection->setConfiguration([
@@ -937,17 +927,15 @@ 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:'],
];
}
- /**
- * @dataProvider emptyHomeFolderAttributeValueProvider
- */
- public function testGetHomePathNotConfigured($attributeValue): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('emptyHomeFolderAttributeValueProvider')]
+ public function testGetHomePathNotConfigured(string $attributeValue): void {
$this->connection->expects($this->any())
->method('__get')
->with($this->equalTo('homeFolderNamingRule'))
@@ -1011,7 +999,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],
@@ -1020,10 +1008,8 @@ class UserTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider displayNameProvider
- */
- public function testComposeAndStoreDisplayName($part1, $part2, $expected, $expectTriggerChange): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('displayNameProvider')]
+ 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..f8900c3cca4 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,8 @@ class User_LDAPTest extends TestCase {
];
}
- /** @dataProvider avatarDataProvider */
- public function testCanChangeAvatar($imageData, $expected): void {
+ #[\PHPUnit\Framework\Attributes\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 +1440,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],
@@ -1461,10 +1450,8 @@ class User_LDAPTest extends TestCase {
];
}
- /**
- * @dataProvider actionProvider
- */
- public function testImplementsAction($configurable, $value, $actionCode, $expected): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('actionProvider')]
+ 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/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/BackgroundJob/ClearOldStatusesBackgroundJob.php b/apps/user_status/lib/BackgroundJob/ClearOldStatusesBackgroundJob.php
index 331d88de747..51a9c623a03 100644
--- a/apps/user_status/lib/BackgroundJob/ClearOldStatusesBackgroundJob.php
+++ b/apps/user_status/lib/BackgroundJob/ClearOldStatusesBackgroundJob.php
@@ -32,8 +32,7 @@ class ClearOldStatusesBackgroundJob extends TimedJob {
) {
parent::__construct($time);
- // Run every time the cron is run
- $this->setInterval(0);
+ $this->setInterval(60);
}
/**
diff --git a/apps/user_status/lib/Listener/UserLiveStatusListener.php b/apps/user_status/lib/Listener/UserLiveStatusListener.php
index aad0943b8d0..2db999d3712 100644
--- a/apps/user_status/lib/Listener/UserLiveStatusListener.php
+++ b/apps/user_status/lib/Listener/UserLiveStatusListener.php
@@ -61,8 +61,8 @@ class UserLiveStatusListener implements IEventListener {
// If the status is user-defined and one of the persistent status, we
// will not override it.
- if ($userStatus->getIsUserDefined() &&
- \in_array($userStatus->getStatus(), StatusService::PERSISTENT_STATUSES, true)) {
+ if ($userStatus->getIsUserDefined()
+ && \in_array($userStatus->getStatus(), StatusService::PERSISTENT_STATUSES, true)) {
return;
}
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/CapabilitiesTest.php b/apps/user_status/tests/Unit/CapabilitiesTest.php
index ef721eaa90b..f07892ff3fd 100644
--- a/apps/user_status/tests/Unit/CapabilitiesTest.php
+++ b/apps/user_status/tests/Unit/CapabilitiesTest.php
@@ -24,9 +24,7 @@ class CapabilitiesTest extends TestCase {
$this->capabilities = new Capabilities($this->emojiHelper);
}
- /**
- * @dataProvider getCapabilitiesDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('getCapabilitiesDataProvider')]
public function testGetCapabilities(bool $supportsEmojis): void {
$this->emojiHelper->expects($this->once())
->method('doesPlatformSupportEmoji')
diff --git a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
index 45ee9c4fdba..e99290319ed 100644
--- a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
+++ b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
@@ -87,9 +87,7 @@ class UserStatusControllerTest extends TestCase {
$this->controller->getStatus();
}
- /**
- * @dataProvider setStatusDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setStatusDataProvider')]
public function testSetStatus(
string $statusType,
?string $statusIcon,
@@ -149,9 +147,7 @@ class UserStatusControllerTest extends TestCase {
];
}
- /**
- * @dataProvider setPredefinedMessageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setPredefinedMessageDataProvider')]
public function testSetPredefinedMessage(
string $messageId,
?int $clearAt,
@@ -211,9 +207,7 @@ class UserStatusControllerTest extends TestCase {
];
}
- /**
- * @dataProvider setCustomMessageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setCustomMessageDataProvider')]
public function testSetCustomMessage(
?string $statusIcon,
string $message,
diff --git a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
index c9bda492210..ea4480489c7 100644
--- a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
+++ b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
@@ -134,9 +134,7 @@ class UserStatusMapperTest extends TestCase {
$this->mapper->insert($userStatus2);
}
- /**
- * @dataProvider clearStatusesOlderThanDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('clearStatusesOlderThanDataProvider')]
public function testClearStatusesOlderThan(string $status, bool $isUserDefined, int $timestamp, bool $expectsClean): void {
$oldStatus = UserStatus::fromParams([
'userId' => 'john.doe',
@@ -233,9 +231,7 @@ class UserStatusMapperTest extends TestCase {
];
}
- /**
- * @dataProvider dataCreateBackupStatus
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCreateBackupStatus')]
public function testCreateBackupStatus(bool $hasStatus, bool $hasBackup, bool $backupCreated): void {
if ($hasStatus) {
$userStatus1 = new UserStatus();
diff --git a/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php b/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
index c94315a7a93..c03eed0089e 100644
--- a/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
+++ b/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
@@ -49,9 +49,7 @@ class UserLiveStatusListenerTest extends TestCase {
);
}
- /**
- * @dataProvider handleEventWithCorrectEventDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('handleEventWithCorrectEventDataProvider')]
public function testHandleWithCorrectEvent(
string $userId,
string $previousStatus,
diff --git a/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php b/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
index 091466637f0..de5d92055f1 100644
--- a/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
+++ b/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
@@ -93,9 +93,7 @@ class PredefinedStatusServiceTest extends TestCase {
], $actual);
}
- /**
- * @dataProvider getIconForIdDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('getIconForIdDataProvider')]
public function testGetIconForId(string $id, ?string $expectedIcon): void {
$actual = $this->service->getIconForId($id);
$this->assertEquals($expectedIcon, $actual);
@@ -113,9 +111,7 @@ class PredefinedStatusServiceTest extends TestCase {
];
}
- /**
- * @dataProvider getTranslatedStatusForIdDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('getTranslatedStatusForIdDataProvider')]
public function testGetTranslatedStatusForId(string $id, ?string $expected): void {
$this->l10n->method('t')
->willReturnArgument(0);
@@ -136,9 +132,7 @@ class PredefinedStatusServiceTest extends TestCase {
];
}
- /**
- * @dataProvider isValidIdDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('isValidIdDataProvider')]
public function testIsValidId(string $id, bool $expected): void {
$actual = $this->service->isValidId($id);
$this->assertEquals($expected, $actual);
diff --git a/apps/user_status/tests/Unit/Service/StatusServiceTest.php b/apps/user_status/tests/Unit/Service/StatusServiceTest.php
index 7aeb1d48448..7dfa5b0d064 100644
--- a/apps/user_status/tests/Unit/Service/StatusServiceTest.php
+++ b/apps/user_status/tests/Unit/Service/StatusServiceTest.php
@@ -221,9 +221,7 @@ class StatusServiceTest extends TestCase {
$this->assertNull($status->getMessageId());
}
- /**
- * @dataProvider setStatusDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setStatusDataProvider')]
public function testSetStatus(
string $userId,
string $status,
@@ -344,9 +342,7 @@ class StatusServiceTest extends TestCase {
];
}
- /**
- * @dataProvider setPredefinedMessageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setPredefinedMessageDataProvider')]
public function testSetPredefinedMessage(
string $userId,
string $messageId,
@@ -433,9 +429,7 @@ class StatusServiceTest extends TestCase {
];
}
- /**
- * @dataProvider setCustomMessageDataProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('setCustomMessageDataProvider')]
public function testSetCustomMessage(
string $userId,
?string $statusIcon,
@@ -799,9 +793,7 @@ class StatusServiceTest extends TestCase {
];
}
- /**
- * @dataProvider dataSetUserStatus
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSetUserStatus')]
public function testSetUserStatus(string $messageId, string $oldMessageId, bool $expectedUpdateShortcut): void {
$previous = new UserStatus();
$previous->setId(1);
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/pl.js b/apps/weather_status/l10n/pl.js
index 908ac1bb3cc..d30fa34c75c 100644
--- a/apps/weather_status/l10n/pl.js
+++ b/apps/weather_status/l10n/pl.js
@@ -7,10 +7,23 @@ OC.L10N.register(
"Error" : "Błąd",
"Weather status" : "Stan pogody",
"Weather status in your dashboard" : "Stan pogody na pulpicie",
+ "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 pogody zintegrowany z aplikacją Panelu.\nPołożenie geograficzne może być automatycznie ustalane lub ręcznie definiowane. Wyświetlana jest prognoza na 6 godzin.\nStatus może być również integrowany z innymi aplikacjami, takimi jak Kalendarz.",
"{temperature} {unit} clear sky later today" : "{temperature} {unit} bezchmurne niebo później dzisiaj",
"{temperature} {unit} clear sky" : "{temperature} {unit} czyste niebo",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} pochmurno później dzisiaj",
"{temperature} {unit} cloudy" : "{temperature} {unit} pochmurno",
+ "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} śnieg i burza później dziś",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit} śnieg i burza",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} przelotne opady śniegu i burza później dziś",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} przelotne opady śniegu i burza",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} przelotne opady śniegu, burza i zmierzch polarny później dziś",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} przelotne opady śniegu, burza i zmierzch polarny",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} przelotne opady śniegu później dziś",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} przelotne opady śniegu",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} przelotne opady śniegu i zmierzch polarny później dziś",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} przelotne opady śniegu i zmierzch polarny",
+ "{temperature} {unit} snow later today" : "{temperature} {unit} śnieg później dziś",
+ "{temperature} {unit} snow" : "{temperature} {unit} śnieg",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} ładna pogoda później dzisiaj",
"{temperature} {unit} fair weather" : "{temperature} {unit} ładna pogoda",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} częściowe zachmurzenie później dzisiaj",
@@ -42,6 +55,7 @@ OC.L10N.register(
"There was an error setting the location." : "Wystąpił błąd podczas ustawiania lokalizacji.",
"There was an error saving the mode." : "Wystąpił błąd podczas zapisywania trybu.",
"There was an error using personal address." : "Wystąpił błąd podczas korzystania z własnego adresu.",
+ "Unknown weather code" : "Nieznany kod pogodowy",
"Detect location" : "Wykryj lokalizację",
"Set custom address" : "Ustaw adres własny",
"Favorites" : "Ulubione"
diff --git a/apps/weather_status/l10n/pl.json b/apps/weather_status/l10n/pl.json
index 45e4ab7a045..427c89fa8ac 100644
--- a/apps/weather_status/l10n/pl.json
+++ b/apps/weather_status/l10n/pl.json
@@ -5,10 +5,23 @@
"Error" : "Błąd",
"Weather status" : "Stan pogody",
"Weather status in your dashboard" : "Stan pogody na pulpicie",
+ "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 pogody zintegrowany z aplikacją Panelu.\nPołożenie geograficzne może być automatycznie ustalane lub ręcznie definiowane. Wyświetlana jest prognoza na 6 godzin.\nStatus może być również integrowany z innymi aplikacjami, takimi jak Kalendarz.",
"{temperature} {unit} clear sky later today" : "{temperature} {unit} bezchmurne niebo później dzisiaj",
"{temperature} {unit} clear sky" : "{temperature} {unit} czyste niebo",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} pochmurno później dzisiaj",
"{temperature} {unit} cloudy" : "{temperature} {unit} pochmurno",
+ "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} śnieg i burza później dziś",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit} śnieg i burza",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} przelotne opady śniegu i burza później dziś",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} przelotne opady śniegu i burza",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} przelotne opady śniegu, burza i zmierzch polarny później dziś",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} przelotne opady śniegu, burza i zmierzch polarny",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} przelotne opady śniegu później dziś",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} przelotne opady śniegu",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} przelotne opady śniegu i zmierzch polarny później dziś",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} przelotne opady śniegu i zmierzch polarny",
+ "{temperature} {unit} snow later today" : "{temperature} {unit} śnieg później dziś",
+ "{temperature} {unit} snow" : "{temperature} {unit} śnieg",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} ładna pogoda później dzisiaj",
"{temperature} {unit} fair weather" : "{temperature} {unit} ładna pogoda",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} częściowe zachmurzenie później dzisiaj",
@@ -40,6 +53,7 @@
"There was an error setting the location." : "Wystąpił błąd podczas ustawiania lokalizacji.",
"There was an error saving the mode." : "Wystąpił błąd podczas zapisywania trybu.",
"There was an error using personal address." : "Wystąpił błąd podczas korzystania z własnego adresu.",
+ "Unknown weather code" : "Nieznany kod pogodowy",
"Detect location" : "Wykryj lokalizację",
"Set custom address" : "Ustaw adres własny",
"Favorites" : "Ulubione"
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/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/Service/PHPMongoQuery.php b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
index d2668d17644..ecb8e819780 100644
--- a/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
+++ b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php
@@ -41,7 +41,7 @@ abstract class PHPMongoQuery {
}
return $ret;
}
-
+
/**
* Execute a Mongo query on a document
*
@@ -59,14 +59,14 @@ abstract class PHPMongoQuery {
if ($options['_debug'] && $options['_shouldLog']) {
$options['logger']->debug('executeQuery called', ['query' => $query, 'document' => $document, 'options' => $options]);
}
-
+
if (!is_array($query)) {
return (bool)$query;
}
-
+
return self::_executeQuery($query, $document, $options);
}
-
+
/**
* Internal execute query
*
@@ -145,7 +145,7 @@ abstract class PHPMongoQuery {
return false;
}
}
-
+
/**
* Execute a query object on an element
*
@@ -163,7 +163,7 @@ abstract class PHPMongoQuery {
}
return true;
}
-
+
/**
* Check if an operator is equal to a value
*
@@ -184,7 +184,7 @@ abstract class PHPMongoQuery {
}
return $operatorValue === $v;
}
-
+
/**
* Execute a Mongo Operator on an element
*
@@ -199,11 +199,11 @@ abstract class PHPMongoQuery {
if ($options['_debug'] && $options['_shouldLog']) {
$options['logger']->debug('_executeOperatorOnElement called', ['operator' => $operator, 'operatorValue' => $operatorValue, 'element' => $element, 'document' => $document]);
}
-
+
if ($operator === '$not') {
return !self::_executeQueryOnElement($operatorValue, $element, $document, $options);
}
-
+
$elementSpecifier = explode('.', $element);
$v = & $document;
$exists = true;
@@ -230,7 +230,7 @@ abstract class PHPMongoQuery {
break;
}
}
-
+
switch ($operator) {
case '$all':
if (!$exists) {
@@ -287,7 +287,7 @@ abstract class PHPMongoQuery {
return count(array_intersect($v, $operatorValue)) === 0;
}
return !in_array($v, $operatorValue);
-
+
case '$exists': return ($operatorValue && $exists) || (!$operatorValue && !$exists);
case '$mod':
if (!$exists) {
@@ -300,12 +300,12 @@ abstract class PHPMongoQuery {
throw new Exception('$mod requires two parameters in array: divisor and remainder');
}
return $v % $operatorValue[0] === $operatorValue[1];
-
+
default:
if (empty($options['unknownOperatorCallback']) || !is_callable($options['unknownOperatorCallback'])) {
throw new Exception('Operator ' . $operator . ' is unknown');
}
-
+
$res = call_user_func($options['unknownOperatorCallback'], $operator, $operatorValue, $element, $document);
if ($res === null) {
throw new Exception('Operator ' . $operator . ' is unknown');
@@ -317,7 +317,7 @@ abstract class PHPMongoQuery {
}
throw new Exception('Didn\'t return in switch');
}
-
+
/**
* Get the fields this query depends on
*
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/Service/PHPMongoQueryTest.php b/apps/webhook_listeners/tests/Service/PHPMongoQueryTest.php
index e56bdb6a4cf..337b876dfef 100644
--- a/apps/webhook_listeners/tests/Service/PHPMongoQueryTest.php
+++ b/apps/webhook_listeners/tests/Service/PHPMongoQueryTest.php
@@ -38,9 +38,7 @@ class PHPMongoQueryTest extends TestCase {
];
}
- /**
- * @dataProvider dataExecuteQuery
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteQuery')]
public function testExecuteQuery(array $query, array $document, bool $matches): void {
$this->assertEquals($matches, PHPMongoQuery::executeQuery($query, $document));
}
diff --git a/apps/workflowengine/appinfo/routes.php b/apps/workflowengine/appinfo/routes.php
index ffafd0b91a8..48e5ed2ef4e 100644
--- a/apps/workflowengine/appinfo/routes.php
+++ b/apps/workflowengine/appinfo/routes.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
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/lib/AppInfo/Application.php b/apps/workflowengine/lib/AppInfo/Application.php
index 09aa4ed3896..93b0ca49260 100644
--- a/apps/workflowengine/lib/AppInfo/Application.php
+++ b/apps/workflowengine/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/BackgroundJobs/Rotate.php b/apps/workflowengine/lib/BackgroundJobs/Rotate.php
index 66ac19f425a..d7984b1226a 100644
--- a/apps/workflowengine/lib/BackgroundJobs/Rotate.php
+++ b/apps/workflowengine/lib/BackgroundJobs/Rotate.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/AbstractStringCheck.php b/apps/workflowengine/lib/Check/AbstractStringCheck.php
index 4e56cda377e..d92e9901365 100644
--- a/apps/workflowengine/lib/Check/AbstractStringCheck.php
+++ b/apps/workflowengine/lib/Check/AbstractStringCheck.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -68,8 +69,8 @@ abstract class AbstractStringCheck implements ICheck {
throw new \UnexpectedValueException($this->l->t('The given operator is invalid'), 1);
}
- if (in_array($operator, ['matches', '!matches']) &&
- @preg_match($value, null) === false) {
+ if (in_array($operator, ['matches', '!matches'])
+ && @preg_match($value, null) === false) {
throw new \UnexpectedValueException($this->l->t('The given regular expression is invalid'), 2);
}
}
diff --git a/apps/workflowengine/lib/Check/FileMimeType.php b/apps/workflowengine/lib/Check/FileMimeType.php
index 3062994c6ba..a8dfa64528e 100644
--- a/apps/workflowengine/lib/Check/FileMimeType.php
+++ b/apps/workflowengine/lib/Check/FileMimeType.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -97,9 +98,9 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck {
return $this->cacheAndReturnMimeType($this->storage->getId(), $this->path, $cacheEntry->getMimeType());
}
- if ($this->storage->file_exists($this->path) &&
- $this->storage->filesize($this->path) &&
- $this->storage->instanceOfStorage(Local::class)
+ if ($this->storage->file_exists($this->path)
+ && $this->storage->filesize($this->path)
+ && $this->storage->instanceOfStorage(Local::class)
) {
$path = $this->storage->getLocalFile($this->path);
$mimeType = $this->mimeTypeDetector->detectContent($path);
@@ -125,12 +126,12 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck {
*/
protected function isWebDAVRequest() {
return substr($this->request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') ||
- $this->request->getPathInfo() === '/dav/files' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/') ||
- $this->request->getPathInfo() === '/dav/uploads' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/uploads/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ || $this->request->getPathInfo() === '/dav/files'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
+ || $this->request->getPathInfo() === '/dav/uploads'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/uploads/')
);
}
@@ -139,8 +140,8 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck {
*/
protected function isPublicWebDAVRequest() {
return substr($this->request->getScriptName(), 0 - strlen('/public.php')) === '/public.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
);
}
diff --git a/apps/workflowengine/lib/Check/FileSize.php b/apps/workflowengine/lib/Check/FileSize.php
index c1ee1d85ae9..5ee03ccc9cf 100644
--- a/apps/workflowengine/lib/Check/FileSize.php
+++ b/apps/workflowengine/lib/Check/FileSize.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php
index bd1609e9aff..811571f558a 100644
--- a/apps/workflowengine/lib/Check/FileSystemTags.php
+++ b/apps/workflowengine/lib/Check/FileSystemTags.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/RequestRemoteAddress.php b/apps/workflowengine/lib/Check/RequestRemoteAddress.php
index 6fb5a3026d6..b6f8fef5aed 100644
--- a/apps/workflowengine/lib/Check/RequestRemoteAddress.php
+++ b/apps/workflowengine/lib/Check/RequestRemoteAddress.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/RequestTime.php b/apps/workflowengine/lib/Check/RequestTime.php
index b6b4e9176c2..a49986652b8 100644
--- a/apps/workflowengine/lib/Check/RequestTime.php
+++ b/apps/workflowengine/lib/Check/RequestTime.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/RequestURL.php b/apps/workflowengine/lib/Check/RequestURL.php
index 62d6dbc5c38..fb2ac7e8fd5 100644
--- a/apps/workflowengine/lib/Check/RequestURL.php
+++ b/apps/workflowengine/lib/Check/RequestURL.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -70,10 +71,10 @@ class RequestURL extends AbstractStringCheck {
return false;
}
return substr($this->request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && (
- $this->request->getPathInfo() === '/webdav' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') ||
- $this->request->getPathInfo() === '/dav/files' ||
- str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
+ $this->request->getPathInfo() === '/webdav'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/')
+ || $this->request->getPathInfo() === '/dav/files'
+ || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/')
);
}
}
diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php
index 47db1bb0c68..572ef567074 100644
--- a/apps/workflowengine/lib/Check/RequestUserAgent.php
+++ b/apps/workflowengine/lib/Check/RequestUserAgent.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Check/UserGroupMembership.php b/apps/workflowengine/lib/Check/UserGroupMembership.php
index 215557a75a9..690f9974a49 100644
--- a/apps/workflowengine/lib/Check/UserGroupMembership.php
+++ b/apps/workflowengine/lib/Check/UserGroupMembership.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Controller/RequestTimeController.php b/apps/workflowengine/lib/Controller/RequestTimeController.php
index 1aca5d92d2d..4b34f16ce0a 100644
--- a/apps/workflowengine/lib/Controller/RequestTimeController.php
+++ b/apps/workflowengine/lib/Controller/RequestTimeController.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php
index 7d14fc83449..0f41679789d 100644
--- a/apps/workflowengine/lib/Manager.php
+++ b/apps/workflowengine/lib/Manager.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/lib/Settings/Section.php b/apps/workflowengine/lib/Settings/Section.php
index 5a13a9e4cec..aa790c9ddcc 100644
--- a/apps/workflowengine/lib/Settings/Section.php
+++ b/apps/workflowengine/lib/Settings/Section.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
index d10fcfb4cc3..26d4ccb8553 100644
--- a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
+++ b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
@@ -50,9 +50,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataExecuteStringCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteStringCheck')]
public function testExecuteStringCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void {
$check = $this->getCheckMock();
@@ -69,9 +67,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataValidateCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheck')]
public function testValidateCheck(string $operator, string $value): void {
$check = $this->getCheckMock();
@@ -90,9 +86,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataValidateCheckInvalid
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheckInvalid')]
public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void {
$check = $this->getCheckMock();
@@ -112,9 +106,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataMatch
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataMatch')]
public function testMatch(string $pattern, string $subject, array $matches, bool $expected): void {
$check = $this->getCheckMock();
diff --git a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
index f2f8026e666..c0e56daefa8 100644
--- a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
+++ b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
@@ -44,9 +44,7 @@ class RequestRemoteAddressTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataExecuteCheckIPv4
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv4')]
public function testExecuteCheckMatchesIPv4(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
@@ -57,9 +55,7 @@ class RequestRemoteAddressTest extends \Test\TestCase {
$this->assertEquals($expected, $check->executeCheck('matchesIPv4', $value));
}
- /**
- * @dataProvider dataExecuteCheckIPv4
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv4')]
public function testExecuteCheckNotMatchesIPv4(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
@@ -82,9 +78,7 @@ class RequestRemoteAddressTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataExecuteCheckIPv6
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv6')]
public function testExecuteCheckMatchesIPv6(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
@@ -95,9 +89,7 @@ class RequestRemoteAddressTest extends \Test\TestCase {
$this->assertEquals($expected, $check->executeCheck('matchesIPv6', $value));
}
- /**
- * @dataProvider dataExecuteCheckIPv6
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv6')]
public function testExecuteCheckNotMatchesIPv6(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
diff --git a/apps/workflowengine/tests/Check/RequestTimeTest.php b/apps/workflowengine/tests/Check/RequestTimeTest.php
index 21127d4d56e..a8439b8b9f4 100644
--- a/apps/workflowengine/tests/Check/RequestTimeTest.php
+++ b/apps/workflowengine/tests/Check/RequestTimeTest.php
@@ -63,9 +63,7 @@ class RequestTimeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataExecuteCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')]
public function testExecuteCheckIn(string $value, int $timestamp, bool $expected): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
@@ -76,9 +74,7 @@ class RequestTimeTest extends \Test\TestCase {
$this->assertEquals($expected, $check->executeCheck('in', $value));
}
- /**
- * @dataProvider dataExecuteCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')]
public function testExecuteCheckNotIn(string $value, int $timestamp, bool $expected): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
@@ -97,9 +93,7 @@ class RequestTimeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataValidateCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheck')]
public function testValidateCheck(string $operator, string $value): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
$check->validateCheck($operator, $value);
@@ -118,9 +112,7 @@ class RequestTimeTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataValidateCheckInvalid
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheckInvalid')]
public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
diff --git a/apps/workflowengine/tests/Check/RequestUserAgentTest.php b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
index 2fe96bf3bdb..09eaea6555b 100644
--- a/apps/workflowengine/tests/Check/RequestUserAgentTest.php
+++ b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
@@ -82,9 +82,7 @@ class RequestUserAgentTest extends TestCase {
];
}
- /**
- * @dataProvider dataExecuteCheck
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')]
public function testExecuteCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void {
$this->request->expects($this->once())
->method('getHeader')
diff --git a/apps/workflowengine/tests/ManagerTest.php b/apps/workflowengine/tests/ManagerTest.php
index 174c79cc3d3..56e45936b82 100644
--- a/apps/workflowengine/tests/ManagerTest.php
+++ b/apps/workflowengine/tests/ManagerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later