summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml4
m---------3rdparty0
-rw-r--r--apps/dav/appinfo/register_command.php4
-rw-r--r--apps/dav/command/createaddressbook.php31
-rw-r--r--apps/dav/lib/caldav/caldavbackend.php4
-rw-r--r--apps/dav/lib/carddav/addressbook.php6
-rw-r--r--apps/dav/lib/carddav/useraddressbooks.php2
-rw-r--r--apps/dav/lib/connector/sabre/auth.php40
-rw-r--r--apps/dav/lib/connector/sabre/fakelockerplugin.php18
-rw-r--r--apps/dav/lib/connector/sabre/file.php4
-rw-r--r--apps/dav/lib/connector/sabre/taglist.php158
-rw-r--r--apps/dav/lib/server.php1
-rw-r--r--apps/dav/tests/travis/caldavtest/config/serverinfo.xml2
-rw-r--r--apps/dav/tests/travis/caldavtest/tests/CardDAV/sync-report.xml1602
-rw-r--r--apps/dav/tests/travis/carddavtester.sh9
-rw-r--r--apps/dav/tests/unit/caldav/caldavbackendtest.php4
-rw-r--r--apps/dav/tests/unit/connector/sabre/FakeLockerPluginTest.php12
-rw-r--r--apps/dav/tests/unit/connector/sabre/auth.php64
-rw-r--r--apps/dav/tests/unit/connector/sabre/requesttest/auth.php62
-rw-r--r--apps/encryption/l10n/es_AR.js1
-rw-r--r--apps/encryption/l10n/es_AR.json1
-rw-r--r--apps/encryption/lib/migration.php2
-rw-r--r--apps/federation/appinfo/app.php1
-rw-r--r--apps/federation/appinfo/application.php20
-rw-r--r--apps/federation/img/app.svg4
-rw-r--r--apps/federation/lib/dbhandler.php1
-rw-r--r--apps/federation/lib/hooks.php50
-rw-r--r--apps/federation/tests/lib/dbhandlertest.php22
-rw-r--r--apps/federation/tests/lib/hookstest.php79
-rw-r--r--apps/files/ajax/scan.php8
-rw-r--r--apps/files/l10n/af_ZA.js1
-rw-r--r--apps/files/l10n/af_ZA.json1
-rw-r--r--apps/files/l10n/ar.js24
-rw-r--r--apps/files/l10n/ar.json24
-rw-r--r--apps/files/l10n/ast.js24
-rw-r--r--apps/files/l10n/ast.json24
-rw-r--r--apps/files/l10n/az.js24
-rw-r--r--apps/files/l10n/az.json24
-rw-r--r--apps/files/l10n/be.js1
-rw-r--r--apps/files/l10n/be.json1
-rw-r--r--apps/files/l10n/bg_BG.js22
-rw-r--r--apps/files/l10n/bg_BG.json22
-rw-r--r--apps/files/l10n/bn_BD.js14
-rw-r--r--apps/files/l10n/bn_BD.json14
-rw-r--r--apps/files/l10n/bn_IN.js3
-rw-r--r--apps/files/l10n/bn_IN.json3
-rw-r--r--apps/files/l10n/bs.js22
-rw-r--r--apps/files/l10n/bs.json22
-rw-r--r--apps/files/l10n/ca.js22
-rw-r--r--apps/files/l10n/ca.json22
-rw-r--r--apps/files/l10n/cs_CZ.js35
-rw-r--r--apps/files/l10n/cs_CZ.json35
-rw-r--r--apps/files/l10n/cy_GB.js8
-rw-r--r--apps/files/l10n/cy_GB.json8
-rw-r--r--apps/files/l10n/da.js24
-rw-r--r--apps/files/l10n/da.json24
-rw-r--r--apps/files/l10n/de.js24
-rw-r--r--apps/files/l10n/de.json24
-rw-r--r--apps/files/l10n/de_AT.js1
-rw-r--r--apps/files/l10n/de_AT.json1
-rw-r--r--apps/files/l10n/de_DE.js22
-rw-r--r--apps/files/l10n/de_DE.json22
-rw-r--r--apps/files/l10n/el.js31
-rw-r--r--apps/files/l10n/el.json31
-rw-r--r--apps/files/l10n/en_GB.js22
-rw-r--r--apps/files/l10n/en_GB.json22
-rw-r--r--apps/files/l10n/eo.js17
-rw-r--r--apps/files/l10n/eo.json17
-rw-r--r--apps/files/l10n/es.js24
-rw-r--r--apps/files/l10n/es.json24
-rw-r--r--apps/files/l10n/es_AR.js24
-rw-r--r--apps/files/l10n/es_AR.json24
-rw-r--r--apps/files/l10n/es_CL.js1
-rw-r--r--apps/files/l10n/es_CL.json1
-rw-r--r--apps/files/l10n/es_MX.js17
-rw-r--r--apps/files/l10n/es_MX.json17
-rw-r--r--apps/files/l10n/et_EE.js22
-rw-r--r--apps/files/l10n/et_EE.json22
-rw-r--r--apps/files/l10n/eu.js22
-rw-r--r--apps/files/l10n/eu.json22
-rw-r--r--apps/files/l10n/fa.js22
-rw-r--r--apps/files/l10n/fa.json22
-rw-r--r--apps/files/l10n/fi_FI.js36
-rw-r--r--apps/files/l10n/fi_FI.json36
-rw-r--r--apps/files/l10n/fr.js35
-rw-r--r--apps/files/l10n/fr.json35
-rw-r--r--apps/files/l10n/gl.js22
-rw-r--r--apps/files/l10n/gl.json22
-rw-r--r--apps/files/l10n/he.js8
-rw-r--r--apps/files/l10n/he.json8
-rw-r--r--apps/files/l10n/hi.js1
-rw-r--r--apps/files/l10n/hi.json1
-rw-r--r--apps/files/l10n/hr.js22
-rw-r--r--apps/files/l10n/hr.json22
-rw-r--r--apps/files/l10n/hu_HU.js24
-rw-r--r--apps/files/l10n/hu_HU.json24
-rw-r--r--apps/files/l10n/hy.js4
-rw-r--r--apps/files/l10n/hy.json4
-rw-r--r--apps/files/l10n/ia.js5
-rw-r--r--apps/files/l10n/ia.json5
-rw-r--r--apps/files/l10n/id.js24
-rw-r--r--apps/files/l10n/id.json24
-rw-r--r--apps/files/l10n/is.js8
-rw-r--r--apps/files/l10n/is.json8
-rw-r--r--apps/files/l10n/it.js35
-rw-r--r--apps/files/l10n/it.json35
-rw-r--r--apps/files/l10n/ja.js30
-rw-r--r--apps/files/l10n/ja.json30
-rw-r--r--apps/files/l10n/ka_GE.js8
-rw-r--r--apps/files/l10n/ka_GE.json8
-rw-r--r--apps/files/l10n/km.js8
-rw-r--r--apps/files/l10n/km.json8
-rw-r--r--apps/files/l10n/kn.js20
-rw-r--r--apps/files/l10n/kn.json20
-rw-r--r--apps/files/l10n/ko.js24
-rw-r--r--apps/files/l10n/ko.json24
-rw-r--r--apps/files/l10n/ku_IQ.js1
-rw-r--r--apps/files/l10n/ku_IQ.json1
-rw-r--r--apps/files/l10n/lb.js5
-rw-r--r--apps/files/l10n/lb.json5
-rw-r--r--apps/files/l10n/lo.js3
-rw-r--r--apps/files/l10n/lo.json3
-rw-r--r--apps/files/l10n/lt_LT.js18
-rw-r--r--apps/files/l10n/lt_LT.json18
-rw-r--r--apps/files/l10n/lv.js22
-rw-r--r--apps/files/l10n/lv.json22
-rw-r--r--apps/files/l10n/mk.js15
-rw-r--r--apps/files/l10n/mk.json15
-rw-r--r--apps/files/l10n/ms_MY.js5
-rw-r--r--apps/files/l10n/ms_MY.json5
-rw-r--r--apps/files/l10n/nb_NO.js24
-rw-r--r--apps/files/l10n/nb_NO.json24
-rw-r--r--apps/files/l10n/nds.js1
-rw-r--r--apps/files/l10n/nds.json1
-rw-r--r--apps/files/l10n/nl.js24
-rw-r--r--apps/files/l10n/nl.json24
-rw-r--r--apps/files/l10n/nn_NO.js10
-rw-r--r--apps/files/l10n/nn_NO.json10
-rw-r--r--apps/files/l10n/oc.js24
-rw-r--r--apps/files/l10n/oc.json24
-rw-r--r--apps/files/l10n/pa.js1
-rw-r--r--apps/files/l10n/pa.json1
-rw-r--r--apps/files/l10n/pl.js22
-rw-r--r--apps/files/l10n/pl.json22
-rw-r--r--apps/files/l10n/pt_BR.js24
-rw-r--r--apps/files/l10n/pt_BR.json24
-rw-r--r--apps/files/l10n/pt_PT.js24
-rw-r--r--apps/files/l10n/pt_PT.json24
-rw-r--r--apps/files/l10n/ro.js22
-rw-r--r--apps/files/l10n/ro.json22
-rw-r--r--apps/files/l10n/ru.js18
-rw-r--r--apps/files/l10n/ru.json18
-rw-r--r--apps/files/l10n/si_LK.js5
-rw-r--r--apps/files/l10n/si_LK.json5
-rw-r--r--apps/files/l10n/sk_SK.js24
-rw-r--r--apps/files/l10n/sk_SK.json24
-rw-r--r--apps/files/l10n/sl.js22
-rw-r--r--apps/files/l10n/sl.json22
-rw-r--r--apps/files/l10n/sq.js35
-rw-r--r--apps/files/l10n/sq.json35
-rw-r--r--apps/files/l10n/sr.js24
-rw-r--r--apps/files/l10n/sr.json24
-rw-r--r--apps/files/l10n/sr@latin.js22
-rw-r--r--apps/files/l10n/sr@latin.json22
-rw-r--r--apps/files/l10n/sv.js24
-rw-r--r--apps/files/l10n/sv.json24
-rw-r--r--apps/files/l10n/ta_LK.js6
-rw-r--r--apps/files/l10n/ta_LK.json6
-rw-r--r--apps/files/l10n/te.js1
-rw-r--r--apps/files/l10n/te.json1
-rw-r--r--apps/files/l10n/th_TH.js18
-rw-r--r--apps/files/l10n/th_TH.json18
-rw-r--r--apps/files/l10n/tr.js18
-rw-r--r--apps/files/l10n/tr.json18
-rw-r--r--apps/files/l10n/ug.js7
-rw-r--r--apps/files/l10n/ug.json7
-rw-r--r--apps/files/l10n/uk.js22
-rw-r--r--apps/files/l10n/uk.json22
-rw-r--r--apps/files/l10n/ur_PK.js1
-rw-r--r--apps/files/l10n/ur_PK.json1
-rw-r--r--apps/files/l10n/vi.js17
-rw-r--r--apps/files/l10n/vi.json17
-rw-r--r--apps/files/l10n/zh_CN.js37
-rw-r--r--apps/files/l10n/zh_CN.json37
-rw-r--r--apps/files/l10n/zh_HK.js1
-rw-r--r--apps/files/l10n/zh_HK.json1
-rw-r--r--apps/files/l10n/zh_TW.js24
-rw-r--r--apps/files/l10n/zh_TW.json24
-rw-r--r--apps/files_external/appinfo/register_command.php34
-rw-r--r--apps/files_external/appinfo/routes.php1
-rw-r--r--apps/files_external/command/listcommand.php231
-rw-r--r--apps/files_external/controller/storagescontroller.php14
-rw-r--r--apps/files_external/controller/userglobalstoragescontroller.php121
-rw-r--r--apps/files_external/css/settings.css8
-rw-r--r--apps/files_external/js/public_key.js14
-rw-r--r--apps/files_external/js/settings.js282
-rw-r--r--apps/files_external/l10n/ast.js2
-rw-r--r--apps/files_external/l10n/ast.json2
-rw-r--r--apps/files_external/l10n/az.js2
-rw-r--r--apps/files_external/l10n/az.json2
-rw-r--r--apps/files_external/l10n/bg_BG.js2
-rw-r--r--apps/files_external/l10n/bg_BG.json2
-rw-r--r--apps/files_external/l10n/ca.js2
-rw-r--r--apps/files_external/l10n/ca.json2
-rw-r--r--apps/files_external/l10n/cs_CZ.js3
-rw-r--r--apps/files_external/l10n/cs_CZ.json3
-rw-r--r--apps/files_external/l10n/da.js2
-rw-r--r--apps/files_external/l10n/da.json2
-rw-r--r--apps/files_external/l10n/de.js4
-rw-r--r--apps/files_external/l10n/de.json4
-rw-r--r--apps/files_external/l10n/de_DE.js2
-rw-r--r--apps/files_external/l10n/de_DE.json2
-rw-r--r--apps/files_external/l10n/el.js2
-rw-r--r--apps/files_external/l10n/el.json2
-rw-r--r--apps/files_external/l10n/en_GB.js2
-rw-r--r--apps/files_external/l10n/en_GB.json2
-rw-r--r--apps/files_external/l10n/eo.js2
-rw-r--r--apps/files_external/l10n/eo.json2
-rw-r--r--apps/files_external/l10n/es.js2
-rw-r--r--apps/files_external/l10n/es.json2
-rw-r--r--apps/files_external/l10n/es_AR.js4
-rw-r--r--apps/files_external/l10n/es_AR.json4
-rw-r--r--apps/files_external/l10n/es_MX.js4
-rw-r--r--apps/files_external/l10n/es_MX.json4
-rw-r--r--apps/files_external/l10n/et_EE.js2
-rw-r--r--apps/files_external/l10n/et_EE.json2
-rw-r--r--apps/files_external/l10n/eu.js2
-rw-r--r--apps/files_external/l10n/eu.json2
-rw-r--r--apps/files_external/l10n/fa.js4
-rw-r--r--apps/files_external/l10n/fa.json4
-rw-r--r--apps/files_external/l10n/fi_FI.js2
-rw-r--r--apps/files_external/l10n/fi_FI.json2
-rw-r--r--apps/files_external/l10n/fr.js2
-rw-r--r--apps/files_external/l10n/fr.json2
-rw-r--r--apps/files_external/l10n/gl.js2
-rw-r--r--apps/files_external/l10n/gl.json2
-rw-r--r--apps/files_external/l10n/hr.js2
-rw-r--r--apps/files_external/l10n/hr.json2
-rw-r--r--apps/files_external/l10n/hu_HU.js4
-rw-r--r--apps/files_external/l10n/hu_HU.json4
-rw-r--r--apps/files_external/l10n/id.js2
-rw-r--r--apps/files_external/l10n/id.json2
-rw-r--r--apps/files_external/l10n/it.js3
-rw-r--r--apps/files_external/l10n/it.json3
-rw-r--r--apps/files_external/l10n/ja.js2
-rw-r--r--apps/files_external/l10n/ja.json2
-rw-r--r--apps/files_external/l10n/ka_GE.js4
-rw-r--r--apps/files_external/l10n/ka_GE.json4
-rw-r--r--apps/files_external/l10n/km.js4
-rw-r--r--apps/files_external/l10n/km.json4
-rw-r--r--apps/files_external/l10n/ko.js2
-rw-r--r--apps/files_external/l10n/ko.json2
-rw-r--r--apps/files_external/l10n/lt_LT.js4
-rw-r--r--apps/files_external/l10n/lt_LT.json4
-rw-r--r--apps/files_external/l10n/lv.js4
-rw-r--r--apps/files_external/l10n/lv.json4
-rw-r--r--apps/files_external/l10n/nb_NO.js2
-rw-r--r--apps/files_external/l10n/nb_NO.json2
-rw-r--r--apps/files_external/l10n/nds.js2
-rw-r--r--apps/files_external/l10n/nds.json2
-rw-r--r--apps/files_external/l10n/nl.js2
-rw-r--r--apps/files_external/l10n/nl.json2
-rw-r--r--apps/files_external/l10n/oc.js2
-rw-r--r--apps/files_external/l10n/oc.json2
-rw-r--r--apps/files_external/l10n/pl.js2
-rw-r--r--apps/files_external/l10n/pl.json2
-rw-r--r--apps/files_external/l10n/pt_BR.js3
-rw-r--r--apps/files_external/l10n/pt_BR.json3
-rw-r--r--apps/files_external/l10n/pt_PT.js2
-rw-r--r--apps/files_external/l10n/pt_PT.json2
-rw-r--r--apps/files_external/l10n/ro.js2
-rw-r--r--apps/files_external/l10n/ro.json2
-rw-r--r--apps/files_external/l10n/ru.js2
-rw-r--r--apps/files_external/l10n/ru.json2
-rw-r--r--apps/files_external/l10n/sk_SK.js2
-rw-r--r--apps/files_external/l10n/sk_SK.json2
-rw-r--r--apps/files_external/l10n/sl.js2
-rw-r--r--apps/files_external/l10n/sl.json2
-rw-r--r--apps/files_external/l10n/sq.js4
-rw-r--r--apps/files_external/l10n/sq.json4
-rw-r--r--apps/files_external/l10n/sr.js2
-rw-r--r--apps/files_external/l10n/sr.json2
-rw-r--r--apps/files_external/l10n/sr@latin.js2
-rw-r--r--apps/files_external/l10n/sr@latin.json2
-rw-r--r--apps/files_external/l10n/sv.js2
-rw-r--r--apps/files_external/l10n/sv.json2
-rw-r--r--apps/files_external/l10n/th_TH.js2
-rw-r--r--apps/files_external/l10n/th_TH.json2
-rw-r--r--apps/files_external/l10n/tr.js2
-rw-r--r--apps/files_external/l10n/tr.json2
-rw-r--r--apps/files_external/l10n/uk.js2
-rw-r--r--apps/files_external/l10n/uk.json2
-rw-r--r--apps/files_external/l10n/vi.js4
-rw-r--r--apps/files_external/l10n/vi.json4
-rw-r--r--apps/files_external/l10n/zh_CN.js2
-rw-r--r--apps/files_external/l10n/zh_CN.json2
-rw-r--r--apps/files_external/l10n/zh_TW.js2
-rw-r--r--apps/files_external/l10n/zh_TW.json2
-rw-r--r--apps/files_external/personal.php26
-rw-r--r--apps/files_external/settings.php31
-rw-r--r--apps/files_external/templates/settings.php101
-rwxr-xr-xapps/files_external/tests/env/start-amazons3-ceph.sh17
-rwxr-xr-xapps/files_external/tests/env/start-ftp-morrisjobke.sh17
-rwxr-xr-xapps/files_external/tests/env/start-sftp-atmoz.sh17
-rwxr-xr-xapps/files_external/tests/env/start-smb-silvershell.sh17
-rwxr-xr-xapps/files_external/tests/env/start-smb-windows.sh3
-rwxr-xr-xapps/files_external/tests/env/start-swift-ceph.sh17
-rwxr-xr-xapps/files_external/tests/env/start-webdav-ownCloud.sh23
-rwxr-xr-xapps/files_external/tests/env/wait-for-connection45
-rw-r--r--apps/files_external/tests/js/settingsSpec.js7
-rw-r--r--apps/files_sharing/api/ocssharewrapper.php36
-rw-r--r--apps/files_sharing/api/share20ocs.php82
-rw-r--r--apps/files_sharing/appinfo/app.php1
-rw-r--r--apps/files_sharing/appinfo/application.php31
-rw-r--r--apps/files_sharing/js/public.js6
-rw-r--r--apps/files_sharing/l10n/de_DE.js10
-rw-r--r--apps/files_sharing/l10n/de_DE.json10
-rw-r--r--apps/files_sharing/l10n/es_AR.js1
-rw-r--r--apps/files_sharing/l10n/es_AR.json1
-rw-r--r--apps/files_sharing/lib/external/manager.php2
-rw-r--r--apps/files_sharing/lib/mountprovider.php16
-rw-r--r--apps/files_sharing/lib/propagation/changewatcher.php110
-rw-r--r--apps/files_sharing/lib/propagation/grouppropagationmanager.php133
-rw-r--r--apps/files_sharing/lib/propagation/propagationmanager.php144
-rw-r--r--apps/files_sharing/lib/propagation/recipientpropagator.php164
-rw-r--r--apps/files_sharing/lib/sharedmount.php14
-rw-r--r--apps/files_sharing/lib/sharedpropagator.php43
-rw-r--r--apps/files_sharing/lib/sharedstorage.php16
-rw-r--r--apps/files_sharing/tests/api/share20ocstest.php228
-rw-r--r--apps/files_sharing/tests/etagpropagation.php3
-rw-r--r--apps/files_sharing/tests/grouppropagationmanager.php173
-rw-r--r--apps/files_sharing/tests/testcase.php1
-rw-r--r--apps/files_trashbin/l10n/ar.js1
-rw-r--r--apps/files_trashbin/l10n/ar.json1
-rw-r--r--apps/files_trashbin/l10n/ast.js2
-rw-r--r--apps/files_trashbin/l10n/ast.json2
-rw-r--r--apps/files_trashbin/l10n/az.js6
-rw-r--r--apps/files_trashbin/l10n/az.json6
-rw-r--r--apps/files_trashbin/l10n/bg_BG.js4
-rw-r--r--apps/files_trashbin/l10n/bg_BG.json4
-rw-r--r--apps/files_trashbin/l10n/bn_BD.js4
-rw-r--r--apps/files_trashbin/l10n/bn_BD.json4
-rw-r--r--apps/files_trashbin/l10n/bn_IN.js4
-rw-r--r--apps/files_trashbin/l10n/bn_IN.json4
-rw-r--r--apps/files_trashbin/l10n/bs.js4
-rw-r--r--apps/files_trashbin/l10n/bs.json4
-rw-r--r--apps/files_trashbin/l10n/ca.js4
-rw-r--r--apps/files_trashbin/l10n/ca.json4
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.js6
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.json6
-rw-r--r--apps/files_trashbin/l10n/cy_GB.js4
-rw-r--r--apps/files_trashbin/l10n/cy_GB.json4
-rw-r--r--apps/files_trashbin/l10n/da.js6
-rw-r--r--apps/files_trashbin/l10n/da.json6
-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_AT.js4
-rw-r--r--apps/files_trashbin/l10n/de_AT.json4
-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.js6
-rw-r--r--apps/files_trashbin/l10n/el.json6
-rw-r--r--apps/files_trashbin/l10n/en_GB.js4
-rw-r--r--apps/files_trashbin/l10n/en_GB.json4
-rw-r--r--apps/files_trashbin/l10n/eo.js4
-rw-r--r--apps/files_trashbin/l10n/eo.json4
-rw-r--r--apps/files_trashbin/l10n/es.js6
-rw-r--r--apps/files_trashbin/l10n/es.json6
-rw-r--r--apps/files_trashbin/l10n/es_AR.js4
-rw-r--r--apps/files_trashbin/l10n/es_AR.json4
-rw-r--r--apps/files_trashbin/l10n/es_MX.js4
-rw-r--r--apps/files_trashbin/l10n/es_MX.json4
-rw-r--r--apps/files_trashbin/l10n/et_EE.js6
-rw-r--r--apps/files_trashbin/l10n/et_EE.json6
-rw-r--r--apps/files_trashbin/l10n/eu.js4
-rw-r--r--apps/files_trashbin/l10n/eu.json4
-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_FI.js6
-rw-r--r--apps/files_trashbin/l10n/fi_FI.json6
-rw-r--r--apps/files_trashbin/l10n/fr.js6
-rw-r--r--apps/files_trashbin/l10n/fr.json6
-rw-r--r--apps/files_trashbin/l10n/gl.js6
-rw-r--r--apps/files_trashbin/l10n/gl.json6
-rw-r--r--apps/files_trashbin/l10n/he.js4
-rw-r--r--apps/files_trashbin/l10n/he.json4
-rw-r--r--apps/files_trashbin/l10n/hr.js4
-rw-r--r--apps/files_trashbin/l10n/hr.json4
-rw-r--r--apps/files_trashbin/l10n/hu_HU.js6
-rw-r--r--apps/files_trashbin/l10n/hu_HU.json6
-rw-r--r--apps/files_trashbin/l10n/ia.js4
-rw-r--r--apps/files_trashbin/l10n/ia.json4
-rw-r--r--apps/files_trashbin/l10n/id.js6
-rw-r--r--apps/files_trashbin/l10n/id.json6
-rw-r--r--apps/files_trashbin/l10n/is.js4
-rw-r--r--apps/files_trashbin/l10n/is.json4
-rw-r--r--apps/files_trashbin/l10n/it.js6
-rw-r--r--apps/files_trashbin/l10n/it.json6
-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_GE.js4
-rw-r--r--apps/files_trashbin/l10n/ka_GE.json4
-rw-r--r--apps/files_trashbin/l10n/km.js4
-rw-r--r--apps/files_trashbin/l10n/km.json4
-rw-r--r--apps/files_trashbin/l10n/kn.js4
-rw-r--r--apps/files_trashbin/l10n/kn.json4
-rw-r--r--apps/files_trashbin/l10n/ko.js6
-rw-r--r--apps/files_trashbin/l10n/ko.json6
-rw-r--r--apps/files_trashbin/l10n/lb.js4
-rw-r--r--apps/files_trashbin/l10n/lb.json4
-rw-r--r--apps/files_trashbin/l10n/lt_LT.js6
-rw-r--r--apps/files_trashbin/l10n/lt_LT.json6
-rw-r--r--apps/files_trashbin/l10n/lv.js4
-rw-r--r--apps/files_trashbin/l10n/lv.json4
-rw-r--r--apps/files_trashbin/l10n/mk.js4
-rw-r--r--apps/files_trashbin/l10n/mk.json4
-rw-r--r--apps/files_trashbin/l10n/ms_MY.js4
-rw-r--r--apps/files_trashbin/l10n/ms_MY.json4
-rw-r--r--apps/files_trashbin/l10n/nb_NO.js6
-rw-r--r--apps/files_trashbin/l10n/nb_NO.json6
-rw-r--r--apps/files_trashbin/l10n/nl.js6
-rw-r--r--apps/files_trashbin/l10n/nl.json6
-rw-r--r--apps/files_trashbin/l10n/nn_NO.js4
-rw-r--r--apps/files_trashbin/l10n/nn_NO.json4
-rw-r--r--apps/files_trashbin/l10n/oc.js2
-rw-r--r--apps/files_trashbin/l10n/oc.json2
-rw-r--r--apps/files_trashbin/l10n/pa.js4
-rw-r--r--apps/files_trashbin/l10n/pa.json4
-rw-r--r--apps/files_trashbin/l10n/pl.js4
-rw-r--r--apps/files_trashbin/l10n/pl.json4
-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.js6
-rw-r--r--apps/files_trashbin/l10n/pt_PT.json6
-rw-r--r--apps/files_trashbin/l10n/ro.js4
-rw-r--r--apps/files_trashbin/l10n/ro.json4
-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/si_LK.js4
-rw-r--r--apps/files_trashbin/l10n/si_LK.json4
-rw-r--r--apps/files_trashbin/l10n/sk_SK.js6
-rw-r--r--apps/files_trashbin/l10n/sk_SK.json6
-rw-r--r--apps/files_trashbin/l10n/sl.js4
-rw-r--r--apps/files_trashbin/l10n/sl.json4
-rw-r--r--apps/files_trashbin/l10n/sq.js2
-rw-r--r--apps/files_trashbin/l10n/sq.json2
-rw-r--r--apps/files_trashbin/l10n/sr.js6
-rw-r--r--apps/files_trashbin/l10n/sr.json6
-rw-r--r--apps/files_trashbin/l10n/sr@latin.js4
-rw-r--r--apps/files_trashbin/l10n/sr@latin.json4
-rw-r--r--apps/files_trashbin/l10n/sv.js2
-rw-r--r--apps/files_trashbin/l10n/sv.json2
-rw-r--r--apps/files_trashbin/l10n/ta_LK.js4
-rw-r--r--apps/files_trashbin/l10n/ta_LK.json4
-rw-r--r--apps/files_trashbin/l10n/te.js4
-rw-r--r--apps/files_trashbin/l10n/te.json4
-rw-r--r--apps/files_trashbin/l10n/th_TH.js6
-rw-r--r--apps/files_trashbin/l10n/th_TH.json6
-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/ug.js4
-rw-r--r--apps/files_trashbin/l10n/ug.json4
-rw-r--r--apps/files_trashbin/l10n/uk.js5
-rw-r--r--apps/files_trashbin/l10n/uk.json5
-rw-r--r--apps/files_trashbin/l10n/ur_PK.js4
-rw-r--r--apps/files_trashbin/l10n/ur_PK.json4
-rw-r--r--apps/files_trashbin/l10n/vi.js4
-rw-r--r--apps/files_trashbin/l10n/vi.json4
-rw-r--r--apps/files_trashbin/l10n/zh_CN.js6
-rw-r--r--apps/files_trashbin/l10n/zh_CN.json6
-rw-r--r--apps/files_trashbin/l10n/zh_HK.js4
-rw-r--r--apps/files_trashbin/l10n/zh_HK.json4
-rw-r--r--apps/files_trashbin/l10n/zh_TW.js2
-rw-r--r--apps/files_trashbin/l10n/zh_TW.json2
-rw-r--r--apps/files_trashbin/lib/trashbin.php6
-rw-r--r--apps/files_trashbin/tests/trashbin.php1
-rw-r--r--apps/files_versions/tests/versions.php1
-rw-r--r--apps/user_ldap/l10n/lt_LT.js1
-rw-r--r--apps/user_ldap/l10n/lt_LT.json1
-rw-r--r--apps/user_ldap/l10n/oc.js1
-rw-r--r--apps/user_ldap/l10n/oc.json1
-rw-r--r--apps/user_ldap/lib/access.php106
-rw-r--r--build/integration/features/bootstrap/FeatureContext.php145
-rw-r--r--build/integration/features/sharing-v1.feature123
-rw-r--r--build/integration/features/webdav-related.feature23
-rw-r--r--core/css/styles.css5
-rw-r--r--core/js/files/iedavclient.js5
-rw-r--r--core/l10n/de.js3
-rw-r--r--core/l10n/de.json3
-rw-r--r--core/l10n/zh_CN.js12
-rw-r--r--core/l10n/zh_CN.json12
-rw-r--r--core/search/js/search.js12
-rw-r--r--core/templates/update.admin.php6
-rw-r--r--core/vendor/davclient.js/lib/client.js33
-rw-r--r--db_structure.xml165
-rw-r--r--lib/base.php7
-rw-r--r--lib/l10n/ast.js2
-rw-r--r--lib/l10n/ast.json2
-rw-r--r--lib/l10n/bg_BG.js2
-rw-r--r--lib/l10n/bg_BG.json2
-rw-r--r--lib/l10n/ca.js2
-rw-r--r--lib/l10n/ca.json2
-rw-r--r--lib/l10n/cs_CZ.js2
-rw-r--r--lib/l10n/cs_CZ.json2
-rw-r--r--lib/l10n/da.js2
-rw-r--r--lib/l10n/da.json2
-rw-r--r--lib/l10n/de.js2
-rw-r--r--lib/l10n/de.json2
-rw-r--r--lib/l10n/de_DE.js2
-rw-r--r--lib/l10n/de_DE.json2
-rw-r--r--lib/l10n/el.js2
-rw-r--r--lib/l10n/el.json2
-rw-r--r--lib/l10n/en_GB.js2
-rw-r--r--lib/l10n/en_GB.json2
-rw-r--r--lib/l10n/eo.js1
-rw-r--r--lib/l10n/eo.json1
-rw-r--r--lib/l10n/es.js2
-rw-r--r--lib/l10n/es.json2
-rw-r--r--lib/l10n/es_AR.js4
-rw-r--r--lib/l10n/es_AR.json4
-rw-r--r--lib/l10n/et_EE.js2
-rw-r--r--lib/l10n/et_EE.json2
-rw-r--r--lib/l10n/eu.js2
-rw-r--r--lib/l10n/eu.json2
-rw-r--r--lib/l10n/fa.js1
-rw-r--r--lib/l10n/fa.json1
-rw-r--r--lib/l10n/fi_FI.js2
-rw-r--r--lib/l10n/fi_FI.json2
-rw-r--r--lib/l10n/fr.js2
-rw-r--r--lib/l10n/fr.json2
-rw-r--r--lib/l10n/gl.js2
-rw-r--r--lib/l10n/gl.json2
-rw-r--r--lib/l10n/hr.js2
-rw-r--r--lib/l10n/hr.json2
-rw-r--r--lib/l10n/hu_HU.js2
-rw-r--r--lib/l10n/hu_HU.json2
-rw-r--r--lib/l10n/id.js2
-rw-r--r--lib/l10n/id.json2
-rw-r--r--lib/l10n/it.js2
-rw-r--r--lib/l10n/it.json2
-rw-r--r--lib/l10n/ja.js2
-rw-r--r--lib/l10n/ja.json2
-rw-r--r--lib/l10n/ko.js2
-rw-r--r--lib/l10n/ko.json2
-rw-r--r--lib/l10n/nb_NO.js2
-rw-r--r--lib/l10n/nb_NO.json2
-rw-r--r--lib/l10n/nl.js2
-rw-r--r--lib/l10n/nl.json2
-rw-r--r--lib/l10n/oc.js2
-rw-r--r--lib/l10n/oc.json2
-rw-r--r--lib/l10n/pl.js2
-rw-r--r--lib/l10n/pl.json2
-rw-r--r--lib/l10n/pt_BR.js2
-rw-r--r--lib/l10n/pt_BR.json2
-rw-r--r--lib/l10n/pt_PT.js2
-rw-r--r--lib/l10n/pt_PT.json2
-rw-r--r--lib/l10n/ro.js1
-rw-r--r--lib/l10n/ro.json1
-rw-r--r--lib/l10n/ru.js2
-rw-r--r--lib/l10n/ru.json2
-rw-r--r--lib/l10n/sk_SK.js2
-rw-r--r--lib/l10n/sk_SK.json2
-rw-r--r--lib/l10n/sl.js2
-rw-r--r--lib/l10n/sl.json2
-rw-r--r--lib/l10n/sq.js2
-rw-r--r--lib/l10n/sq.json2
-rw-r--r--lib/l10n/sr.js2
-rw-r--r--lib/l10n/sr.json2
-rw-r--r--lib/l10n/sv.js2
-rw-r--r--lib/l10n/sv.json2
-rw-r--r--lib/l10n/th_TH.js2
-rw-r--r--lib/l10n/th_TH.json2
-rw-r--r--lib/l10n/tr.js2
-rw-r--r--lib/l10n/tr.json2
-rw-r--r--lib/l10n/uk.js2
-rw-r--r--lib/l10n/uk.json2
-rw-r--r--lib/l10n/zh_CN.js1
-rw-r--r--lib/l10n/zh_CN.json1
-rw-r--r--lib/l10n/zh_TW.js2
-rw-r--r--lib/l10n/zh_TW.json2
-rw-r--r--lib/private/config.php4
-rw-r--r--lib/private/db/adapteroci8.php3
-rw-r--r--lib/private/db/connection.php3
-rw-r--r--lib/private/files/cache/cache.php16
-rw-r--r--lib/private/files/cache/changepropagator.php24
-rw-r--r--lib/private/files/cache/propagator.php66
-rw-r--r--lib/private/files/cache/updater.php168
-rw-r--r--lib/private/files/fileinfo.php36
-rw-r--r--lib/private/files/objectstore/objectstorestorage.php2
-rw-r--r--lib/private/files/storage/common.php30
-rw-r--r--lib/private/files/storage/dav.php9
-rw-r--r--lib/private/files/storage/storage.php16
-rw-r--r--lib/private/files/storage/wrapper/wrapper.php14
-rw-r--r--lib/private/files/stream/encryption.php4
-rw-r--r--lib/private/files/view.php236
-rw-r--r--lib/private/helper.php52
-rw-r--r--lib/private/installer.php2
-rw-r--r--lib/private/notification/inotification.php8
-rw-r--r--lib/private/notification/notification.php16
-rw-r--r--lib/private/share/share.php22
-rw-r--r--lib/private/share20/defaultshareprovider.php122
-rw-r--r--lib/private/share20/ishare.php2
-rw-r--r--lib/private/share20/ishareprovider.php25
-rw-r--r--lib/private/share20/manager.php134
-rw-r--r--lib/private/share20/share.php4
-rw-r--r--lib/private/template/functions.php4
-rw-r--r--lib/private/util.php11
-rw-r--r--lib/public/comments/icomment.php199
-rw-r--r--lib/public/comments/icommentsmanager.php161
-rw-r--r--lib/public/comments/illegalidchangeexception.php9
-rw-r--r--lib/public/comments/notfoundexception.php9
-rw-r--r--lib/public/files.php2
-rw-r--r--lib/public/files/node.php8
-rw-r--r--lib/public/util.php4
-rw-r--r--settings/l10n/de.js8
-rw-r--r--settings/l10n/de.json8
-rw-r--r--settings/l10n/es_AR.js7
-rw-r--r--settings/l10n/es_AR.json7
-rw-r--r--settings/l10n/fr.js7
-rw-r--r--settings/l10n/fr.json7
-rw-r--r--settings/l10n/zh_CN.js10
-rw-r--r--settings/l10n/zh_CN.json10
-rw-r--r--tests/lib/files/cache/changepropagator.php33
-rw-r--r--tests/lib/files/cache/updater.php41
-rw-r--r--tests/lib/files/cache/updaterlegacy.php47
-rw-r--r--tests/lib/files/etagtest.php1
-rw-r--r--tests/lib/helper.php35
-rw-r--r--tests/lib/notification/notificationtest.php36
-rw-r--r--tests/lib/repair/cleantags.php16
-rw-r--r--tests/lib/repair/oldgroupmembershipsharestest.php21
-rw-r--r--tests/lib/repair/repairinvalidsharestest.php14
-rw-r--r--tests/lib/share20/defaultshareprovidertest.php536
-rw-r--r--tests/lib/share20/managertest.php364
-rw-r--r--version.php2
634 files changed, 6322 insertions, 5226 deletions
diff --git a/.travis.yml b/.travis.yml
index 49a9e07e3fd..c599a0c192b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -37,7 +37,9 @@ matrix:
- php: 5.4
env: DB=pgsql;TC=litmus-v1
- php: 5.4
- env: DB=pgsql;TC=carddavtester
+ env: DB=sqlite;TC=carddavtester
+# - php: 5.4
+# env: DB=pgsql;TC=carddavtester
# - php: 5.4
# env: DB=mysql;TC=caldavtester
diff --git a/3rdparty b/3rdparty
-Subproject d24fd874b6e23c64ad67a3e05f51e1ee5745cf8
+Subproject dddec418cddf47886d174db3ffa19ae62ceb4fd
diff --git a/apps/dav/appinfo/register_command.php b/apps/dav/appinfo/register_command.php
index 7d57b944fb2..1f0df054110 100644
--- a/apps/dav/appinfo/register_command.php
+++ b/apps/dav/appinfo/register_command.php
@@ -5,6 +5,8 @@ use OCA\DAV\Command\CreateCalendar;
$dbConnection = \OC::$server->getDatabaseConnection();
$userManager = OC::$server->getUserManager();
+$config = \OC::$server->getConfig();
+
/** @var Symfony\Component\Console\Application $application */
-$application->add(new CreateAddressBook($userManager, $dbConnection));
+$application->add(new CreateAddressBook($userManager, $dbConnection, $config));
$application->add(new CreateCalendar($userManager, $dbConnection));
diff --git a/apps/dav/command/createaddressbook.php b/apps/dav/command/createaddressbook.php
index 286871b39e2..371ea44121d 100644
--- a/apps/dav/command/createaddressbook.php
+++ b/apps/dav/command/createaddressbook.php
@@ -3,6 +3,8 @@
namespace OCA\DAV\Command;
use OCA\DAV\CardDAV\CardDavBackend;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IUserManager;
use Symfony\Component\Console\Command\Command;
@@ -18,26 +20,30 @@ class CreateAddressBook extends Command {
/** @var \OCP\IDBConnection */
protected $dbConnection;
+ /** @var IConfig */
+ private $config;
+
/**
* @param IUserManager $userManager
* @param IDBConnection $dbConnection
*/
- function __construct(IUserManager $userManager, IDBConnection $dbConnection) {
+ function __construct(IUserManager $userManager, IDBConnection $dbConnection, IConfig $config) {
parent::__construct();
$this->userManager = $userManager;
$this->dbConnection = $dbConnection;
+ $this->config = $config;
}
protected function configure() {
$this
- ->setName('dav:create-addressbook')
- ->setDescription('Create a dav addressbook')
- ->addArgument('user',
- InputArgument::REQUIRED,
- 'User for whom the addressbook will be created')
- ->addArgument('name',
- InputArgument::REQUIRED,
- 'Name of the addressbook');
+ ->setName('dav:create-addressbook')
+ ->setDescription('Create a dav addressbook')
+ ->addArgument('user',
+ InputArgument::REQUIRED,
+ 'User for whom the addressbook will be created')
+ ->addArgument('name',
+ InputArgument::REQUIRED,
+ 'Name of the addressbook');
}
protected function execute(InputInterface $input, OutputInterface $output) {
@@ -45,8 +51,13 @@ class CreateAddressBook extends Command {
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> in unknown.");
}
+ $principalBackend = new Principal(
+ $this->config,
+ $this->userManager
+ );
+
$name = $input->getArgument('name');
- $carddav = new CardDavBackend($this->dbConnection);
+ $carddav = new CardDavBackend($this->dbConnection, $principalBackend);
$carddav->createAddressBook("principals/$user", $name, []);
}
}
diff --git a/apps/dav/lib/caldav/caldavbackend.php b/apps/dav/lib/caldav/caldavbackend.php
index 99338650793..d912f209d46 100644
--- a/apps/dav/lib/caldav/caldavbackend.php
+++ b/apps/dav/lib/caldav/caldavbackend.php
@@ -26,8 +26,8 @@ use Sabre\CalDAV\Backend\SchedulingSupport;
use Sabre\CalDAV\Backend\SubscriptionSupport;
use Sabre\CalDAV\Backend\SyncSupport;
use Sabre\CalDAV\Plugin;
-use Sabre\CalDAV\Property\ScheduleCalendarTransp;
-use Sabre\CalDAV\Property\SupportedCalendarComponentSet;
+use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp;
+use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet;
use Sabre\DAV;
use Sabre\DAV\Exception\Forbidden;
use Sabre\VObject\DateTimeParser;
diff --git a/apps/dav/lib/carddav/addressbook.php b/apps/dav/lib/carddav/addressbook.php
index e50f6f4adf6..eff1ad321e5 100644
--- a/apps/dav/lib/carddav/addressbook.php
+++ b/apps/dav/lib/carddav/addressbook.php
@@ -3,13 +3,9 @@
namespace OCA\DAV\CardDAV;
use OCA\DAV\CardDAV\Sharing\IShareableAddressBook;
-use OCP\IUserManager;
class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareableAddressBook {
- /** @var IUserManager */
- private $userManager;
-
public function __construct(CardDavBackend $carddavBackend, array $addressBookInfo) {
parent::__construct($carddavBackend, $addressBookInfo);
}
@@ -55,4 +51,4 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareableAddres
$carddavBackend = $this->carddavBackend;
$carddavBackend->getShares($this->getName());
}
-} \ No newline at end of file
+}
diff --git a/apps/dav/lib/carddav/useraddressbooks.php b/apps/dav/lib/carddav/useraddressbooks.php
index adbb0292fa7..5f618a0ece3 100644
--- a/apps/dav/lib/carddav/useraddressbooks.php
+++ b/apps/dav/lib/carddav/useraddressbooks.php
@@ -2,7 +2,7 @@
namespace OCA\DAV\CardDAV;
-class UserAddressBooks extends \Sabre\CardDAV\UserAddressBooks {
+class UserAddressBooks extends \Sabre\CardDAV\AddressBookHome {
/**
* Returns a list of addressbooks
diff --git a/apps/dav/lib/connector/sabre/auth.php b/apps/dav/lib/connector/sabre/auth.php
index f9a39799046..655152a2cc1 100644
--- a/apps/dav/lib/connector/sabre/auth.php
+++ b/apps/dav/lib/connector/sabre/auth.php
@@ -35,6 +35,8 @@ use OCP\IUserSession;
use Sabre\DAV\Auth\Backend\AbstractBasic;
use Sabre\DAV\Exception\NotAuthenticated;
use Sabre\DAV\Exception\ServiceUnavailable;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
class Auth extends AbstractBasic {
const DAV_AUTHENTICATED = 'AUTHENTICATED_TO_DAV_BACKEND';
@@ -122,22 +124,15 @@ class Auth extends AbstractBasic {
}
/**
- * Override function here. We want to cache authentication cookies
- * in the syncing client to avoid HTTP-401 roundtrips.
- * If the sync client supplies the cookies, then OC_User::isLoggedIn()
- * will return true and we can see this WebDAV request as already authenticated,
- * even if there are no HTTP Basic Auth headers.
- * In other case, just fallback to the parent implementation.
- *
- * @param \Sabre\DAV\Server $server
- * @param string $realm
- * @return bool
- * @throws ServiceUnavailable
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
+ * @return array
* @throws NotAuthenticated
+ * @throws ServiceUnavailable
*/
- public function authenticate(\Sabre\DAV\Server $server, $realm) {
+ function check(RequestInterface $request, ResponseInterface $response) {
try {
- $result = $this->auth($server, $realm);
+ $result = $this->auth($request, $response);
return $result;
} catch (NotAuthenticated $e) {
throw $e;
@@ -149,11 +144,11 @@ class Auth extends AbstractBasic {
}
/**
- * @param \Sabre\DAV\Server $server
- * @param string $realm
- * @return bool
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
+ * @return array
*/
- private function auth(\Sabre\DAV\Server $server, $realm) {
+ private function auth(RequestInterface $request, ResponseInterface $response) {
if (\OC_User::handleApacheAuth() ||
($this->userSession->isLoggedIn() && is_null($this->session->get(self::DAV_AUTHENTICATED)))
) {
@@ -161,9 +156,16 @@ class Auth extends AbstractBasic {
\OC_Util::setupFS($user);
$this->currentUser = $user;
$this->session->close();
- return true;
+ return [true, $this->principalPrefix . $user];
+ }
+
+ if ($request->getHeader('X-Requested-With') === 'XMLHttpRequest') {
+ // do not re-authenticate over ajax, use dummy auth name to prevent browser popup
+ $response->addHeader('WWW-Authenticate','DummyBasic realm="' . $this->realm . '"');
+ $response->setStatus(401);
+ throw new \Sabre\DAV\Exception\NotAuthenticated('Cannot authenticate over ajax calls');
}
- return parent::authenticate($server, $realm);
+ return parent::check($request, $response);
}
}
diff --git a/apps/dav/lib/connector/sabre/fakelockerplugin.php b/apps/dav/lib/connector/sabre/fakelockerplugin.php
index b9d1a30a041..b75e7f137d8 100644
--- a/apps/dav/lib/connector/sabre/fakelockerplugin.php
+++ b/apps/dav/lib/connector/sabre/fakelockerplugin.php
@@ -22,9 +22,9 @@
namespace OCA\DAV\Connector\Sabre;
use Sabre\DAV\Locks\LockInfo;
-use Sabre\DAV\Property\LockDiscovery;
-use Sabre\DAV\Property\SupportedLock;
use Sabre\DAV\ServerPlugin;
+use Sabre\DAV\Xml\Property\LockDiscovery;
+use Sabre\DAV\Xml\Property\SupportedLock;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
use Sabre\DAV\PropFind;
@@ -122,12 +122,6 @@ class FakeLockerPlugin extends ServerPlugin {
*/
public function fakeLockProvider(RequestInterface $request,
ResponseInterface $response) {
- $dom = new \DOMDocument('1.0', 'utf-8');
- $prop = $dom->createElementNS('DAV:', 'd:prop');
- $dom->appendChild($prop);
-
- $lockDiscovery = $dom->createElementNS('DAV:', 'd:lockdiscovery');
- $prop->appendChild($lockDiscovery);
$lockInfo = new LockInfo();
$lockInfo->token = md5($request->getPath());
@@ -135,10 +129,12 @@ class FakeLockerPlugin extends ServerPlugin {
$lockInfo->depth = \Sabre\DAV\Server::DEPTH_INFINITY;
$lockInfo->timeout = 1800;
- $lockObj = new LockDiscovery([$lockInfo]);
- $lockObj->serialize($this->server, $lockDiscovery);
+ $body = $this->server->xml->write('{DAV:}prop', [
+ '{DAV:}lockdiscovery' =>
+ new LockDiscovery([$lockInfo])
+ ]);
- $response->setBody($dom->saveXML());
+ $response->setBody($body);
return false;
}
diff --git a/apps/dav/lib/connector/sabre/file.php b/apps/dav/lib/connector/sabre/file.php
index ef7b9891dc9..c66f627c0a3 100644
--- a/apps/dav/lib/connector/sabre/file.php
+++ b/apps/dav/lib/connector/sabre/file.php
@@ -192,7 +192,7 @@ class File extends Node implements IFile {
}
// since we skipped the view we need to scan and emit the hooks ourselves
- $this->fileView->getUpdater()->update($this->path);
+ $storage->getUpdater()->update($internalPath);
if ($view) {
$this->emitPostHooks($exists);
@@ -438,7 +438,7 @@ class File extends Node implements IFile {
$this->fileView->changeLock($targetPath, ILockingProvider::LOCK_SHARED);
// since we skipped the view we need to scan and emit the hooks ourselves
- $this->fileView->getUpdater()->update($targetPath);
+ $targetStorage->getUpdater()->update($targetInternalPath);
$this->emitPostHooks($exists, $targetPath);
diff --git a/apps/dav/lib/connector/sabre/taglist.php b/apps/dav/lib/connector/sabre/taglist.php
index 177cc23e805..1b32d4b1047 100644
--- a/apps/dav/lib/connector/sabre/taglist.php
+++ b/apps/dav/lib/connector/sabre/taglist.php
@@ -22,82 +22,100 @@
namespace OCA\DAV\Connector\Sabre;
-use Sabre\DAV;
+use Sabre\Xml\Element;
+use Sabre\Xml\Reader;
+use Sabre\Xml\Writer;
/**
* TagList property
*
* This property contains multiple "tag" elements, each containing a tag name.
*/
-class TagList extends DAV\Property {
+class TagList implements Element {
const NS_OWNCLOUD = 'http://owncloud.org/ns';
- /**
- * tags
- *
- * @var array
- */
- private $tags;
-
- /**
- * @param array $tags
- */
- public function __construct(array $tags) {
- $this->tags = $tags;
- }
-
- /**
- * Returns the tags
- *
- * @return array
- */
- public function getTags() {
-
- return $this->tags;
-
- }
-
- /**
- * Serializes this property.
- *
- * @param DAV\Server $server
- * @param \DOMElement $dom
- * @return void
- */
- public function serialize(DAV\Server $server,\DOMElement $dom) {
-
- $prefix = $server->xmlNamespaces[self::NS_OWNCLOUD];
-
- foreach($this->tags as $tag) {
-
- $elem = $dom->ownerDocument->createElement($prefix . ':tag');
- $elem->appendChild($dom->ownerDocument->createTextNode($tag));
-
- $dom->appendChild($elem);
- }
-
- }
-
- /**
- * Unserializes this property from a DOM Element
- *
- * This method returns an instance of this class.
- * It will only decode tag values.
- *
- * @param \DOMElement $dom
- * @param array $propertyMap
- * @return \OCA\DAV\Connector\Sabre\TagList
- */
- static function unserialize(\DOMElement $dom, array $propertyMap) {
-
- $tags = array();
- foreach($dom->childNodes as $child) {
- if (DAV\XMLUtil::toClarkNotation($child)==='{' . self::NS_OWNCLOUD . '}tag') {
- $tags[] = $child->textContent;
- }
- }
- return new self($tags);
-
- }
-
+ /**
+ * tags
+ *
+ * @var array
+ */
+ private $tags;
+
+ /**
+ * @param array $tags
+ */
+ public function __construct(array $tags) {
+ $this->tags = $tags;
+ }
+
+ /**
+ * Returns the tags
+ *
+ * @return array
+ */
+ public function getTags() {
+
+ return $this->tags;
+
+ }
+
+ /**
+ * The deserialize method is called during xml parsing.
+ *
+ * This method is called statictly, this is because in theory this method
+ * may be used as a type of constructor, or factory method.
+ *
+ * Often you want to return an instance of the current class, but you are
+ * free to return other data as well.
+ *
+ * You are responsible for advancing the reader to the next element. Not
+ * doing anything will result in a never-ending loop.
+ *
+ * If you just want to skip parsing for this element altogether, you can
+ * just call $reader->next();
+ *
+ * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
+ * the next element.
+ *
+ * @param Reader $reader
+ * @return mixed
+ */
+ static function xmlDeserialize(Reader $reader) {
+ $tags = [];
+
+ foreach ($reader->parseInnerTree() as $elem) {
+ if ($elem['name'] === '{' . self::NS_OWNCLOUD . '}tag') {
+ $tags[] = $elem['value'];
+ }
+ }
+ return new self($tags);
+ }
+
+ /**
+ * The xmlSerialize metod is called during xml writing.
+ *
+ * Use the $writer argument to write its own xml serialization.
+ *
+ * An important note: do _not_ create a parent element. Any element
+ * implementing XmlSerializble should only ever write what's considered
+ * its 'inner xml'.
+ *
+ * The parent of the current element is responsible for writing a
+ * containing element.
+ *
+ * This allows serializers to be re-used for different element names.
+ *
+ * If you are opening new elements, you must also close them again.
+ *
+ * @param Writer $writer
+ * @return void
+ */
+ function xmlSerialize(Writer $writer) {
+
+ foreach ($this->tags as $tag) {
+ $writer->startElement(self::NS_OWNCLOUD . ':tag');
+ $writer->writeElement($tag);
+ $writer->endElement();
+ }
+ }
}
diff --git a/apps/dav/lib/server.php b/apps/dav/lib/server.php
index 44afcf23df6..587c0091e23 100644
--- a/apps/dav/lib/server.php
+++ b/apps/dav/lib/server.php
@@ -39,6 +39,7 @@ class Server {
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ListenerPlugin($dispatcher));
+ $this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
// calendar plugins
$this->server->addPlugin(new \Sabre\CalDAV\Plugin());
diff --git a/apps/dav/tests/travis/caldavtest/config/serverinfo.xml b/apps/dav/tests/travis/caldavtest/config/serverinfo.xml
index b85a8639e4e..24d63d4a3ae 100644
--- a/apps/dav/tests/travis/caldavtest/config/serverinfo.xml
+++ b/apps/dav/tests/travis/caldavtest/config/serverinfo.xml
@@ -569,7 +569,7 @@
<!-- relative path to user addressbook home-->
<substitution>
<key>$addressbookhome%d:</key>
- <value>$addressbooks_uids:$userguid%d:</value>
+ <value>$addressbooks:$userid%d:</value>
</substitution>
<!-- relative path to user addressbook-->
<substitution>
diff --git a/apps/dav/tests/travis/caldavtest/tests/CardDAV/sync-report.xml b/apps/dav/tests/travis/caldavtest/tests/CardDAV/sync-report.xml
new file mode 100644
index 00000000000..0321e61edbc
--- /dev/null
+++ b/apps/dav/tests/travis/caldavtest/tests/CardDAV/sync-report.xml
@@ -0,0 +1,1602 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2015 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<caldavtest>
+ <require-feature>
+ <feature>carddav</feature>
+ <feature>sync-report</feature>
+ </require-feature>
+
+ <start>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/2.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/2.vcf</filepath>
+ </data>
+ </request>
+ </start>
+
+ <test-suite name='support-report-set'>
+ <test name='1'>
+ <description>Not on addressbooks</description>
+ <request>
+ <method>PROPFIND</method>
+ <ruri>$addressbooks:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>notexists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ </arg>
+ <arg>
+ <name>badprops</name>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <!--
+ original test2 has been removed since we do not support sync support on addressbooks home
+ -->
+ <test name='3'>
+ <description>On addressbook</description>
+ <request>
+ <method>PROPFIND</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
+ <!-- verification below does not match -->
+ <!-- value>$verify-property-prefix:/{DAV:}sync-token[+data:,]</value -->
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - empty token - no props'>
+ <test name='1'>
+ <description>initial query - addressbook depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <!-- no sync on addressbook level -->
+ <!-- value>$calendar_sync_extra_items:</value -->
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <!-- test 2 and 3 require sync support on addressbook collection -->
+ <test name='4'>
+ <description>add new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>new resource - addressbook depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <!-- no sync on addressbook level -->
+ <!-- value>$calendar_sync_extra_items:</value -->
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <!--
+ <test name='6'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>new resource - home depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>new resource - home depth:infinity</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ <value>$addressbook:/2.vcf</value>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>remove new resource</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>remove new resource - addressbook depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='10'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>remove new resource - home depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>remove new resource - home depth:infinity</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ <value>$addressbook:/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='12'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='13'>
+ <description>changed resource - addressbook depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='14'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>changed resource - home depth:1</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='15'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <description>changed resource - home depth:infinity</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ <value>$addressbook:/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ -->
+ </test-suite>
+
+ <!--
+ <test-suite name='simple reports - diff token - no props'>
+ <test name='1'>
+ <description>initial query - grab token</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3'>
+ <description>remove resource (treated as new)</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>remove resource (treated as old)</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='5'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>1.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6'>
+ <description>no change</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - empty token - props'>
+ <test name='1'>
+ <description>initial query</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>remove resource new resource</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - diff token - props'>
+ <test name='1'>
+ <description>initial query - grab token</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>1.vcf</value>
+ <value>2.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3'>
+ <description>remove resource (treated as new)</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>remove resource (treated as old)</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/7.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='5'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>1.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6'>
+ <description>no change</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - diff token - no props - home depth:infinity'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <test name='1'>
+ <description>Initialize</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/2.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/2.vcf</filepath>
+ </data>
+ </request>
+ </test>
+ <test name='2'>
+ <description>initial query - grab token</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ <value>$addressbook:/2.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='4'>
+ <description>remove resource (treated as new)</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>remove resource (treated as old)</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='7'>
+ <description>no change</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - diff token - props - home depth:infinity'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <test name='1'>
+ <description>initial query - grab token</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar_sync_extra_items:</value>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ <value>$addressbook:/2.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3'>
+ <description>remove resource (treated as new)</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookpath1:/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>ignore</name>
+ <value>$addressbookpath1:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>ignore</name>
+ <value>$addressbookpath1:/3.vcf</value>
+ </arg>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>remove resource (treated as old)</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/7.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>$addressbook:/3.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>count</name>
+ <value>2</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='5'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookpath1:/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>$addressbook:/1.vcf</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6'>
+ <description>no change</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='simple reports - diff token - delete/create addressbook - home depth:infinity' ignore='yes'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <test name='1'>
+ <description>initial query - grab token</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</value>
+ <value>syncaddressbook3/2.vcf</value>
+ <value>syncaddressbook4/</value>
+ <value>syncaddressbook4/1.vcf</value>
+ <value>syncaddressbook4/2.vcf</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2'>
+ <description>remove resource then addressbook</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/1.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3'>
+ <description>add addressbook - test last sync</description>
+ <request end-delete="yes">
+ <method>MKCOL</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCOL/addressbook.xml</filepath>
+ </data>
+ </request>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>add addressbook - test previous sync</description>
+ <request>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+-->
+
+ <end>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <ruri>$addressbookhome2:/</ruri>
+ <ruri>$notificationpath1:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ </end>
+
+</caldavtest>
diff --git a/apps/dav/tests/travis/carddavtester.sh b/apps/dav/tests/travis/carddavtester.sh
index a128872f42a..17f7e8eb4a8 100644
--- a/apps/dav/tests/travis/carddavtester.sh
+++ b/apps/dav/tests/travis/carddavtester.sh
@@ -18,11 +18,18 @@ fi
# create test user
cd "$SCRIPTPATH/../../../../"
OC_PASS=user01 php occ user:add --password-from-env user01
+php occ dav:create-addressbook user01 addressbook
OC_PASS=user02 php occ user:add --password-from-env user02
+php occ dav:create-addressbook user02 addressbook
cd "$SCRIPTPATH/../../../../"
# run the tests
cd "$SCRIPTPATH/CalDAVTester"
PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onfail -s "$SCRIPTPATH/caldavtest/config/serverinfo.xml" -o cdt.txt \
- "$SCRIPTPATH/caldavtest/tests/CardDAV/current-user-principal.xml"
+ "$SCRIPTPATH/caldavtest/tests/CardDAV/current-user-principal.xml" \
+ "$SCRIPTPATH/caldavtest/tests/CardDAV/sync-report.xml"
+RESULT=$?
+tail "$SCRIPTPATH/../../../../data-autotest/owncloud.log"
+
+exit $RESULT
diff --git a/apps/dav/tests/unit/caldav/caldavbackendtest.php b/apps/dav/tests/unit/caldav/caldavbackendtest.php
index 258c5627ad9..e9483a47a78 100644
--- a/apps/dav/tests/unit/caldav/caldavbackendtest.php
+++ b/apps/dav/tests/unit/caldav/caldavbackendtest.php
@@ -23,9 +23,9 @@ namespace Tests\Connector\Sabre;
use DateTime;
use DateTimeZone;
use OCA\DAV\CalDAV\CalDavBackend;
-use Sabre\CalDAV\Property\SupportedCalendarComponentSet;
-use Sabre\DAV\Property\Href;
+use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet;
use Sabre\DAV\PropPatch;
+use Sabre\DAV\Xml\Property\Href;
use Test\TestCase;
/**
diff --git a/apps/dav/tests/unit/connector/sabre/FakeLockerPluginTest.php b/apps/dav/tests/unit/connector/sabre/FakeLockerPluginTest.php
index dfe8cc220a3..8539e9c06ee 100644
--- a/apps/dav/tests/unit/connector/sabre/FakeLockerPluginTest.php
+++ b/apps/dav/tests/unit/connector/sabre/FakeLockerPluginTest.php
@@ -21,6 +21,7 @@
namespace OCA\DAV\Tests\Unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\FakeLockerPlugin;
+use Sabre\HTTP\Response;
use Test\TestCase;
/**
@@ -141,20 +142,19 @@ class FakeLockerPluginTest extends TestCase {
public function testFakeLockProvider() {
$request = $this->getMock('\Sabre\HTTP\RequestInterface');
- $response = $this->getMock('\Sabre\HTTP\ResponseInterface');
+ $response = new Response();
$server = $this->getMock('\Sabre\DAV\Server');
$this->fakeLockerPlugin->initialize($server);
$request->expects($this->exactly(2))
->method('getPath')
->will($this->returnValue('MyPath'));
- $response->expects($this->once())
- ->method('setBody')
- ->with('<?xml version="1.0" encoding="utf-8"?>
-<d:prop xmlns:d="DAV:"><d:lockdiscovery><d:activelock><d:lockscope><d:exclusive/></d:lockscope><d:locktype><d:write/></d:locktype><d:lockroot><d:href>MyPath</d:href></d:lockroot><d:depth>infinity</d:depth><d:timeout>Second-1800</d:timeout><d:locktoken><d:href>opaquelocktoken:fe4f7f2437b151fbcb4e9f5c8118c6b1</d:href></d:locktoken><d:owner/></d:activelock></d:lockdiscovery></d:prop>
-');
$this->assertSame(false, $this->fakeLockerPlugin->fakeLockProvider($request, $response));
+
+ $expectedXml = '<?xml version="1.0" encoding="utf-8"?><d:prop xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"><d:lockdiscovery><d:activelock><d:lockscope><d:exclusive/></d:lockscope><d:locktype><d:write/></d:locktype><d:lockroot><d:href>MyPath</d:href></d:lockroot><d:depth>infinity</d:depth><d:timeout>Second-1800</d:timeout><d:locktoken><d:href>opaquelocktoken:fe4f7f2437b151fbcb4e9f5c8118c6b1</d:href></d:locktoken><d:owner/></d:activelock></d:lockdiscovery></d:prop>';
+
+ $this->assertXmlStringEqualsXmlString($expectedXml, $response->getBody());
}
public function testFakeUnlockProvider() {
diff --git a/apps/dav/tests/unit/connector/sabre/auth.php b/apps/dav/tests/unit/connector/sabre/auth.php
index d18747d732a..595bd441617 100644
--- a/apps/dav/tests/unit/connector/sabre/auth.php
+++ b/apps/dav/tests/unit/connector/sabre/auth.php
@@ -249,9 +249,12 @@ class Auth extends TestCase {
}
public function testAuthenticateAlreadyLoggedIn() {
- $server = $this->getMockBuilder('\Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
$this->userSession
->expects($this->once())
->method('isLoggedIn')
@@ -275,13 +278,10 @@ class Auth extends TestCase {
->expects($this->once())
->method('close');
- $this->assertTrue($this->auth->authenticate($server, 'TestRealm'));
+ $response = $this->auth->check($request, $response);
+ $this->assertEquals([true, 'principals/MyWrongDavUser'], $response);
}
- /**
- * @expectedException \Sabre\DAV\Exception\NotAuthenticated
- * @expectedExceptionMessage No basic authentication headers were found
- */
public function testAuthenticateNoBasicAuthenticateHeadersProvided() {
$server = $this->getMockBuilder('\Sabre\DAV\Server')
->disableOriginalConstructor()
@@ -292,7 +292,29 @@ class Auth extends TestCase {
$server->httpResponse = $this->getMockBuilder('\Sabre\HTTP\ResponseInterface')
->disableOriginalConstructor()
->getMock();
- $this->auth->authenticate($server, 'TestRealm');
+ $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 mis-configured'], $response);
+ }
+
+ /**
+ * @expectedException \Sabre\DAV\Exception\NotAuthenticated
+ * @expectedExceptionMessage Cannot authenticate over ajax calls
+ */
+ public function testAuthenticateNoBasicAuthenticateHeadersProvidedWithAjax() {
+ /** @var \Sabre\HTTP\RequestInterface $httpRequest */
+ $httpRequest = $this->getMockBuilder('\Sabre\HTTP\RequestInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+ /** @var \Sabre\HTTP\ResponseInterface $httpResponse */
+ $httpResponse = $this->getMockBuilder('\Sabre\HTTP\ResponseInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $httpRequest
+ ->expects($this->once())
+ ->method('getHeader')
+ ->with('X-Requested-With')
+ ->will($this->returnValue('XMLHttpRequest'));
+ $this->auth->check($httpRequest, $httpResponse);
}
public function testAuthenticateValidCredentials() {
@@ -303,7 +325,12 @@ class Auth extends TestCase {
->disableOriginalConstructor()
->getMock();
$server->httpRequest
- ->expects($this->once())
+ ->expects($this->at(0))
+ ->method('getHeader')
+ ->with('X-Requested-With')
+ ->will($this->returnValue(null));
+ $server->httpRequest
+ ->expects($this->at(1))
->method('getHeader')
->with('Authorization')
->will($this->returnValue('basic dXNlcm5hbWU6cGFzc3dvcmQ='));
@@ -325,13 +352,10 @@ class Auth extends TestCase {
->expects($this->exactly(2))
->method('getUser')
->will($this->returnValue($user));
- $this->assertTrue($this->auth->authenticate($server, 'TestRealm'));
+ $response = $this->auth->check($server->httpRequest, $server->httpResponse);
+ $this->assertEquals([true, 'principals/username'], $response);
}
- /**
- * @expectedException \Sabre\DAV\Exception\NotAuthenticated
- * @expectedExceptionMessage Username or password does not match
- */
public function testAuthenticateInvalidCredentials() {
$server = $this->getMockBuilder('\Sabre\DAV\Server')
->disableOriginalConstructor()
@@ -340,7 +364,12 @@ class Auth extends TestCase {
->disableOriginalConstructor()
->getMock();
$server->httpRequest
- ->expects($this->once())
+ ->expects($this->at(0))
+ ->method('getHeader')
+ ->with('X-Requested-With')
+ ->will($this->returnValue(null));
+ $server->httpRequest
+ ->expects($this->at(1))
->method('getHeader')
->with('Authorization')
->will($this->returnValue('basic dXNlcm5hbWU6cGFzc3dvcmQ='));
@@ -352,6 +381,7 @@ class Auth extends TestCase {
->method('login')
->with('username', 'password')
->will($this->returnValue(false));
- $this->auth->authenticate($server, 'TestRealm');
+ $response = $this->auth->check($server->httpRequest, $server->httpResponse);
+ $this->assertEquals([false, 'Username or password was incorrect'], $response);
}
}
diff --git a/apps/dav/tests/unit/connector/sabre/requesttest/auth.php b/apps/dav/tests/unit/connector/sabre/requesttest/auth.php
index 02b64ab070b..3caa019af8d 100644
--- a/apps/dav/tests/unit/connector/sabre/requesttest/auth.php
+++ b/apps/dav/tests/unit/connector/sabre/requesttest/auth.php
@@ -9,6 +9,8 @@
namespace OCA\DAV\Tests\Unit\Connector\Sabre\RequestTest;
use Sabre\DAV\Auth\Backend\BackendInterface;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
class Auth implements BackendInterface {
/**
@@ -32,18 +34,35 @@ class Auth implements BackendInterface {
$this->password = $password;
}
-
/**
- * Authenticates the user based on the current request.
+ * When this method is called, the backend must check if authentication was
+ * successful.
+ *
+ * The returned value must be one of the following
+ *
+ * [true, "principals/username"]
+ * [false, "reason for failure"]
+ *
+ * If authentication was successful, it's expected that the authentication
+ * backend returns a so-called principal url.
+ *
+ * Examples of a principal url:
*
- * If authentication is successful, true must be returned.
- * If authentication fails, an exception must be thrown.
+ * principals/admin
+ * principals/user1
+ * principals/users/joe
+ * principals/uid/123457
*
- * @param \Sabre\DAV\Server $server
- * @param string $realm
- * @return boolean|null
+ * If you don't use WebDAV ACL (RFC3744) we recommend that you simply
+ * return a string such as:
+ *
+ * principals/users/[username]
+ *
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
+ * @return array
*/
- function authenticate(\Sabre\DAV\Server $server, $realm) {
+ function check(RequestInterface $request, ResponseInterface $response) {
$userSession = \OC::$server->getUserSession();
$result = $userSession->login($this->user, $this->password);
if ($result) {
@@ -52,18 +71,33 @@ class Auth implements BackendInterface {
\OC_Util::setupFS($user);
//trigger creation of user home and /files folder
\OC::$server->getUserFolder($user);
+ return [true, "principals/$user"];
}
- return $result;
+ return [false, "login failed"];
}
/**
- * Returns information about the currently logged in username.
+ * This method is called when a user could not be authenticated, and
+ * authentication was required for the current request.
+ *
+ * This gives you the opportunity to set authentication headers. The 401
+ * status code will already be set.
+ *
+ * In this case of Basic Auth, this would for example mean that the
+ * following header needs to be set:
+ *
+ * $response->addHeader('WWW-Authenticate', 'Basic realm=SabreDAV');
*
- * If nobody is currently logged in, this method should return null.
+ * Keep in mind that in the case of multiple authentication backends, other
+ * WWW-Authenticate headers may already have been set, and you'll want to
+ * append your own WWW-Authenticate header instead of overwriting the
+ * existing one.
*
- * @return string
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
+ * @return void
*/
- function getCurrentUser() {
- return $this->user;
+ function challenge(RequestInterface $request, ResponseInterface $response) {
+ // TODO: Implement challenge() method.
}
}
diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js
index bff5b7c593e..3f2fbb5de32 100644
--- a/apps/encryption/l10n/es_AR.js
+++ b/apps/encryption/l10n/es_AR.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"encryption",
{
+ "Missing recovery key password" : "Falta contraseña de recuperación",
"Recovery key successfully enabled" : "Se habilitó la recuperación de archivos",
"Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json
index 0cdcd9cd121..225ca5139f2 100644
--- a/apps/encryption/l10n/es_AR.json
+++ b/apps/encryption/l10n/es_AR.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Missing recovery key password" : "Falta contraseña de recuperación",
"Recovery key successfully enabled" : "Se habilitó la recuperación de archivos",
"Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
diff --git a/apps/encryption/lib/migration.php b/apps/encryption/lib/migration.php
index 1a7c2e9877d..0b691624a00 100644
--- a/apps/encryption/lib/migration.php
+++ b/apps/encryption/lib/migration.php
@@ -50,7 +50,7 @@ class Migration {
*/
public function __construct(IConfig $config, View $view, IDBConnection $connection, ILogger $logger) {
$this->view = $view;
- $this->view->getUpdater()->disable();
+ $this->view->disableCacheUpdate();
$this->connection = $connection;
$this->moduleId = \OCA\Encryption\Crypto\Encryption::ID;
$this->config = $config;
diff --git a/apps/federation/appinfo/app.php b/apps/federation/appinfo/app.php
index 9ed00f23866..8cc77885d6f 100644
--- a/apps/federation/appinfo/app.php
+++ b/apps/federation/appinfo/app.php
@@ -23,3 +23,4 @@ namespace OCA\Federation\AppInfo;
$app = new Application();
$app->registerSettings();
+$app->registerHooks();
diff --git a/apps/federation/appinfo/application.php b/apps/federation/appinfo/application.php
index 350b140b4dd..172283536b4 100644
--- a/apps/federation/appinfo/application.php
+++ b/apps/federation/appinfo/application.php
@@ -22,14 +22,15 @@
namespace OCA\Federation\AppInfo;
use OCA\Federation\API\OCSAuthAPI;
-use OCA\Federation\Controller\AuthController;
use OCA\Federation\Controller\SettingsController;
use OCA\Federation\DbHandler;
+use OCA\Federation\Hooks;
use OCA\Federation\Middleware\AddServerMiddleware;
use OCA\Federation\TrustedServers;
use OCP\API;
use OCP\App;
use OCP\AppFramework\IAppContainer;
+use OCP\Util;
class Application extends \OCP\AppFramework\App {
@@ -127,4 +128,21 @@ class Application extends \OCP\AppFramework\App {
}
+ /**
+ * listen to federated_share_added hooks to auto-add new servers to the
+ * list of trusted servers.
+ */
+ public function registerHooks() {
+
+ $container = $this->getContainer();
+ $hooksManager = new Hooks($container->query('TrustedServers'));
+
+ Util::connectHook(
+ 'OCP\Share',
+ 'federated_share_added',
+ $hooksManager,
+ 'addServerHook'
+ );
+ }
+
}
diff --git a/apps/federation/img/app.svg b/apps/federation/img/app.svg
new file mode 100644
index 00000000000..b6ae35211a3
--- /dev/null
+++ b/apps/federation/img/app.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <path d="m13.733 0.00064c-0.52991 0-0.93331 0.40337-0.93331 0.93333v2.6666c-1.182 0.3034-2.243 0.7934-3.2668 1.4001l-1.9334-1.9334c-0.3747-0.3747-0.9586-0.3747-1.3333 0l-3.1999 3.2c-0.37473 0.37474-0.37473 0.95859 0 1.3333l1.9334 1.9335c-0.6067 1.0239-1.0967 2.0849-1.4001 3.2669h-2.6666c-0.52994 0-0.9333 0.403-0.9333 0.933v4.5333c2e-8 0.52996 0.40336 0.93333 0.93331 0.93333h2.6666c0.30335 1.1817 0.79332 2.2426 1.4 3.2666l-1.9334 1.9349c-0.37473 0.37474-0.37473 0.95859 0 1.3333l3.1999 3.2c0.37473 0.37474 0.95857 0.37474 1.3333 0l1.9334-1.9349c1.024 0.608 2.0849 1.0965 3.2665 1.3995v2.6667c0 0.53 0.403 0.933 0.933 0.933h4.5332c0.52991 0 0.93331-0.4032 0.93331-0.9344v-2.6667c1.1816-0.30336 2.2425-0.79335 3.2665-1.4l1.9333 1.9333c0.37473 0.37474 0.95857 0.37474 1.3333 0l3.1999-3.2c0.37473-0.37474 0.37473-0.95859 0-1.3333l-1.9327-1.9328c0.60798-1.024 1.0965-2.0845 1.3994-3.2661h2.6666c0.532 0 0.935-0.403 0.935-0.933v-4.534c0-0.53-0.403-0.933-0.934-0.933h-2.667c-0.303-1.182-0.791-2.243-1.399-3.2666l1.932-1.9334c0.37473-0.37474 0.37473-0.95859 0-1.3333l-3.2-3.2c-0.37473-0.37474-0.95857-0.37474-1.3333 0l-1.9327 1.9334c-1.024-0.6067-2.084-1.0967-3.266-1.4001v-2.6667c0-0.52993-0.403-0.9333-0.933-0.9333zm2.2666 8.8689c3.9361 0 7.1309 3.1947 7.1309 7.1311 0 3.9362-3.1946 7.1311-7.1309 7.1311-3.9361 0-7.1309-3.1955-7.1309-7.1317s3.1948-7.1311 7.1309-7.1311z" display="block" fill="#fff"/>
+</svg>
diff --git a/apps/federation/lib/dbhandler.php b/apps/federation/lib/dbhandler.php
index 61ba5c87cfd..7606593f780 100644
--- a/apps/federation/lib/dbhandler.php
+++ b/apps/federation/lib/dbhandler.php
@@ -68,6 +68,7 @@ class DbHandler {
*/
public function addServer($url) {
$hash = $this->hash($url);
+ $url = rtrim($url, '/');
$query = $this->connection->getQueryBuilder();
$query->insert($this->dbTable)
->values(
diff --git a/apps/federation/lib/hooks.php b/apps/federation/lib/hooks.php
new file mode 100644
index 00000000000..4bf5be4e5b6
--- /dev/null
+++ b/apps/federation/lib/hooks.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+
+namespace OCA\Federation;
+
+
+
+class Hooks {
+
+ /** @var TrustedServers */
+ private $trustedServers;
+
+ public function __construct(TrustedServers $trustedServers) {
+ $this->trustedServers = $trustedServers;
+ }
+
+ /**
+ * add servers to the list of trusted servers once a federated share was established
+ *
+ * @param array $params
+ */
+ public function addServerHook($params) {
+ if (
+ $this->trustedServers->getAutoAddServers() === true &&
+ $this->trustedServers->isTrustedServer($params['server']) === false
+ ) {
+ $this->trustedServers->addServer($params['server']);
+ }
+ }
+
+}
diff --git a/apps/federation/tests/lib/dbhandlertest.php b/apps/federation/tests/lib/dbhandlertest.php
index e47df092f8c..123eaaee450 100644
--- a/apps/federation/tests/lib/dbhandlertest.php
+++ b/apps/federation/tests/lib/dbhandlertest.php
@@ -67,17 +67,33 @@ class DbHandlerTest extends TestCase {
$query->execute();
}
- public function testAddServer() {
- $id = $this->dbHandler->addServer('server1');
+ /**
+ * @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) {
+ $id = $this->dbHandler->addServer($url);
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
$result = $query->execute()->fetchAll();
$this->assertSame(1, count($result));
- $this->assertSame('server1', $result[0]['url']);
+ $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() {
+ return [
+ ['http://owncloud.org', 'http://owncloud.org', md5('owncloud.org')],
+ ['https://owncloud.org', 'https://owncloud.org', md5('owncloud.org')],
+ ['http://owncloud.org/', 'http://owncloud.org', md5('owncloud.org')],
+ ];
+ }
+
public function testRemove() {
$id1 = $this->dbHandler->addServer('server1');
$id2 = $this->dbHandler->addServer('server2');
diff --git a/apps/federation/tests/lib/hookstest.php b/apps/federation/tests/lib/hookstest.php
new file mode 100644
index 00000000000..5b19c167456
--- /dev/null
+++ b/apps/federation/tests/lib/hookstest.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+
+namespace OCA\Federation\Tests\lib;
+
+
+use OCA\Federation\Hooks;
+use OCA\Federation\TrustedServers;
+use Test\TestCase;
+
+class HooksTest extends TestCase {
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject | TrustedServers */
+ private $trustedServers;
+
+ /** @var Hooks */
+ private $hooks;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->trustedServers = $this->getMockBuilder('OCA\Federation\TrustedServers')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->hooks = new Hooks($this->trustedServers);
+ }
+
+ /**
+ * @dataProvider dataTestAddServerHook
+ *
+ * @param bool $autoAddEnabled is auto-add enabled
+ * @param bool $isTrustedServer is the server already in the list of trusted servers
+ * @param bool $addServer should the server be added
+ */
+ public function testAddServerHook($autoAddEnabled, $isTrustedServer, $addServer) {
+ $this->trustedServers->expects($this->any())->method('getAutoAddServers')
+ ->willReturn($autoAddEnabled);
+ $this->trustedServers->expects($this->any())->method('isTrustedServer')
+ ->with('url')->willReturn($isTrustedServer);
+
+ if ($addServer) {
+ $this->trustedServers->expects($this->once())->method('addServer')
+ ->with('url');
+ } else {
+ $this->trustedServers->expects($this->never())->method('addServer');
+ }
+
+ $this->hooks->addServerHook(['server' => 'url']);
+
+ }
+
+ public function dataTestAddServerHook() {
+ return [
+ [true, true, false],
+ [false, true, false],
+ [true, false, true],
+ [false, false, false],
+ ];
+ }
+}
diff --git a/apps/files/ajax/scan.php b/apps/files/ajax/scan.php
index 491adaa9b88..759f2d15f84 100644
--- a/apps/files/ajax/scan.php
+++ b/apps/files/ajax/scan.php
@@ -49,7 +49,6 @@ foreach ($users as $user) {
$eventSource->send('user', $user);
$scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection());
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', array($listener, 'file'));
- $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', array($listener, 'folder'));
try {
if ($force) {
$scanner->scan($dir);
@@ -81,13 +80,6 @@ class ScanListener {
$this->eventSource = $eventSource;
}
- /**
- * @param string $path
- */
- public function folder($path) {
- $this->eventSource->send('folder', $path);
- }
-
public function file() {
$this->fileCount++;
if ($this->fileCount > $this->lastCount + 20) { //send a count update every 20 files
diff --git a/apps/files/l10n/af_ZA.js b/apps/files/l10n/af_ZA.js
index 2061e5ec49c..ddc06b6c11f 100644
--- a/apps/files/l10n/af_ZA.js
+++ b/apps/files/l10n/af_ZA.js
@@ -1,7 +1,6 @@
OC.L10N.register(
"files",
{
- "Error" : "Fout",
"Folder" : "Omslag",
"Settings" : "Instellings"
},
diff --git a/apps/files/l10n/af_ZA.json b/apps/files/l10n/af_ZA.json
index 95096fd551b..bad49a673e0 100644
--- a/apps/files/l10n/af_ZA.json
+++ b/apps/files/l10n/af_ZA.json
@@ -1,5 +1,4 @@
{ "translations": {
- "Error" : "Fout",
"Folder" : "Omslag",
"Settings" : "Instellings"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index b4414525c68..953267393b2 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "وحدة التخزين غير متوفرة ",
"Storage invalid" : "وحدة تخزين غير صالحه ",
"Unknown error" : "خطأ غير معروف. ",
- "Could not move %s - File with this name already exists" : "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم",
- "Could not move %s" : "فشل في نقل %s",
- "Permission denied" : "تم رفض الاذن ",
- "The target folder has been moved or deleted." : "المجلد المطلوب قد تم نقله او حذفه ",
- "The name %s is already used in the folder %s. Please choose a different name." : "هذا الاسم %s مستخدم مسبقا في المجلد %s . فضلا اختر اسم مختلف .",
- "Error when creating the file" : "خطأ اثناء انشاء الملف ",
- "Error when creating the folder" : "خطأ اثناء انشاء المجلد ",
"Unable to set upload directory." : "غير قادر على تحميل المجلد",
"Invalid Token" : "علامة غير صالحة",
"No file was uploaded. Unknown error" : "لم يتم رفع أي ملف , خطأ غير معروف",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Failed to write to disk" : "خطأ في الكتابة على القرص الصلب",
"Not enough storage available" : "لا يوجد مساحة تخزينية كافية",
+ "The target folder has been moved or deleted." : "المجلد المطلوب قد تم نقله او حذفه ",
"Upload failed. Could not find uploaded file" : "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله.",
"Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.",
"Invalid directory." : "مسار غير صحيح.",
@@ -45,14 +39,6 @@ OC.L10N.register(
"Pending" : "قيد الانتظار",
"Unable to determine date" : "تعذر تحديد التاريخ",
"This operation is forbidden" : "هذة العملية ممنوعة ",
- "Error moving file." : "خطأ اثناء نقل الملف ",
- "Error moving file" : "حدث خطأ أثناء نقل الملف",
- "Error" : "خطأ",
- "{new_name} already exists" : "{new_name} موجود مسبقا",
- "Could not rename file" : "لا يستطيع اعادة تسمية الملف",
- "Could not create file" : "لا يستطيع انشاء ملف ",
- "Could not create folder" : "لا يستطيع انشاء مجلد ",
- "Error deleting file." : "خطأ اثناء حذف الملف ",
"No entries in this folder match '{filter}'" : "لا يوجد مدخلات في هذا المجلد تتوافق مع '{filter}'",
"Name" : "اسم",
"Size" : "حجم",
@@ -70,8 +56,6 @@ OC.L10N.register(
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "المساحة التخزينية لـ {owner} ممتلئة تقريبا ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "مساحتك التخزينية امتلأت تقريبا ",
"Favorite" : "المفضلة",
- "Text file" : "ملف نصي",
- "New text file.txt" : "ملف نصي جديد fille.txt",
"Folder" : "مجلد",
"New folder" : "مجلد جديد",
"{newname} already exists" : "{newname} موجود مسبقاً",
@@ -90,8 +74,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s حذف %1$s",
"You restored %1$s" : "لقد قمت باستعادة %1$s",
"%2$s restored %1$s" : "%2$s مستعاد %1$s",
- "%s could not be renamed as it has been deleted" : "%s لا يمكن اعادة تسميته فقد تم حذفه ",
- "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ",
"Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"File handling" : "التعامل مع الملف",
"Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها",
@@ -110,6 +92,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "يرجى الانتظار , جاري فحص الملفات .",
"Currently scanning" : "حالياً يقوم بالفحص",
"No favorites" : "لا يوجد مفضلات ",
- "Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا "
+ "Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا ",
+ "Text file" : "ملف نصي",
+ "New text file.txt" : "ملف نصي جديد fille.txt"
},
"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 0783c769ee1..245fe9a0b9e 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -2,13 +2,6 @@
"Storage not available" : "وحدة التخزين غير متوفرة ",
"Storage invalid" : "وحدة تخزين غير صالحه ",
"Unknown error" : "خطأ غير معروف. ",
- "Could not move %s - File with this name already exists" : "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم",
- "Could not move %s" : "فشل في نقل %s",
- "Permission denied" : "تم رفض الاذن ",
- "The target folder has been moved or deleted." : "المجلد المطلوب قد تم نقله او حذفه ",
- "The name %s is already used in the folder %s. Please choose a different name." : "هذا الاسم %s مستخدم مسبقا في المجلد %s . فضلا اختر اسم مختلف .",
- "Error when creating the file" : "خطأ اثناء انشاء الملف ",
- "Error when creating the folder" : "خطأ اثناء انشاء المجلد ",
"Unable to set upload directory." : "غير قادر على تحميل المجلد",
"Invalid Token" : "علامة غير صالحة",
"No file was uploaded. Unknown error" : "لم يتم رفع أي ملف , خطأ غير معروف",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Failed to write to disk" : "خطأ في الكتابة على القرص الصلب",
"Not enough storage available" : "لا يوجد مساحة تخزينية كافية",
+ "The target folder has been moved or deleted." : "المجلد المطلوب قد تم نقله او حذفه ",
"Upload failed. Could not find uploaded file" : "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله.",
"Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.",
"Invalid directory." : "مسار غير صحيح.",
@@ -43,14 +37,6 @@
"Pending" : "قيد الانتظار",
"Unable to determine date" : "تعذر تحديد التاريخ",
"This operation is forbidden" : "هذة العملية ممنوعة ",
- "Error moving file." : "خطأ اثناء نقل الملف ",
- "Error moving file" : "حدث خطأ أثناء نقل الملف",
- "Error" : "خطأ",
- "{new_name} already exists" : "{new_name} موجود مسبقا",
- "Could not rename file" : "لا يستطيع اعادة تسمية الملف",
- "Could not create file" : "لا يستطيع انشاء ملف ",
- "Could not create folder" : "لا يستطيع انشاء مجلد ",
- "Error deleting file." : "خطأ اثناء حذف الملف ",
"No entries in this folder match '{filter}'" : "لا يوجد مدخلات في هذا المجلد تتوافق مع '{filter}'",
"Name" : "اسم",
"Size" : "حجم",
@@ -68,8 +54,6 @@
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "المساحة التخزينية لـ {owner} ممتلئة تقريبا ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "مساحتك التخزينية امتلأت تقريبا ",
"Favorite" : "المفضلة",
- "Text file" : "ملف نصي",
- "New text file.txt" : "ملف نصي جديد fille.txt",
"Folder" : "مجلد",
"New folder" : "مجلد جديد",
"{newname} already exists" : "{newname} موجود مسبقاً",
@@ -88,8 +72,6 @@
"%2$s deleted %1$s" : "%2$s حذف %1$s",
"You restored %1$s" : "لقد قمت باستعادة %1$s",
"%2$s restored %1$s" : "%2$s مستعاد %1$s",
- "%s could not be renamed as it has been deleted" : "%s لا يمكن اعادة تسميته فقد تم حذفه ",
- "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ",
"Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"File handling" : "التعامل مع الملف",
"Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها",
@@ -108,6 +90,8 @@
"Files are being scanned, please wait." : "يرجى الانتظار , جاري فحص الملفات .",
"Currently scanning" : "حالياً يقوم بالفحص",
"No favorites" : "لا يوجد مفضلات ",
- "Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا "
+ "Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا ",
+ "Text file" : "ملف نصي",
+ "New text file.txt" : "ملف نصي جديد fille.txt"
},"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 5dfcae172ea..8fc63c1ac35 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Almacenamientu non disponible",
"Storage invalid" : "Almacenamientu inválidu",
"Unknown error" : "Fallu desconocíu",
- "Could not move %s - File with this name already exists" : "Nun pudo movese %s - Yá existe un ficheru con esi nome.",
- "Could not move %s" : "Nun pudo movese %s",
- "Permission denied" : "Permisu denegáu",
- "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nome %s yá ta n'usu na carpeta %s. Por favor, escueyi un nome diferente.",
- "Error when creating the file" : "Fallu cuando se creaba'l ficheru",
- "Error when creating the folder" : "Fallu cuando se creaba la carpeta",
"Unable to set upload directory." : "Nun pue afitase la carpeta de xubida.",
"Invalid Token" : "Token inválidu",
"No file was uploaded. Unknown error" : "Nun se xubió dengún ficheru. Fallu desconocíu",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write to disk" : "Fallu al escribir al discu",
"Not enough storage available" : "Nun hai abondu espaciu disponible",
+ "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.",
"Upload failed. Could not find uploaded file" : "Xubida fallida. Nun pudo atopase'l ficheru xubíu.",
"Upload failed. Could not get file info." : "Falló la xubida. Nun se pudo obtener la información del ficheru.",
"Invalid directory." : "Direutoriu non válidu.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Imposible determinar la fecha",
"This operation is forbidden" : "La operación ta prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, por favor verifica'l rexistru o contacta l'alministrador",
- "Error moving file." : "Fallu moviendo'l ficheru.",
- "Error moving file" : "Fallu moviendo'l ficheru",
- "Error" : "Fallu",
- "{new_name} already exists" : "{new_name} yá existe",
- "Could not rename file" : "Nun pudo renomase'l ficheru",
- "Could not create file" : "Nun pudo crease'l ficheru",
- "Could not create folder" : "Nun pudo crease la carpeta",
- "Error deleting file." : "Fallu desaniciando'l ficheru.",
"No entries in this folder match '{filter}'" : "Nun concasa nenguna entrada nesta carpeta '{filter}'",
"Name" : "Nome",
"Size" : "Tamañu",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
"Favorited" : "Favoritos",
"Favorite" : "Favoritu",
- "Text file" : "Ficheru de testu",
- "New text file.txt" : "Nuevu testu ficheru.txt",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"{newname} already exists" : "{newname} yá existe",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Modificáu por %2$s",
"Deleted by %2$s" : "Desaniciáu por %2$s",
"Restored by %2$s" : "Recuperáu por %2$s",
- "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase",
- "%s could not be renamed" : "Nun se puede renomar %s ",
"Upload (max. %s)" : "Xuba (máx. %s)",
"File handling" : "Alministración de ficheros",
"Maximum upload size" : "Tamañu máximu de xubida",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Tan escaniándose los ficheros, espera por favor.",
"Currently scanning" : "Anguaño escaneando",
"No favorites" : "Nengún favoritu",
- "Files and folders you mark as favorite will show up here" : "Los ficheros y carpetes que marque como favoritos apaecerán equí"
+ "Files and folders you mark as favorite will show up here" : "Los ficheros y carpetes que marque como favoritos apaecerán equí",
+ "Text file" : "Ficheru de testu",
+ "New text file.txt" : "Nuevu testu ficheru.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index a0934808529..33c119771f7 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -2,13 +2,6 @@
"Storage not available" : "Almacenamientu non disponible",
"Storage invalid" : "Almacenamientu inválidu",
"Unknown error" : "Fallu desconocíu",
- "Could not move %s - File with this name already exists" : "Nun pudo movese %s - Yá existe un ficheru con esi nome.",
- "Could not move %s" : "Nun pudo movese %s",
- "Permission denied" : "Permisu denegáu",
- "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nome %s yá ta n'usu na carpeta %s. Por favor, escueyi un nome diferente.",
- "Error when creating the file" : "Fallu cuando se creaba'l ficheru",
- "Error when creating the folder" : "Fallu cuando se creaba la carpeta",
"Unable to set upload directory." : "Nun pue afitase la carpeta de xubida.",
"Invalid Token" : "Token inválidu",
"No file was uploaded. Unknown error" : "Nun se xubió dengún ficheru. Fallu desconocíu",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Falta una carpeta temporal",
"Failed to write to disk" : "Fallu al escribir al discu",
"Not enough storage available" : "Nun hai abondu espaciu disponible",
+ "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.",
"Upload failed. Could not find uploaded file" : "Xubida fallida. Nun pudo atopase'l ficheru xubíu.",
"Upload failed. Could not get file info." : "Falló la xubida. Nun se pudo obtener la información del ficheru.",
"Invalid directory." : "Direutoriu non válidu.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Imposible determinar la fecha",
"This operation is forbidden" : "La operación ta prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, por favor verifica'l rexistru o contacta l'alministrador",
- "Error moving file." : "Fallu moviendo'l ficheru.",
- "Error moving file" : "Fallu moviendo'l ficheru",
- "Error" : "Fallu",
- "{new_name} already exists" : "{new_name} yá existe",
- "Could not rename file" : "Nun pudo renomase'l ficheru",
- "Could not create file" : "Nun pudo crease'l ficheru",
- "Could not create folder" : "Nun pudo crease la carpeta",
- "Error deleting file." : "Fallu desaniciando'l ficheru.",
"No entries in this folder match '{filter}'" : "Nun concasa nenguna entrada nesta carpeta '{filter}'",
"Name" : "Nome",
"Size" : "Tamañu",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
"Favorited" : "Favoritos",
"Favorite" : "Favoritu",
- "Text file" : "Ficheru de testu",
- "New text file.txt" : "Nuevu testu ficheru.txt",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"{newname} already exists" : "{newname} yá existe",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Modificáu por %2$s",
"Deleted by %2$s" : "Desaniciáu por %2$s",
"Restored by %2$s" : "Recuperáu por %2$s",
- "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase",
- "%s could not be renamed" : "Nun se puede renomar %s ",
"Upload (max. %s)" : "Xuba (máx. %s)",
"File handling" : "Alministración de ficheros",
"Maximum upload size" : "Tamañu máximu de xubida",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Tan escaniándose los ficheros, espera por favor.",
"Currently scanning" : "Anguaño escaneando",
"No favorites" : "Nengún favoritu",
- "Files and folders you mark as favorite will show up here" : "Los ficheros y carpetes que marque como favoritos apaecerán equí"
+ "Files and folders you mark as favorite will show up here" : "Los ficheros y carpetes que marque como favoritos apaecerán equí",
+ "Text file" : "Ficheru de testu",
+ "New text file.txt" : "Nuevu testu ficheru.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js
index 10cbd661ebf..cf7d81063ce 100644
--- a/apps/files/l10n/az.js
+++ b/apps/files/l10n/az.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"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",
- "Could not move %s - File with this name already exists" : "Köçürmə mümkün deyil %s - Bu adla fayl artıq mövcuddur",
- "Could not move %s" : "Yerdəyişmə mükün olmadı %s",
- "Permission denied" : "Yetki qadağandır",
- "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Bu ad %s artıq %s qovluğunda istifadə edilir. Xahiş olunur fərqli ad istifadə edəsiniz.",
- "Error when creating the file" : "Fayl yaratdıqda səhv baş vermişdir",
- "Error when creating the folder" : "Qovluğu yaratdıqda səhv baş vermişdir",
"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",
@@ -22,6 +15,7 @@ OC.L10N.register(
"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.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"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",
- "Error moving file." : "Faylın köçürülməsində səhv baş verdi.",
- "Error moving file" : "Faylın köçürülməsində səhv baş verdi",
- "Error" : "Səhv",
- "{new_name} already exists" : "{new_name} artıq mövcuddur",
- "Could not rename file" : "Faylın adını dəyişmək mümkün olmadı",
- "Could not create file" : "Faylı yaratmaq olmur",
- "Could not create folder" : "Qovluğu yaratmaq olmur",
- "Error deleting file." : "Faylın silinməsində səhv baş verdi.",
"No entries in this folder match '{filter}'" : "Bu qovluqda '{filter}' uyğunluğunda heç bir verilən tapılmadı",
"Name" : "Ad",
"Size" : "Həcm",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n baytlar","%n bytes"],
"Favorited" : "İstəkləndi",
"Favorite" : "İstəkli",
- "Text file" : "Tekst faylı",
- "New text file.txt" : "Yeni mətn file.txt",
"Folder" : "Qovluq",
"New folder" : "Yeni qovluq",
"{newname} already exists" : "{newname} artıq mövcuddur",
@@ -96,8 +80,6 @@ OC.L10N.register(
"%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",
- "%s could not be renamed as it has been deleted" : "%s adını dəyişə bilmərik ona görə ki, o silinib artıq",
- "%s could not be renamed" : "%s adını dəyişə bilməz",
"Upload (max. %s)" : "Yüklə (max. %s)",
"File handling" : "Fayl emalı",
"Maximum upload size" : "Maksimal yükləmə həcmi",
@@ -116,6 +98,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Faylların skanı başlanıb, xahiş olunur gözləyəsiniz.",
"Currently scanning" : "Hal-hazırda skan edilir",
"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"
+ "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
index 0587f91d97b..f2c45fda2f7 100644
--- a/apps/files/l10n/az.json
+++ b/apps/files/l10n/az.json
@@ -2,13 +2,6 @@
"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",
- "Could not move %s - File with this name already exists" : "Köçürmə mümkün deyil %s - Bu adla fayl artıq mövcuddur",
- "Could not move %s" : "Yerdəyişmə mükün olmadı %s",
- "Permission denied" : "Yetki qadağandır",
- "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Bu ad %s artıq %s qovluğunda istifadə edilir. Xahiş olunur fərqli ad istifadə edəsiniz.",
- "Error when creating the file" : "Fayl yaratdıqda səhv baş vermişdir",
- "Error when creating the folder" : "Qovluğu yaratdıqda səhv baş vermişdir",
"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",
@@ -20,6 +13,7 @@
"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.",
@@ -44,14 +38,6 @@
"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",
- "Error moving file." : "Faylın köçürülməsində səhv baş verdi.",
- "Error moving file" : "Faylın köçürülməsində səhv baş verdi",
- "Error" : "Səhv",
- "{new_name} already exists" : "{new_name} artıq mövcuddur",
- "Could not rename file" : "Faylın adını dəyişmək mümkün olmadı",
- "Could not create file" : "Faylı yaratmaq olmur",
- "Could not create folder" : "Qovluğu yaratmaq olmur",
- "Error deleting file." : "Faylın silinməsində səhv baş verdi.",
"No entries in this folder match '{filter}'" : "Bu qovluqda '{filter}' uyğunluğunda heç bir verilən tapılmadı",
"Name" : "Ad",
"Size" : "Həcm",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n baytlar","%n bytes"],
"Favorited" : "İstəkləndi",
"Favorite" : "İstəkli",
- "Text file" : "Tekst faylı",
- "New text file.txt" : "Yeni mətn file.txt",
"Folder" : "Qovluq",
"New folder" : "Yeni qovluq",
"{newname} already exists" : "{newname} artıq mövcuddur",
@@ -94,8 +78,6 @@
"%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",
- "%s could not be renamed as it has been deleted" : "%s adını dəyişə bilmərik ona görə ki, o silinib artıq",
- "%s could not be renamed" : "%s adını dəyişə bilməz",
"Upload (max. %s)" : "Yüklə (max. %s)",
"File handling" : "Fayl emalı",
"Maximum upload size" : "Maksimal yükləmə həcmi",
@@ -114,6 +96,8 @@
"Files are being scanned, please wait." : "Faylların skanı başlanıb, xahiş olunur gözləyəsiniz.",
"Currently scanning" : "Hal-hazırda skan edilir",
"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"
+ "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
index 77e9a4d6071..55e94ac2477 100644
--- a/apps/files/l10n/be.js
+++ b/apps/files/l10n/be.js
@@ -1,7 +1,6 @@
OC.L10N.register(
"files",
{
- "Error" : "Памылка",
"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
index 27c2988b703..3f70a0783fe 100644
--- a/apps/files/l10n/be.json
+++ b/apps/files/l10n/be.json
@@ -1,5 +1,4 @@
{ "translations": {
- "Error" : "Памылка",
"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_BG.js b/apps/files/l10n/bg_BG.js
index 7f83daa45f6..b30f670e310 100644
--- a/apps/files/l10n/bg_BG.js
+++ b/apps/files/l10n/bg_BG.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Липсва дисковото устройство.",
"Storage invalid" : "Невалидно дисково устройство.",
"Unknown error" : "Непозната грешка.",
- "Could not move %s - File with this name already exists" : "Неуспешно преместване на %s - Файл със същото име вече съществува.",
- "Could not move %s" : "Неуспешно преместване на %s.",
- "Permission denied" : "Достъпът отказан",
- "The target folder has been moved or deleted." : "Крайната папка е изтрита или преместена.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Името %s е вече в папка %s. Моля, избери друго име.",
- "Error when creating the file" : "Грешка при създаването на файлът.",
- "Error when creating the folder" : "Грешка при създаването на папката.",
"Unable to set upload directory." : "Неуспешно задаване на директория за качване.",
"Invalid Token" : "Невалиеден токен.",
"No file was uploaded. Unknown error" : "Неуспешно качвачване на файл. Непозната грешка.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Липсва временна папка.",
"Failed to write to disk" : "Възникна проблем при запис на диска.",
"Not enough storage available" : "Недостатъчно място.",
+ "The target folder has been moved or deleted." : "Крайната папка е изтрита или преместена.",
"Upload failed. Could not find uploaded file" : "Неуспешно качване. Не бе открит качения файл.",
"Upload failed. Could not get file info." : "Неуспешно качване. Не се получи информация за файла.",
"Invalid directory." : "Невалидна директория.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Избери",
"Pending" : "Чакащо",
"Unable to determine date" : "Неуспешно установяване на дата",
- "Error moving file." : "Грешка при местенето на файла.",
- "Error moving file" : "Грешка при преместването на файла.",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} вече съществува.",
- "Could not rename file" : "Неуспешно преименуване на файла.",
- "Could not create file" : "Несупешно създаване на файла.",
- "Could not create folder" : "Неуспешно създаване на папка.",
- "Error deleting file." : "Грешка при изтриването на файла.",
"No entries in this folder match '{filter}'" : "Нищо в тази папка не отговаря на '{filter}'",
"Name" : "Име",
"Size" : "Размер",
@@ -69,7 +55,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["пасва на '{filter}'","пасват на '{filter}'\n "],
"Favorited" : "Отбелязано в любими",
"Favorite" : "Любими",
- "Text file" : "Текстов файл",
"Folder" : "Папка",
"New folder" : "Нова папка",
"Upload" : "Качване",
@@ -87,8 +72,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s изтри %1$s.",
"You restored %1$s" : "Вие възстановихте %1$s",
"%2$s restored %1$s" : "%2$s възстанови %1$s",
- "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит",
- "%s could not be renamed" : "%s не може да бъде преименуван.",
"Upload (max. %s)" : "Качи (макс. %s)",
"File handling" : "Операция с файла",
"Maximum upload size" : "Максимален размер",
@@ -107,6 +90,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Файловете се сканирват, изчакайте.",
"Currently scanning" : "В момента се търси",
"No favorites" : "Няма любими",
- "Files and folders you mark as favorite will show up here" : "Файловете и папките които отбелязваш като любими ще се показват тук"
+ "Files and folders you mark as favorite will show up here" : "Файловете и папките които отбелязваш като любими ще се показват тук",
+ "Text file" : "Текстов файл"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json
index 639b39c258d..e676d27fcba 100644
--- a/apps/files/l10n/bg_BG.json
+++ b/apps/files/l10n/bg_BG.json
@@ -2,13 +2,6 @@
"Storage not available" : "Липсва дисковото устройство.",
"Storage invalid" : "Невалидно дисково устройство.",
"Unknown error" : "Непозната грешка.",
- "Could not move %s - File with this name already exists" : "Неуспешно преместване на %s - Файл със същото име вече съществува.",
- "Could not move %s" : "Неуспешно преместване на %s.",
- "Permission denied" : "Достъпът отказан",
- "The target folder has been moved or deleted." : "Крайната папка е изтрита или преместена.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Името %s е вече в папка %s. Моля, избери друго име.",
- "Error when creating the file" : "Грешка при създаването на файлът.",
- "Error when creating the folder" : "Грешка при създаването на папката.",
"Unable to set upload directory." : "Неуспешно задаване на директория за качване.",
"Invalid Token" : "Невалиеден токен.",
"No file was uploaded. Unknown error" : "Неуспешно качвачване на файл. Непозната грешка.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Липсва временна папка.",
"Failed to write to disk" : "Възникна проблем при запис на диска.",
"Not enough storage available" : "Недостатъчно място.",
+ "The target folder has been moved or deleted." : "Крайната папка е изтрита или преместена.",
"Upload failed. Could not find uploaded file" : "Неуспешно качване. Не бе открит качения файл.",
"Upload failed. Could not get file info." : "Неуспешно качване. Не се получи информация за файла.",
"Invalid directory." : "Невалидна директория.",
@@ -42,14 +36,6 @@
"Select" : "Избери",
"Pending" : "Чакащо",
"Unable to determine date" : "Неуспешно установяване на дата",
- "Error moving file." : "Грешка при местенето на файла.",
- "Error moving file" : "Грешка при преместването на файла.",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} вече съществува.",
- "Could not rename file" : "Неуспешно преименуване на файла.",
- "Could not create file" : "Несупешно създаване на файла.",
- "Could not create folder" : "Неуспешно създаване на папка.",
- "Error deleting file." : "Грешка при изтриването на файла.",
"No entries in this folder match '{filter}'" : "Нищо в тази папка не отговаря на '{filter}'",
"Name" : "Име",
"Size" : "Размер",
@@ -67,7 +53,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["пасва на '{filter}'","пасват на '{filter}'\n "],
"Favorited" : "Отбелязано в любими",
"Favorite" : "Любими",
- "Text file" : "Текстов файл",
"Folder" : "Папка",
"New folder" : "Нова папка",
"Upload" : "Качване",
@@ -85,8 +70,6 @@
"%2$s deleted %1$s" : "%2$s изтри %1$s.",
"You restored %1$s" : "Вие възстановихте %1$s",
"%2$s restored %1$s" : "%2$s възстанови %1$s",
- "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит",
- "%s could not be renamed" : "%s не може да бъде преименуван.",
"Upload (max. %s)" : "Качи (макс. %s)",
"File handling" : "Операция с файла",
"Maximum upload size" : "Максимален размер",
@@ -105,6 +88,7 @@
"Files are being scanned, please wait." : "Файловете се сканирват, изчакайте.",
"Currently scanning" : "В момента се търси",
"No favorites" : "Няма любими",
- "Files and folders you mark as favorite will show up here" : "Файловете и папките които отбелязваш като любими ще се показват тук"
+ "Files and folders you mark as favorite will show up here" : "Файловете и папките които отбелязваш като любими ще се показват тук",
+ "Text file" : "Текстов файл"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js
index 412f4aa0399..b968a225da7 100644
--- a/apps/files/l10n/bn_BD.js
+++ b/apps/files/l10n/bn_BD.js
@@ -4,11 +4,6 @@ OC.L10N.register(
"Storage not available" : "সংরক্ষণের স্থান নেই",
"Storage invalid" : "সংরক্ষণাগার বৈধ নয়",
"Unknown error" : "অজানা জটিলতা",
- "Could not move %s - File with this name already exists" : "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান",
- "Could not move %s" : "%s কে স্থানান্তর করা সম্ভব হলো না",
- "Permission denied" : "অনুমতি দেয়া হয়নি",
- "Error when creating the file" : "ফাইলটি তৈরী করতে যেয়ে সমস্যা হলো",
- "Error when creating the folder" : "ফোল্ডার তৈরী করতে যেয়ে সমস্যা হলো",
"Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।",
"No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।",
"There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।",
@@ -33,11 +28,6 @@ OC.L10N.register(
"Delete" : "মুছে",
"Details" : "বিস্তারিত",
"Pending" : "মুলতুবি",
- "Error moving file." : "ফাইল সরাতে সমস্যা হলো।",
- "Error moving file" : "ফাইল সরাতে সমস্যা হলো",
- "Error" : "সমস্যা",
- "{new_name} already exists" : "{new_name} টি বিদ্যমান",
- "Could not rename file" : "ফাইলের পূণঃনামকরণ করা গেলনা",
"Name" : "রাম",
"Size" : "আকার",
"Modified" : "পরিবর্তিত",
@@ -47,7 +37,6 @@ OC.L10N.register(
"File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।",
"Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
"Favorite" : "প্রিয়জন",
- "Text file" : "টেক্সট ফাইল",
"Folder" : "ফোল্ডার",
"New folder" : "নব ফােলডার",
"Upload" : "আপলোড",
@@ -70,6 +59,7 @@ OC.L10N.register(
"Cancel upload" : "আপলোড বাতিল কর",
"Upload too large" : "আপলোডের আকারটি অনেক বড়",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ",
- "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।"
+ "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।",
+ "Text file" : "টেক্সট ফাইল"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json
index b8078f43071..bed559330ad 100644
--- a/apps/files/l10n/bn_BD.json
+++ b/apps/files/l10n/bn_BD.json
@@ -2,11 +2,6 @@
"Storage not available" : "সংরক্ষণের স্থান নেই",
"Storage invalid" : "সংরক্ষণাগার বৈধ নয়",
"Unknown error" : "অজানা জটিলতা",
- "Could not move %s - File with this name already exists" : "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান",
- "Could not move %s" : "%s কে স্থানান্তর করা সম্ভব হলো না",
- "Permission denied" : "অনুমতি দেয়া হয়নি",
- "Error when creating the file" : "ফাইলটি তৈরী করতে যেয়ে সমস্যা হলো",
- "Error when creating the folder" : "ফোল্ডার তৈরী করতে যেয়ে সমস্যা হলো",
"Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।",
"No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।",
"There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।",
@@ -31,11 +26,6 @@
"Delete" : "মুছে",
"Details" : "বিস্তারিত",
"Pending" : "মুলতুবি",
- "Error moving file." : "ফাইল সরাতে সমস্যা হলো।",
- "Error moving file" : "ফাইল সরাতে সমস্যা হলো",
- "Error" : "সমস্যা",
- "{new_name} already exists" : "{new_name} টি বিদ্যমান",
- "Could not rename file" : "ফাইলের পূণঃনামকরণ করা গেলনা",
"Name" : "রাম",
"Size" : "আকার",
"Modified" : "পরিবর্তিত",
@@ -45,7 +35,6 @@
"File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।",
"Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
"Favorite" : "প্রিয়জন",
- "Text file" : "টেক্সট ফাইল",
"Folder" : "ফোল্ডার",
"New folder" : "নব ফােলডার",
"Upload" : "আপলোড",
@@ -68,6 +57,7 @@
"Cancel upload" : "আপলোড বাতিল কর",
"Upload too large" : "আপলোডের আকারটি অনেক বড়",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ",
- "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।"
+ "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।",
+ "Text file" : "টেক্সট ফাইল"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/bn_IN.js b/apps/files/l10n/bn_IN.js
index d7f61133133..e69597d35ca 100644
--- a/apps/files/l10n/bn_IN.js
+++ b/apps/files/l10n/bn_IN.js
@@ -1,8 +1,6 @@
OC.L10N.register(
"files",
{
- "Could not move %s - File with this name already exists" : "%s সরানো যায়নি-এই নামে আগে থেকেই ফাইল আছে",
- "Could not move %s" : "%s সরানো যায়নি",
"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 নির্দেশ অতিক্রম করে:",
@@ -19,7 +17,6 @@ OC.L10N.register(
"Rename" : "পুনঃনামকরণ",
"Delete" : "মুছে ফেলা",
"Pending" : "মুলতুবি",
- "Error" : "ভুল",
"Name" : "নাম",
"Size" : "আকার",
"Folder" : "ফোল্ডার",
diff --git a/apps/files/l10n/bn_IN.json b/apps/files/l10n/bn_IN.json
index f2d5d9fbf74..20c8c2e795e 100644
--- a/apps/files/l10n/bn_IN.json
+++ b/apps/files/l10n/bn_IN.json
@@ -1,6 +1,4 @@
{ "translations": {
- "Could not move %s - File with this name already exists" : "%s সরানো যায়নি-এই নামে আগে থেকেই ফাইল আছে",
- "Could not move %s" : "%s সরানো যায়নি",
"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 নির্দেশ অতিক্রম করে:",
@@ -17,7 +15,6 @@
"Rename" : "পুনঃনামকরণ",
"Delete" : "মুছে ফেলা",
"Pending" : "মুলতুবি",
- "Error" : "ভুল",
"Name" : "নাম",
"Size" : "আকার",
"Folder" : "ফোল্ডার",
diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js
index b084f2eb3be..9da51ece871 100644
--- a/apps/files/l10n/bs.js
+++ b/apps/files/l10n/bs.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Pohrana je nedostupna",
"Storage invalid" : "Pohrana je neispravna",
"Unknown error" : "Nepoznata greška",
- "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji",
- "Could not move %s" : "Nemoguće premjestiti %s",
- "Permission denied" : "Nemate ovlaštenje",
- "The target folder has been moved or deleted." : "Ciljni direktorij je premješten ili izbrisan.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u direktoriju %s. Molim odaberite drugi naziv.",
- "Error when creating the file" : "Greška pri kreiranju datoteke",
- "Error when creating the folder" : "Greška pri kreiranju direktorija",
"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.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"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.",
@@ -43,14 +37,6 @@ OC.L10N.register(
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemoguće odrediti datum",
- "Error moving file." : "Greška pri premještanju datoteke",
- "Error moving file" : "Greška pri premještanju datoteke",
- "Error" : "Greška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Nemoguće preimenovati datoteku",
- "Could not create file" : "Datoteku nije moguće kreirati",
- "Could not create folder" : "Direktorij nije moguće kreirati",
- "Error deleting file." : "Greška pri brisanju datoteke",
"Name" : "Ime",
"Size" : "Veličina",
"Modified" : "Izmijenjeno",
@@ -66,12 +52,9 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
"Favorited" : "Favorizovano",
"Favorite" : "Favorit",
- "Text file" : "Tekstualna datoteka",
"Folder" : "Direktorij",
"New folder" : "Novi direktorij",
"Upload" : "Učitaj",
- "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
- "%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Učitaj (max. %s)",
"File handling" : "Obrada datoteke",
"Maximum upload size" : "Maksimalna veličina učitavanja",
@@ -88,6 +71,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Datoteke se provjeravaju, molim pričekajte.",
"Currently scanning" : "Provjera u toku",
"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"
+ "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
index e02689ff9fe..095fe47048d 100644
--- a/apps/files/l10n/bs.json
+++ b/apps/files/l10n/bs.json
@@ -2,13 +2,6 @@
"Storage not available" : "Pohrana je nedostupna",
"Storage invalid" : "Pohrana je neispravna",
"Unknown error" : "Nepoznata greška",
- "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji",
- "Could not move %s" : "Nemoguće premjestiti %s",
- "Permission denied" : "Nemate ovlaštenje",
- "The target folder has been moved or deleted." : "Ciljni direktorij je premješten ili izbrisan.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u direktoriju %s. Molim odaberite drugi naziv.",
- "Error when creating the file" : "Greška pri kreiranju datoteke",
- "Error when creating the folder" : "Greška pri kreiranju direktorija",
"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.",
@@ -20,6 +13,7 @@
"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.",
@@ -41,14 +35,6 @@
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemoguće odrediti datum",
- "Error moving file." : "Greška pri premještanju datoteke",
- "Error moving file" : "Greška pri premještanju datoteke",
- "Error" : "Greška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Nemoguće preimenovati datoteku",
- "Could not create file" : "Datoteku nije moguće kreirati",
- "Could not create folder" : "Direktorij nije moguće kreirati",
- "Error deleting file." : "Greška pri brisanju datoteke",
"Name" : "Ime",
"Size" : "Veličina",
"Modified" : "Izmijenjeno",
@@ -64,12 +50,9 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
"Favorited" : "Favorizovano",
"Favorite" : "Favorit",
- "Text file" : "Tekstualna datoteka",
"Folder" : "Direktorij",
"New folder" : "Novi direktorij",
"Upload" : "Učitaj",
- "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
- "%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Učitaj (max. %s)",
"File handling" : "Obrada datoteke",
"Maximum upload size" : "Maksimalna veličina učitavanja",
@@ -86,6 +69,7 @@
"Files are being scanned, please wait." : "Datoteke se provjeravaju, molim pričekajte.",
"Currently scanning" : "Provjera u toku",
"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"
+ "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 601781a1182..88ad7224161 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Emmagatzemament no disponible",
"Storage invalid" : "Emmagatzemament no vàlid",
"Unknown error" : "Error desconegut",
- "Could not move %s - File with this name already exists" : "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom",
- "Could not move %s" : " No s'ha pogut moure %s",
- "Permission denied" : "Permís denegat",
- "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent.",
- "Error when creating the file" : "S'ha produït un error en crear el fitxer",
- "Error when creating the folder" : "S'ha produït un error en crear la carpeta",
"Unable to set upload directory." : "No es pot establir la carpeta de pujada.",
"Invalid Token" : "Testimoni no vàlid",
"No file was uploaded. Unknown error" : "No s'ha carregat cap fitxer. Error desconegut",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta un fitxer temporal",
"Failed to write to disk" : "Ha fallat en escriure al disc",
"Not enough storage available" : "No hi ha prou espai disponible",
+ "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.",
"Upload failed. Could not find uploaded file" : "La pujada ha fallat. El fitxer pujat no s'ha trobat.",
"Upload failed. Could not get file info." : "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer.",
"Invalid directory." : "Directori no vàlid.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Selecciona",
"Pending" : "Pendent",
"Unable to determine date" : "No s'ha pogut determinar la data",
- "Error moving file." : "Error en moure el fitxer.",
- "Error moving file" : "Error en moure el fitxer",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ja existeix",
- "Could not rename file" : "No es pot canviar el nom de fitxer",
- "Could not create file" : "No s'ha pogut crear el fitxer",
- "Could not create folder" : "No s'ha pogut crear la carpeta",
- "Error deleting file." : "Error en esborrar el fitxer.",
"No entries in this folder match '{filter}'" : "No hi ha resultats que coincideixin amb '{filter}'",
"Name" : "Nom",
"Size" : "Mida",
@@ -71,7 +57,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"Favorited" : "Agregat a favorits",
"Favorite" : "Preferits",
- "Text file" : "Fitxer de text",
"Folder" : "Carpeta",
"New folder" : "Carpeta nova",
"Upload" : "Puja",
@@ -90,8 +75,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s ha esborrat %1$s",
"You restored %1$s" : "Has restaurat %1$s",
"%2$s restored %1$s" : "%2$s ha restaurat %1$s",
- "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat",
- "%s could not be renamed" : "%s no es pot canviar el nom",
"Upload (max. %s)" : "Pujada (màx. %s)",
"File handling" : "Gestió de fitxers",
"Maximum upload size" : "Mida màxima de pujada",
@@ -110,6 +93,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "S'estan escanejant els fitxers, espereu",
"Currently scanning" : "Actualment escanejant",
"No favorites" : "No hi ha favorits",
- "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits"
+ "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits",
+ "Text file" : "Fitxer de text"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 748a55d3c8e..4eee482e835 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -2,13 +2,6 @@
"Storage not available" : "Emmagatzemament no disponible",
"Storage invalid" : "Emmagatzemament no vàlid",
"Unknown error" : "Error desconegut",
- "Could not move %s - File with this name already exists" : "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom",
- "Could not move %s" : " No s'ha pogut moure %s",
- "Permission denied" : "Permís denegat",
- "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent.",
- "Error when creating the file" : "S'ha produït un error en crear el fitxer",
- "Error when creating the folder" : "S'ha produït un error en crear la carpeta",
"Unable to set upload directory." : "No es pot establir la carpeta de pujada.",
"Invalid Token" : "Testimoni no vàlid",
"No file was uploaded. Unknown error" : "No s'ha carregat cap fitxer. Error desconegut",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Falta un fitxer temporal",
"Failed to write to disk" : "Ha fallat en escriure al disc",
"Not enough storage available" : "No hi ha prou espai disponible",
+ "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.",
"Upload failed. Could not find uploaded file" : "La pujada ha fallat. El fitxer pujat no s'ha trobat.",
"Upload failed. Could not get file info." : "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer.",
"Invalid directory." : "Directori no vàlid.",
@@ -42,14 +36,6 @@
"Select" : "Selecciona",
"Pending" : "Pendent",
"Unable to determine date" : "No s'ha pogut determinar la data",
- "Error moving file." : "Error en moure el fitxer.",
- "Error moving file" : "Error en moure el fitxer",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ja existeix",
- "Could not rename file" : "No es pot canviar el nom de fitxer",
- "Could not create file" : "No s'ha pogut crear el fitxer",
- "Could not create folder" : "No s'ha pogut crear la carpeta",
- "Error deleting file." : "Error en esborrar el fitxer.",
"No entries in this folder match '{filter}'" : "No hi ha resultats que coincideixin amb '{filter}'",
"Name" : "Nom",
"Size" : "Mida",
@@ -69,7 +55,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"Favorited" : "Agregat a favorits",
"Favorite" : "Preferits",
- "Text file" : "Fitxer de text",
"Folder" : "Carpeta",
"New folder" : "Carpeta nova",
"Upload" : "Puja",
@@ -88,8 +73,6 @@
"%2$s deleted %1$s" : "%2$s ha esborrat %1$s",
"You restored %1$s" : "Has restaurat %1$s",
"%2$s restored %1$s" : "%2$s ha restaurat %1$s",
- "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat",
- "%s could not be renamed" : "%s no es pot canviar el nom",
"Upload (max. %s)" : "Pujada (màx. %s)",
"File handling" : "Gestió de fitxers",
"Maximum upload size" : "Mida màxima de pujada",
@@ -108,6 +91,7 @@
"Files are being scanned, please wait." : "S'estan escanejant els fitxers, espereu",
"Currently scanning" : "Actualment escanejant",
"No favorites" : "No hi ha favorits",
- "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits"
+ "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits",
+ "Text file" : "Fitxer de text"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js
index 3c6bdc05a1b..8c40cbcd771 100644
--- a/apps/files/l10n/cs_CZ.js
+++ b/apps/files/l10n/cs_CZ.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Úložiště není dostupné",
"Storage invalid" : "Neplatné úložiště",
"Unknown error" : "Neznámá chyba",
- "Could not move %s - File with this name already exists" : "Nelze přesunout %s - již existuje soubor se stejným názvem",
- "Could not move %s" : "Nelze přesunout %s",
- "Permission denied" : "Přístup odepřen",
- "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.",
- "Error when creating the file" : "Chyba při vytváření souboru",
- "Error when creating the folder" : "Chyba při vytváření složky",
"Unable to set upload directory." : "Nelze nastavit adresář pro nahrané soubory.",
"Invalid Token" : "Neplatný token",
"No file was uploaded. Unknown error" : "Žádný soubor nebyl odeslán. Neznámá chyba",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
"Failed to write to disk" : "Zápis na disk selhal",
"Not enough storage available" : "Nedostatek dostupného úložného prostoru",
+ "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.",
"Upload failed. Could not find uploaded file" : "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor.",
"Upload failed. Could not get file info." : "Nahrávání selhalo. Nepodařilo se získat informace o souboru.",
"Invalid directory." : "Neplatný adresář",
@@ -46,14 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "Nelze určit datum",
"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 prosím logy nebo kontaktujte svého správce systému",
- "Error moving file." : "Chyba při přesunu souboru.",
- "Error moving file" : "Chyba při přesunu souboru",
- "Error" : "Chyba",
- "{new_name} already exists" : "{new_name} již existuje",
- "Could not rename file" : "Nepodařilo se přejmenovat soubor",
- "Could not create file" : "Nepodařilo se vytvořit soubor",
- "Could not create folder" : "Nepodařilo se vytvořit složku",
- "Error deleting file." : "Chyba při mazání souboru.",
+ "Could not move \"{file}\", target exists" : "Nelze přesunout \"{file}\", cíl existuje",
+ "Could not move \"{file}\"" : "Nelze přesunout \"{file}\"",
+ "{newName} already exists" : "{newName} již existuje",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nelze přejmenovat \"{fileName}\", již neexistuje",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jméno \"{targetName}\" je již použito v adresáři \"{dir}\". Vyberte prosím jiné jméno.",
+ "Could not rename \"{fileName}\"" : "Nelze přejmenovat \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Nelze vytvořit soubor \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Nelze vytvořit soubor \"{file}\", protože již existuje",
+ "Could not create folder \"{dir}\"" : "Nelze vytvořit adresář \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Nelze vytvořit adresář \"{dir}\", protože již existuje",
+ "Error deleting file \"{fileName}\"." : "Chyba mazání souboru \"{fileName}\".",
"No entries in this folder match '{filter}'" : "V tomto adresáři nic nesouhlasí s '{filter}'",
"Name" : "Název",
"Size" : "Velikost",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
"Favorited" : "Přidáno k oblíbeným",
"Favorite" : "Oblíbené",
- "Text file" : "Textový soubor",
- "New text file.txt" : "Nový textový soubor.txt",
"Folder" : "Složka",
"New folder" : "Nová složka",
"{newname} already exists" : "{newname} již existuje",
@@ -99,8 +94,6 @@ OC.L10N.register(
"Changed by %2$s" : "Změněno uživatelem %2$s",
"Deleted by %2$s" : "Smazáno uživatelem %2$s",
"Restored by %2$s" : "Obnoveno uživatelem %2$s",
- "%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán",
- "%s could not be renamed" : "%s nemůže být přejmenován",
"Upload (max. %s)" : "Nahrát (max. %s)",
"File handling" : "Zacházení se soubory",
"Maximum upload size" : "Maximální velikost pro odesílání",
@@ -121,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Soubory se prohledávají, prosím čekejte.",
"Currently scanning" : "Prohledává se",
"No favorites" : "Žádné oblíbené",
- "Files and folders you mark as favorite will show up here" : "Soubory a adresáře označené jako oblíbené budou zobrazeny zde"
+ "Files and folders you mark as favorite will show up here" : "Soubory a adresáře označené jako oblíbené budou zobrazeny zde",
+ "Text file" : "Textový soubor",
+ "New text file.txt" : "Nový textový soubor.txt"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json
index bf9170f2ee3..70b61ec784a 100644
--- a/apps/files/l10n/cs_CZ.json
+++ b/apps/files/l10n/cs_CZ.json
@@ -2,13 +2,6 @@
"Storage not available" : "Úložiště není dostupné",
"Storage invalid" : "Neplatné úložiště",
"Unknown error" : "Neznámá chyba",
- "Could not move %s - File with this name already exists" : "Nelze přesunout %s - již existuje soubor se stejným názvem",
- "Could not move %s" : "Nelze přesunout %s",
- "Permission denied" : "Přístup odepřen",
- "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.",
- "Error when creating the file" : "Chyba při vytváření souboru",
- "Error when creating the folder" : "Chyba při vytváření složky",
"Unable to set upload directory." : "Nelze nastavit adresář pro nahrané soubory.",
"Invalid Token" : "Neplatný token",
"No file was uploaded. Unknown error" : "Žádný soubor nebyl odeslán. Neznámá chyba",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
"Failed to write to disk" : "Zápis na disk selhal",
"Not enough storage available" : "Nedostatek dostupného úložného prostoru",
+ "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.",
"Upload failed. Could not find uploaded file" : "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor.",
"Upload failed. Could not get file info." : "Nahrávání selhalo. Nepodařilo se získat informace o souboru.",
"Invalid directory." : "Neplatný adresář",
@@ -44,14 +38,17 @@
"Unable to determine date" : "Nelze určit datum",
"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 prosím logy nebo kontaktujte svého správce systému",
- "Error moving file." : "Chyba při přesunu souboru.",
- "Error moving file" : "Chyba při přesunu souboru",
- "Error" : "Chyba",
- "{new_name} already exists" : "{new_name} již existuje",
- "Could not rename file" : "Nepodařilo se přejmenovat soubor",
- "Could not create file" : "Nepodařilo se vytvořit soubor",
- "Could not create folder" : "Nepodařilo se vytvořit složku",
- "Error deleting file." : "Chyba při mazání souboru.",
+ "Could not move \"{file}\", target exists" : "Nelze přesunout \"{file}\", cíl existuje",
+ "Could not move \"{file}\"" : "Nelze přesunout \"{file}\"",
+ "{newName} already exists" : "{newName} již existuje",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nelze přejmenovat \"{fileName}\", již neexistuje",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jméno \"{targetName}\" je již použito v adresáři \"{dir}\". Vyberte prosím jiné jméno.",
+ "Could not rename \"{fileName}\"" : "Nelze přejmenovat \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Nelze vytvořit soubor \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Nelze vytvořit soubor \"{file}\", protože již existuje",
+ "Could not create folder \"{dir}\"" : "Nelze vytvořit adresář \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Nelze vytvořit adresář \"{dir}\", protože již existuje",
+ "Error deleting file \"{fileName}\"." : "Chyba mazání souboru \"{fileName}\".",
"No entries in this folder match '{filter}'" : "V tomto adresáři nic nesouhlasí s '{filter}'",
"Name" : "Název",
"Size" : "Velikost",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
"Favorited" : "Přidáno k oblíbeným",
"Favorite" : "Oblíbené",
- "Text file" : "Textový soubor",
- "New text file.txt" : "Nový textový soubor.txt",
"Folder" : "Složka",
"New folder" : "Nová složka",
"{newname} already exists" : "{newname} již existuje",
@@ -97,8 +92,6 @@
"Changed by %2$s" : "Změněno uživatelem %2$s",
"Deleted by %2$s" : "Smazáno uživatelem %2$s",
"Restored by %2$s" : "Obnoveno uživatelem %2$s",
- "%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán",
- "%s could not be renamed" : "%s nemůže být přejmenován",
"Upload (max. %s)" : "Nahrát (max. %s)",
"File handling" : "Zacházení se soubory",
"Maximum upload size" : "Maximální velikost pro odesílání",
@@ -119,6 +112,8 @@
"Files are being scanned, please wait." : "Soubory se prohledávají, prosím čekejte.",
"Currently scanning" : "Prohledává se",
"No favorites" : "Žádné oblíbené",
- "Files and folders you mark as favorite will show up here" : "Soubory a adresáře označené jako oblíbené budou zobrazeny zde"
+ "Files and folders you mark as favorite will show up here" : "Soubory a adresáře označené jako oblíbené budou zobrazeny zde",
+ "Text file" : "Textový soubor",
+ "New text file.txt" : "Nový textový soubor.txt"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js
index 570fc14fa3a..983df98f350 100644
--- a/apps/files/l10n/cy_GB.js
+++ b/apps/files/l10n/cy_GB.js
@@ -1,8 +1,6 @@
OC.L10N.register(
"files",
{
- "Could not move %s - File with this name already exists" : "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli",
- "Could not move %s" : "Methwyd symud %s",
"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:",
@@ -24,8 +22,6 @@ OC.L10N.register(
"Delete" : "Dileu",
"Details" : "Manylion",
"Pending" : "I ddod",
- "Error" : "Gwall",
- "{new_name} already exists" : "{new_name} yn bodoli'n barod",
"Name" : "Enw",
"Size" : "Maint",
"Modified" : "Addaswyd",
@@ -33,7 +29,6 @@ OC.L10N.register(
"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}%)",
- "Text file" : "Ffeil destun",
"Folder" : "Plygell",
"Upload" : "Llwytho i fyny",
"File handling" : "Trafod ffeiliau",
@@ -44,6 +39,7 @@ OC.L10N.register(
"Cancel upload" : "Diddymu llwytho i fyny",
"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.",
- "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio."
+ "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio.",
+ "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
index e0b42d77a7a..b8b87b31dea 100644
--- a/apps/files/l10n/cy_GB.json
+++ b/apps/files/l10n/cy_GB.json
@@ -1,6 +1,4 @@
{ "translations": {
- "Could not move %s - File with this name already exists" : "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli",
- "Could not move %s" : "Methwyd symud %s",
"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:",
@@ -22,8 +20,6 @@
"Delete" : "Dileu",
"Details" : "Manylion",
"Pending" : "I ddod",
- "Error" : "Gwall",
- "{new_name} already exists" : "{new_name} yn bodoli'n barod",
"Name" : "Enw",
"Size" : "Maint",
"Modified" : "Addaswyd",
@@ -31,7 +27,6 @@
"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}%)",
- "Text file" : "Ffeil destun",
"Folder" : "Plygell",
"Upload" : "Llwytho i fyny",
"File handling" : "Trafod ffeiliau",
@@ -42,6 +37,7 @@
"Cancel upload" : "Diddymu llwytho i fyny",
"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.",
- "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio."
+ "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio.",
+ "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 307a58e74f0..2c27835f917 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Lagerplads er ikke tilgængeligt",
"Storage invalid" : "Lagerplads er ugyldig",
"Unknown error" : "Ukendt fejl",
- "Could not move %s - File with this name already exists" : "Kunne ikke flytte %s - der findes allerede en fil med dette navn",
- "Could not move %s" : "Kunne ikke flytte %s",
- "Permission denied" : "Adgang nægtet",
- "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.",
- "Error when creating the file" : "Fejl ved oprettelse af fil",
- "Error when creating the folder" : "Fejl ved oprettelse af mappen",
"Unable to set upload directory." : "Ude af stand til at vælge upload mappe.",
"Invalid Token" : "Ugyldig Token ",
"No file was uploaded. Unknown error" : "Ingen fil blev uploadet. Ukendt fejl.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Manglende midlertidig mappe.",
"Failed to write to disk" : "Fejl ved skrivning til disk.",
"Not enough storage available" : "Der er ikke nok plads til rådlighed",
+ "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.",
"Upload failed. Could not find uploaded file" : "Upload fejlede. Kunne ikke finde den uploadede fil.",
"Upload failed. Could not get file info." : "Upload fejlede. Kunne ikke hente filinformation.",
"Invalid directory." : "Ugyldig mappe.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Kan ikke fastslå datoen",
"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",
- "Error moving file." : "Fejl ved flytning af fil",
- "Error moving file" : "Fejl ved flytning af fil",
- "Error" : "Fejl",
- "{new_name} already exists" : "{new_name} eksisterer allerede",
- "Could not rename file" : "Kunne ikke omdøbe filen",
- "Could not create file" : "Kunne ikke oprette fil",
- "Could not create folder" : "Kunne ikke oprette mappe",
- "Error deleting file." : "Fejl ved sletnign af fil.",
"No entries in this folder match '{filter}'" : "Der er ingen poster i denne mappe, der matcher '{filter}'",
"Name" : "Navn",
"Size" : "Størrelse",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Gjort til foretrukken",
"Favorite" : "Foretrukken",
- "Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekst file.txt",
"Folder" : "Mappe",
"New folder" : "Ny Mappe",
"{newname} already exists" : "{newname} eksistere allerede",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Ændret af %2$s",
"Deleted by %2$s" : "Slettet af %2$s",
"Restored by %2$s" : "Gendannet af %2$s",
- "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet",
- "%s could not be renamed" : "%s kunne ikke omdøbes",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "Filhåndtering",
"Maximum upload size" : "Maksimal upload-størrelse",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Filerne bliver indlæst, vent venligst.",
"Currently scanning" : "Skanning er i gang",
"No favorites" : "Ingen foretrukne",
- "Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her"
+ "Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her",
+ "Text file" : "Tekstfil",
+ "New text file.txt" : "Ny tekst file.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index ae5d9655536..33663829721 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -2,13 +2,6 @@
"Storage not available" : "Lagerplads er ikke tilgængeligt",
"Storage invalid" : "Lagerplads er ugyldig",
"Unknown error" : "Ukendt fejl",
- "Could not move %s - File with this name already exists" : "Kunne ikke flytte %s - der findes allerede en fil med dette navn",
- "Could not move %s" : "Kunne ikke flytte %s",
- "Permission denied" : "Adgang nægtet",
- "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.",
- "Error when creating the file" : "Fejl ved oprettelse af fil",
- "Error when creating the folder" : "Fejl ved oprettelse af mappen",
"Unable to set upload directory." : "Ude af stand til at vælge upload mappe.",
"Invalid Token" : "Ugyldig Token ",
"No file was uploaded. Unknown error" : "Ingen fil blev uploadet. Ukendt fejl.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Manglende midlertidig mappe.",
"Failed to write to disk" : "Fejl ved skrivning til disk.",
"Not enough storage available" : "Der er ikke nok plads til rådlighed",
+ "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.",
"Upload failed. Could not find uploaded file" : "Upload fejlede. Kunne ikke finde den uploadede fil.",
"Upload failed. Could not get file info." : "Upload fejlede. Kunne ikke hente filinformation.",
"Invalid directory." : "Ugyldig mappe.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Kan ikke fastslå datoen",
"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",
- "Error moving file." : "Fejl ved flytning af fil",
- "Error moving file" : "Fejl ved flytning af fil",
- "Error" : "Fejl",
- "{new_name} already exists" : "{new_name} eksisterer allerede",
- "Could not rename file" : "Kunne ikke omdøbe filen",
- "Could not create file" : "Kunne ikke oprette fil",
- "Could not create folder" : "Kunne ikke oprette mappe",
- "Error deleting file." : "Fejl ved sletnign af fil.",
"No entries in this folder match '{filter}'" : "Der er ingen poster i denne mappe, der matcher '{filter}'",
"Name" : "Navn",
"Size" : "Størrelse",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Gjort til foretrukken",
"Favorite" : "Foretrukken",
- "Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekst file.txt",
"Folder" : "Mappe",
"New folder" : "Ny Mappe",
"{newname} already exists" : "{newname} eksistere allerede",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Ændret af %2$s",
"Deleted by %2$s" : "Slettet af %2$s",
"Restored by %2$s" : "Gendannet af %2$s",
- "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet",
- "%s could not be renamed" : "%s kunne ikke omdøbes",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "Filhåndtering",
"Maximum upload size" : "Maksimal upload-størrelse",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Filerne bliver indlæst, vent venligst.",
"Currently scanning" : "Skanning er i gang",
"No favorites" : "Ingen foretrukne",
- "Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her"
+ "Files and folders you mark as favorite will show up here" : "Filer og mapper som du har markeret som foretrukne, vil blive vist her",
+ "Text file" : "Tekstfil",
+ "New text file.txt" : "Ny tekst file.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 5a35a5f21ee..cec0cfda0ca 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Speicher nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Could not move %s - File with this name already exists" : "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits",
- "Could not move %s" : "Konnte %s nicht verschieben",
- "Permission denied" : "Zugriff verweigert",
- "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.",
- "Error when creating the file" : "Fehler beim Erstellen der Datei",
- "Error when creating the folder" : "Fehler beim Erstellen des Ordners",
"Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.",
"Invalid Token" : "Ungültiger Token",
"No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" : "Nicht genug Speicher vorhanden.",
+ "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
"Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.",
"Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.",
"Invalid directory." : "Ungültiges Verzeichnis.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Datum konnte nicht ermittelt 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üfe die Logdateien oder kontaktiere den Administrator",
- "Error moving file." : "Fehler beim Verschieben der Datei.",
- "Error moving file" : "Fehler beim Verschieben der Datei",
- "Error" : "Fehler",
- "{new_name} already exists" : "{new_name} existiert bereits",
- "Could not rename file" : "Die Datei konnte nicht umbenannt werden",
- "Could not create file" : "Die Datei konnte nicht erstellt werden",
- "Could not create folder" : "Der Ordner konnte nicht erstellt werden",
- "Error deleting file." : "Fehler beim Löschen der Datei.",
"No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein",
"Name" : "Name",
"Size" : "Größe",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
"Favorited" : "Favorisiert",
"Favorite" : "Favorit",
- "Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei.txt",
"Folder" : "Ordner",
"New folder" : "Neuer Ordner",
"{newname} already exists" : "{newname} existiert bereits",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Geändert von %2$s",
"Deleted by %2$s" : "Gelöscht von %2$s",
"Restored by %2$s" : "Wiederhergestellt von %2$s",
- "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
- "%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
"File handling" : "Dateibehandlung",
"Maximum upload size" : "Maximale Upload-Größe",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.",
"Currently scanning" : "Durchsuchen läuft",
"No favorites" : "Keine Favoriten",
- "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Du als Favoriten markierst, werden hier erscheinen"
+ "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Du als Favoriten markierst, werden hier erscheinen",
+ "Text file" : "Textdatei",
+ "New text file.txt" : "Neue Textdatei.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 860a97916be..4e7a6e1bf09 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -2,13 +2,6 @@
"Storage not available" : "Speicher nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Could not move %s - File with this name already exists" : "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits",
- "Could not move %s" : "Konnte %s nicht verschieben",
- "Permission denied" : "Zugriff verweigert",
- "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.",
- "Error when creating the file" : "Fehler beim Erstellen der Datei",
- "Error when creating the folder" : "Fehler beim Erstellen des Ordners",
"Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.",
"Invalid Token" : "Ungültiger Token",
"No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" : "Nicht genug Speicher vorhanden.",
+ "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
"Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.",
"Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.",
"Invalid directory." : "Ungültiges Verzeichnis.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Datum konnte nicht ermittelt 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üfe die Logdateien oder kontaktiere den Administrator",
- "Error moving file." : "Fehler beim Verschieben der Datei.",
- "Error moving file" : "Fehler beim Verschieben der Datei",
- "Error" : "Fehler",
- "{new_name} already exists" : "{new_name} existiert bereits",
- "Could not rename file" : "Die Datei konnte nicht umbenannt werden",
- "Could not create file" : "Die Datei konnte nicht erstellt werden",
- "Could not create folder" : "Der Ordner konnte nicht erstellt werden",
- "Error deleting file." : "Fehler beim Löschen der Datei.",
"No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein",
"Name" : "Name",
"Size" : "Größe",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
"Favorited" : "Favorisiert",
"Favorite" : "Favorit",
- "Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei.txt",
"Folder" : "Ordner",
"New folder" : "Neuer Ordner",
"{newname} already exists" : "{newname} existiert bereits",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Geändert von %2$s",
"Deleted by %2$s" : "Gelöscht von %2$s",
"Restored by %2$s" : "Wiederhergestellt von %2$s",
- "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
- "%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
"File handling" : "Dateibehandlung",
"Maximum upload size" : "Maximale Upload-Größe",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.",
"Currently scanning" : "Durchsuchen läuft",
"No favorites" : "Keine Favoriten",
- "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Du als Favoriten markierst, werden hier erscheinen"
+ "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Du als Favoriten markierst, werden hier erscheinen",
+ "Text file" : "Textdatei",
+ "New text file.txt" : "Neue Textdatei.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js
index 7bebb1e6eaf..d7a77f9ee40 100644
--- a/apps/files/l10n/de_AT.js
+++ b/apps/files/l10n/de_AT.js
@@ -6,7 +6,6 @@ OC.L10N.register(
"Download" : "Herunterladen",
"Delete" : "Löschen",
"Details" : "Details",
- "Error" : "Fehler",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
"A new file or folder has been <strong>created</strong>" : "Eine neue Datei oder ein neuer Ordner wurde <strong>erstellt</strong>",
diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json
index fffb3863e85..7381a96665a 100644
--- a/apps/files/l10n/de_AT.json
+++ b/apps/files/l10n/de_AT.json
@@ -4,7 +4,6 @@
"Download" : "Herunterladen",
"Delete" : "Löschen",
"Details" : "Details",
- "Error" : "Fehler",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
"A new file or folder has been <strong>created</strong>" : "Eine neue Datei oder ein neuer Ordner wurde <strong>erstellt</strong>",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index ddb84ffedfb..6b5d0d00e7f 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Speicher nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.",
- "Could not move %s" : "Konnte %s nicht verschieben",
- "Permission denied" : "Zugriff verweigert",
- "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.",
- "Error when creating the file" : "Fehler beim Erstellen der Datei",
- "Error when creating the folder" : "Fehler beim Erstellen des Ordners",
"Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.",
"Invalid Token" : "Ungültiger Token",
"No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" : "Nicht genug Speicher vorhanden.",
+ "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
"Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.",
"Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.",
"Invalid directory." : "Ungültiges Verzeichnis.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Datum konnte nicht ermittelt 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 Logdateien oder kontaktieren Sie den Administrator",
- "Error moving file." : "Fehler beim Verschieben der Datei.",
- "Error moving file" : "Fehler beim Verschieben der Datei",
- "Error" : "Fehler",
- "{new_name} already exists" : "{new_name} existiert bereits",
- "Could not rename file" : "Die Datei konnte nicht umbenannt werden",
- "Could not create file" : "Die Datei konnte nicht erstellt werden",
- "Could not create folder" : "Der Ordner konnte nicht erstellt werden",
- "Error deleting file." : "Fehler beim Löschen der Datei.",
"No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein",
"Name" : "Name",
"Size" : "Größe",
@@ -73,7 +59,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"Favorited" : "Favorisiert",
"Favorite" : "Favorit",
- "Text file" : "Textdatei",
"Folder" : "Ordner",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
@@ -92,8 +77,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s hat %1$s gelöscht",
"You restored %1$s" : "Sie haben %1$s wiederhergestellt",
"%2$s restored %1$s" : "%2$s wiederhergestellt %1$s",
- "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
- "%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
"File handling" : "Dateibehandlung",
"Maximum upload size" : "Maximale Upload-Größe",
@@ -112,6 +95,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.",
"Currently scanning" : "Durchsuchen läuft",
"No favorites" : "Keine Favoriten",
- "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen"
+ "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
+ "Text file" : "Textdatei"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 5f7cd053e8e..d6076467ce9 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -2,13 +2,6 @@
"Storage not available" : "Speicher nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.",
- "Could not move %s" : "Konnte %s nicht verschieben",
- "Permission denied" : "Zugriff verweigert",
- "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.",
- "Error when creating the file" : "Fehler beim Erstellen der Datei",
- "Error when creating the folder" : "Fehler beim Erstellen des Ordners",
"Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.",
"Invalid Token" : "Ungültiger Token",
"No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" : "Nicht genug Speicher vorhanden.",
+ "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.",
"Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.",
"Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.",
"Invalid directory." : "Ungültiges Verzeichnis.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Datum konnte nicht ermittelt 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 Logdateien oder kontaktieren Sie den Administrator",
- "Error moving file." : "Fehler beim Verschieben der Datei.",
- "Error moving file" : "Fehler beim Verschieben der Datei",
- "Error" : "Fehler",
- "{new_name} already exists" : "{new_name} existiert bereits",
- "Could not rename file" : "Die Datei konnte nicht umbenannt werden",
- "Could not create file" : "Die Datei konnte nicht erstellt werden",
- "Could not create folder" : "Der Ordner konnte nicht erstellt werden",
- "Error deleting file." : "Fehler beim Löschen der Datei.",
"No entries in this folder match '{filter}'" : "Keine Einträge in diesem Ordner stimmen mit '{filter}' überein",
"Name" : "Name",
"Size" : "Größe",
@@ -71,7 +57,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"Favorited" : "Favorisiert",
"Favorite" : "Favorit",
- "Text file" : "Textdatei",
"Folder" : "Ordner",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
@@ -90,8 +75,6 @@
"%2$s deleted %1$s" : "%2$s hat %1$s gelöscht",
"You restored %1$s" : "Sie haben %1$s wiederhergestellt",
"%2$s restored %1$s" : "%2$s wiederhergestellt %1$s",
- "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
- "%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
"File handling" : "Dateibehandlung",
"Maximum upload size" : "Maximale Upload-Größe",
@@ -110,6 +93,7 @@
"Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.",
"Currently scanning" : "Durchsuchen läuft",
"No favorites" : "Keine Favoriten",
- "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen"
+ "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
+ "Text file" : "Textdatei"
},"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 6c8e2cbff33..f60e842199f 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος",
"Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος",
"Unknown error" : "Άγνωστο σφάλμα",
- "Could not move %s - File with this name already exists" : "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα",
- "Could not move %s" : "Αδυναμία μετακίνησης του %s",
- "Permission denied" : "Η πρόσβαση απορρίφθηκε",
- "The target folder has been moved or deleted." : "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Το όνομα %s χρησιμοποιείτε ήδη στον φάκελο %s. Παρακαλώ επιλέξτε ένα άλλο όνομα.",
- "Error when creating the file" : "Σφάλμα κατά τη δημιουργία του αρχείου",
- "Error when creating the folder" : "Σφάλμα κατά τη δημιουργία του φακέλου",
"Unable to set upload directory." : "Αδυναμία ορισμού καταλόγου αποστολής.",
"Invalid Token" : "Μη έγκυρο Token",
"No file was uploaded. Unknown error" : "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" : "Αποτυχία εγγραφής στο δίσκο",
"Not enough storage available" : "Ο διαθέσιμος αποθηκευτικός χώρος δεν επαρκεί",
+ "The target folder has been moved or deleted." : "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί.",
"Upload failed. Could not find uploaded file" : "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.",
"Upload failed. Could not get file info." : "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.",
"Invalid directory." : "Μη έγκυρος φάκελος.",
@@ -46,14 +40,13 @@ OC.L10N.register(
"Unable to determine date" : "Αδυναμία προσδιορισμού ημερομηνίας ",
"This operation is forbidden" : "Αυτή η ενέργεια δεν επιτρέπεται",
"This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλώ ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
- "Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
- "Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου",
- "Error" : "Σφάλμα",
- "{new_name} already exists" : "το {new_name} υπάρχει ήδη",
- "Could not rename file" : "Αδυναμία μετονομασίας αρχείου",
- "Could not create file" : "Αδυναμία δημιουργίας αρχείου",
- "Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
- "Error deleting file." : "Σφάλμα κατά τη διαγραφή του αρχείου.",
+ "Could not move \"{file}\", target exists" : "Αδυναμία μετακίνησης του \"{file}\", υπάρχει ήδη αρχείο με αυτό το όνομα",
+ "Could not move \"{file}\"" : "Αδυναμία μετακίνησης του \"{file}\"",
+ "{newName} already exists" : "Το {newname} υπάρχει ήδη",
+ "Could not rename \"{fileName}\"" : "Αδυναμία μετονομασίας του \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Αδυναμία δημιουργίας του \"{file}\"",
+ "Could not create folder \"{dir}\"" : "Αδυναμία δημιουργίας του φακέλου \"{dir}\"",
+ "Error deleting file \"{fileName}\"." : "Αδυναμία διαγραφής του \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Δεν ταιριάζουν καταχωρήσεις σε αυτόν το φάκελο '{filter}'",
"Name" : "Όνομα",
"Size" : "Μέγεθος",
@@ -75,8 +68,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Προτιμώμενα",
"Favorite" : "Αγαπημένο",
- "Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο κειμένου.txt",
"Folder" : "Φάκελος",
"New folder" : "Νέος φάκελος",
"{newname} already exists" : "το {newname} υπάρχει ήδη",
@@ -99,8 +90,6 @@ OC.L10N.register(
"Changed by %2$s" : "Άλλαξε από το χρήστη %2$s",
"Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s",
"Restored by %2$s" : "Επαναφορά από το χρήστη %2$s",
- "%s could not be renamed as it has been deleted" : "Το %s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί",
- "%s could not be renamed" : "Αδυναμία μετονομασίας του %s",
"Upload (max. %s)" : "Διαμοιρασμός (max. %s)",
"File handling" : "Διαχείριση αρχείων",
"Maximum upload size" : "Μέγιστο μέγεθος αποστολής",
@@ -121,6 +110,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.",
"Currently scanning" : "Σάρωση σε εξέλιξη",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ "
+ "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ ",
+ "Text file" : "Αρχείο κειμένου",
+ "New text file.txt" : "Νέο αρχείο κειμένου.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index ee9e4ebde54..15cb56c87d1 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -2,13 +2,6 @@
"Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος",
"Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος",
"Unknown error" : "Άγνωστο σφάλμα",
- "Could not move %s - File with this name already exists" : "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα",
- "Could not move %s" : "Αδυναμία μετακίνησης του %s",
- "Permission denied" : "Η πρόσβαση απορρίφθηκε",
- "The target folder has been moved or deleted." : "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Το όνομα %s χρησιμοποιείτε ήδη στον φάκελο %s. Παρακαλώ επιλέξτε ένα άλλο όνομα.",
- "Error when creating the file" : "Σφάλμα κατά τη δημιουργία του αρχείου",
- "Error when creating the folder" : "Σφάλμα κατά τη δημιουργία του φακέλου",
"Unable to set upload directory." : "Αδυναμία ορισμού καταλόγου αποστολής.",
"Invalid Token" : "Μη έγκυρο Token",
"No file was uploaded. Unknown error" : "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" : "Αποτυχία εγγραφής στο δίσκο",
"Not enough storage available" : "Ο διαθέσιμος αποθηκευτικός χώρος δεν επαρκεί",
+ "The target folder has been moved or deleted." : "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί.",
"Upload failed. Could not find uploaded file" : "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.",
"Upload failed. Could not get file info." : "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.",
"Invalid directory." : "Μη έγκυρος φάκελος.",
@@ -44,14 +38,13 @@
"Unable to determine date" : "Αδυναμία προσδιορισμού ημερομηνίας ",
"This operation is forbidden" : "Αυτή η ενέργεια δεν επιτρέπεται",
"This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλώ ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
- "Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
- "Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου",
- "Error" : "Σφάλμα",
- "{new_name} already exists" : "το {new_name} υπάρχει ήδη",
- "Could not rename file" : "Αδυναμία μετονομασίας αρχείου",
- "Could not create file" : "Αδυναμία δημιουργίας αρχείου",
- "Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
- "Error deleting file." : "Σφάλμα κατά τη διαγραφή του αρχείου.",
+ "Could not move \"{file}\", target exists" : "Αδυναμία μετακίνησης του \"{file}\", υπάρχει ήδη αρχείο με αυτό το όνομα",
+ "Could not move \"{file}\"" : "Αδυναμία μετακίνησης του \"{file}\"",
+ "{newName} already exists" : "Το {newname} υπάρχει ήδη",
+ "Could not rename \"{fileName}\"" : "Αδυναμία μετονομασίας του \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Αδυναμία δημιουργίας του \"{file}\"",
+ "Could not create folder \"{dir}\"" : "Αδυναμία δημιουργίας του φακέλου \"{dir}\"",
+ "Error deleting file \"{fileName}\"." : "Αδυναμία διαγραφής του \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Δεν ταιριάζουν καταχωρήσεις σε αυτόν το φάκελο '{filter}'",
"Name" : "Όνομα",
"Size" : "Μέγεθος",
@@ -73,8 +66,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Προτιμώμενα",
"Favorite" : "Αγαπημένο",
- "Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο κειμένου.txt",
"Folder" : "Φάκελος",
"New folder" : "Νέος φάκελος",
"{newname} already exists" : "το {newname} υπάρχει ήδη",
@@ -97,8 +88,6 @@
"Changed by %2$s" : "Άλλαξε από το χρήστη %2$s",
"Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s",
"Restored by %2$s" : "Επαναφορά από το χρήστη %2$s",
- "%s could not be renamed as it has been deleted" : "Το %s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί",
- "%s could not be renamed" : "Αδυναμία μετονομασίας του %s",
"Upload (max. %s)" : "Διαμοιρασμός (max. %s)",
"File handling" : "Διαχείριση αρχείων",
"Maximum upload size" : "Μέγιστο μέγεθος αποστολής",
@@ -119,6 +108,8 @@
"Files are being scanned, please wait." : "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.",
"Currently scanning" : "Σάρωση σε εξέλιξη",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ "
+ "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ ",
+ "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/en_GB.js b/apps/files/l10n/en_GB.js
index cf37ac56dc0..a190c45e846 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Storage not available",
"Storage invalid" : "Storage invalid",
"Unknown error" : "Unknown error",
- "Could not move %s - File with this name already exists" : "Could not move %s - File with this name already exists",
- "Could not move %s" : "Could not move %s",
- "Permission denied" : "Permission denied",
- "The target folder has been moved or deleted." : "The target folder has been moved or deleted.",
- "The name %s is already used in the folder %s. Please choose a different name." : "The name %s is already used in the folder %s. Please choose a different name.",
- "Error when creating the file" : "Error when creating the file",
- "Error when creating the folder" : "Error when creating the folder",
"Unable to set upload directory." : "Unable to set upload directory.",
"Invalid Token" : "Invalid Token",
"No file was uploaded. Unknown error" : "No file was uploaded. Unknown error",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Missing a temporary folder",
"Failed to write to disk" : "Failed to write to disk",
"Not enough storage available" : "Not enough storage available",
+ "The target folder has been moved or deleted." : "The target folder has been moved or deleted.",
"Upload failed. Could not find uploaded file" : "Upload failed. Could not find uploaded file",
"Upload failed. Could not get file info." : "Upload failed. Could not get file info.",
"Invalid directory." : "Invalid directory.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Select",
"Pending" : "Pending",
"Unable to determine date" : "Unable to determine date",
- "Error moving file." : "Error moving file.",
- "Error moving file" : "Error moving file",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} already exists",
- "Could not rename file" : "Could not rename file",
- "Could not create file" : "Could not create file",
- "Could not create folder" : "Could not create folder",
- "Error deleting file." : "Error deleting file.",
"No entries in this folder match '{filter}'" : "No entries in this folder match '{filter}'",
"Name" : "Name",
"Size" : "Size",
@@ -69,7 +55,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"Favorited" : "Favourited",
"Favorite" : "Favourite",
- "Text file" : "Text file",
"Folder" : "Folder",
"New folder" : "New folder",
"Upload" : "Upload",
@@ -88,8 +73,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
- "%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted",
- "%s could not be renamed" : "%s could not be renamed",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "File handling",
"Maximum upload size" : "Maximum upload size",
@@ -108,6 +91,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Files are being scanned, please wait.",
"Currently scanning" : "Currently scanning",
"No favorites" : "No favourites",
- "Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here"
+ "Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
+ "Text file" : "Text file"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 764198384a6..ca8a60ec73b 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -2,13 +2,6 @@
"Storage not available" : "Storage not available",
"Storage invalid" : "Storage invalid",
"Unknown error" : "Unknown error",
- "Could not move %s - File with this name already exists" : "Could not move %s - File with this name already exists",
- "Could not move %s" : "Could not move %s",
- "Permission denied" : "Permission denied",
- "The target folder has been moved or deleted." : "The target folder has been moved or deleted.",
- "The name %s is already used in the folder %s. Please choose a different name." : "The name %s is already used in the folder %s. Please choose a different name.",
- "Error when creating the file" : "Error when creating the file",
- "Error when creating the folder" : "Error when creating the folder",
"Unable to set upload directory." : "Unable to set upload directory.",
"Invalid Token" : "Invalid Token",
"No file was uploaded. Unknown error" : "No file was uploaded. Unknown error",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Missing a temporary folder",
"Failed to write to disk" : "Failed to write to disk",
"Not enough storage available" : "Not enough storage available",
+ "The target folder has been moved or deleted." : "The target folder has been moved or deleted.",
"Upload failed. Could not find uploaded file" : "Upload failed. Could not find uploaded file",
"Upload failed. Could not get file info." : "Upload failed. Could not get file info.",
"Invalid directory." : "Invalid directory.",
@@ -42,14 +36,6 @@
"Select" : "Select",
"Pending" : "Pending",
"Unable to determine date" : "Unable to determine date",
- "Error moving file." : "Error moving file.",
- "Error moving file" : "Error moving file",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} already exists",
- "Could not rename file" : "Could not rename file",
- "Could not create file" : "Could not create file",
- "Could not create folder" : "Could not create folder",
- "Error deleting file." : "Error deleting file.",
"No entries in this folder match '{filter}'" : "No entries in this folder match '{filter}'",
"Name" : "Name",
"Size" : "Size",
@@ -67,7 +53,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"Favorited" : "Favourited",
"Favorite" : "Favourite",
- "Text file" : "Text file",
"Folder" : "Folder",
"New folder" : "New folder",
"Upload" : "Upload",
@@ -86,8 +71,6 @@
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
- "%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted",
- "%s could not be renamed" : "%s could not be renamed",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "File handling",
"Maximum upload size" : "Maximum upload size",
@@ -106,6 +89,7 @@
"Files are being scanned, please wait." : "Files are being scanned, please wait.",
"Currently scanning" : "Currently scanning",
"No favorites" : "No favourites",
- "Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here"
+ "Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
+ "Text file" : "Text file"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index eb8ffd7728b..dbdd0422911 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -2,11 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "Nekonata eraro",
- "Could not move %s - File with this name already exists" : "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas",
- "Could not move %s" : "Ne eblis movi %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon.",
- "Error when creating the file" : "Eraris la kreo de la dosiero",
- "Error when creating the folder" : "Eraris la kreo de la dosierujo",
"Unable to set upload directory." : "Ne povis agordiĝi la alŝuta dosierujo.",
"No file was uploaded. Unknown error" : "Neniu dosiero alŝutiĝis. Nekonata eraro.",
"There is no error, the file uploaded with success" : "Ne estas eraro, la dosiero alŝutiĝis sukcese.",
@@ -36,12 +31,6 @@ OC.L10N.register(
"Details" : "Detaloj",
"Select" : "Elekti",
"Pending" : "Traktotaj",
- "Error moving file" : "Eraris movo de dosiero",
- "Error" : "Eraro",
- "{new_name} already exists" : "{new_name} jam ekzistas",
- "Could not rename file" : "Ne povis alinomiĝi dosiero",
- "Could not create file" : "Ne povis kreiĝi dosiero",
- "Could not create folder" : "Ne povis kreiĝi dosierujo",
"Name" : "Nomo",
"Size" : "Grando",
"Modified" : "Modifita",
@@ -55,7 +44,6 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
"Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)",
"Favorite" : "Favorato",
- "Text file" : "Tekstodosiero",
"Folder" : "Dosierujo",
"New folder" : "Nova dosierujo",
"Upload" : "Alŝuti",
@@ -66,8 +54,6 @@ OC.L10N.register(
"%2$s changed %1$s" : "%2$s ŝanĝis %1$s",
"You deleted %1$s" : "Vi forigis %1$s",
"%2$s deleted %1$s" : "%2$s forigis %1$s",
- "%s could not be renamed as it has been deleted" : "%s ne povis alinomiĝi ĉar ĝi forigitis",
- "%s could not be renamed" : "%s ne povis alinomiĝi",
"Upload (max. %s)" : "Alŝuti (maks. %s)",
"File handling" : "Dosieradministro",
"Maximum upload size" : "Maksimuma alŝutogrando",
@@ -81,6 +67,7 @@ OC.L10N.register(
"Select all" : "Elekti ĉion",
"Upload too large" : "Alŝuto tro larĝa",
"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.",
- "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi."
+ "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi.",
+ "Text file" : "Tekstodosiero"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 5f899df1e0c..b858ccece4d 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -1,10 +1,5 @@
{ "translations": {
"Unknown error" : "Nekonata eraro",
- "Could not move %s - File with this name already exists" : "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas",
- "Could not move %s" : "Ne eblis movi %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon.",
- "Error when creating the file" : "Eraris la kreo de la dosiero",
- "Error when creating the folder" : "Eraris la kreo de la dosierujo",
"Unable to set upload directory." : "Ne povis agordiĝi la alŝuta dosierujo.",
"No file was uploaded. Unknown error" : "Neniu dosiero alŝutiĝis. Nekonata eraro.",
"There is no error, the file uploaded with success" : "Ne estas eraro, la dosiero alŝutiĝis sukcese.",
@@ -34,12 +29,6 @@
"Details" : "Detaloj",
"Select" : "Elekti",
"Pending" : "Traktotaj",
- "Error moving file" : "Eraris movo de dosiero",
- "Error" : "Eraro",
- "{new_name} already exists" : "{new_name} jam ekzistas",
- "Could not rename file" : "Ne povis alinomiĝi dosiero",
- "Could not create file" : "Ne povis kreiĝi dosiero",
- "Could not create folder" : "Ne povis kreiĝi dosierujo",
"Name" : "Nomo",
"Size" : "Grando",
"Modified" : "Modifita",
@@ -53,7 +42,6 @@
"Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
"Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)",
"Favorite" : "Favorato",
- "Text file" : "Tekstodosiero",
"Folder" : "Dosierujo",
"New folder" : "Nova dosierujo",
"Upload" : "Alŝuti",
@@ -64,8 +52,6 @@
"%2$s changed %1$s" : "%2$s ŝanĝis %1$s",
"You deleted %1$s" : "Vi forigis %1$s",
"%2$s deleted %1$s" : "%2$s forigis %1$s",
- "%s could not be renamed as it has been deleted" : "%s ne povis alinomiĝi ĉar ĝi forigitis",
- "%s could not be renamed" : "%s ne povis alinomiĝi",
"Upload (max. %s)" : "Alŝuti (maks. %s)",
"File handling" : "Dosieradministro",
"Maximum upload size" : "Maksimuma alŝutogrando",
@@ -79,6 +65,7 @@
"Select all" : "Elekti ĉion",
"Upload too large" : "Alŝuto tro larĝa",
"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.",
- "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi."
+ "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi.",
+ "Text file" : "Tekstodosiero"
},"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 5226fb4774e..dd8759c3f0c 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Almacenamiento no disponible",
"Storage invalid" : "Almacenamiento inválido",
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.",
- "Could not move %s" : "No se pudo mover %s",
- "Permission denied" : "Permiso denegado",
- "The target folder has been moved or deleted." : "La carpeta de destino fue movida o eliminada.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear la carpeta.",
"Unable to set upload directory." : "Incapaz de crear directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta la carpeta temporal",
"Failed to write to disk" : "Falló al escribir al disco",
"Not enough storage available" : "No hay suficiente espacio disponible",
+ "The target folder has been moved or deleted." : "La carpeta de destino fue movida o eliminada.",
"Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido",
"Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.",
"Invalid directory." : "Directorio inválido.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "No se pudo 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 verifique los registros o contáctese con el administrador",
- "Error moving file." : "Error al mover el archivo.",
- "Error moving file" : "Error moviendo archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear la carpeta",
- "Error deleting file." : "Error al borrar el archivo",
"No entries in this folder match '{filter}'" : "No hay resultados que coincidan con '{filter}'",
"Name" : "Nombre",
"Size" : "Tamaño",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Agregado a Favoritos",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo archivo de texto.txt",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"{newname} already exists" : "{new_name} ya existe",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Cambiado por %2$s",
"Deleted by %2$s" : "Eliminado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado",
- "%s could not be renamed" : "%s no pudo ser renombrado",
"Upload (max. %s)" : "Subida (máx. %s)",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Los archivos se están escaneando, por favor espere.",
"Currently scanning" : "Escaneando en este momento",
"No favorites" : "No hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos"
+ "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos",
+ "Text file" : "Archivo de texto",
+ "New text file.txt" : "Nuevo archivo de texto.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index cb255204571..de4005ae515 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -2,13 +2,6 @@
"Storage not available" : "Almacenamiento no disponible",
"Storage invalid" : "Almacenamiento inválido",
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.",
- "Could not move %s" : "No se pudo mover %s",
- "Permission denied" : "Permiso denegado",
- "The target folder has been moved or deleted." : "La carpeta de destino fue movida o eliminada.",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear la carpeta.",
"Unable to set upload directory." : "Incapaz de crear directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Falta la carpeta temporal",
"Failed to write to disk" : "Falló al escribir al disco",
"Not enough storage available" : "No hay suficiente espacio disponible",
+ "The target folder has been moved or deleted." : "La carpeta de destino fue movida o eliminada.",
"Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido",
"Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.",
"Invalid directory." : "Directorio inválido.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "No se pudo 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 verifique los registros o contáctese con el administrador",
- "Error moving file." : "Error al mover el archivo.",
- "Error moving file" : "Error moviendo archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear la carpeta",
- "Error deleting file." : "Error al borrar el archivo",
"No entries in this folder match '{filter}'" : "No hay resultados que coincidan con '{filter}'",
"Name" : "Nombre",
"Size" : "Tamaño",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Agregado a Favoritos",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo archivo de texto.txt",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"{newname} already exists" : "{new_name} ya existe",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Cambiado por %2$s",
"Deleted by %2$s" : "Eliminado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado",
- "%s could not be renamed" : "%s no pudo ser renombrado",
"Upload (max. %s)" : "Subida (máx. %s)",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Los archivos se están escaneando, por favor espere.",
"Currently scanning" : "Escaneando en este momento",
"No favorites" : "No hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos"
+ "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos",
+ "Text file" : "Archivo de texto",
+ "New text file.txt" : "Nuevo archivo de texto.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
index 4f74717175d..6c6b0d49853 100644
--- a/apps/files/l10n/es_AR.js
+++ b/apps/files/l10n/es_AR.js
@@ -1,12 +1,9 @@
OC.L10N.register(
"files",
{
+ "Storage not available" : "Almacenamiento no disponible",
+ "Storage invalid" : "Almacenamiento invalido",
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Un archivo con este nombre ya existe",
- "Could not move %s" : "No se pudo mover %s ",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s está en uso en el directorio %s. Por favor elija un otro nombre.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear el directorio",
"Unable to set upload directory." : "No fue posible crear el directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "El archivo no fue subido. Error desconocido",
@@ -18,15 +15,19 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta un directorio temporal",
"Failed to write to disk" : "Error al escribir en el disco",
"Not enough storage available" : "No hay suficiente almacenamiento",
+ "The target folder has been moved or deleted." : "La carpeta destino fue movida o borrada.",
"Upload failed. Could not find uploaded file" : "Falló la carga. No se pudo encontrar el archivo subido.",
"Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "All files" : "Todos los archivos",
"Favorites" : "Favoritos",
"Home" : "Particular",
"Close" : "Cerrar",
"Upload cancelled." : "La subida fue cancelada",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.",
+ "Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
"Could not get result from server." : "No se pudo obtener resultados del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.",
"Actions" : "Acciones",
@@ -36,13 +37,7 @@ OC.L10N.register(
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendientes",
- "Error moving file" : "Error moviendo el archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear el directorio",
- "Error deleting file." : "Error al borrar el archivo.",
+ "Unable to determine date" : "No fue posible determinar la fecha",
"Name" : "Nombre",
"Size" : "Tamaño",
"Modified" : "Modificado",
@@ -56,7 +51,6 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando",
"Your storage is almost full ({usedSpacePercent}%)" : "El almacenamiento está casi lleno ({usedSpacePercent}%)",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
"Folder" : "Carpeta",
"New folder" : "Nueva Carpeta",
"Upload" : "Subir",
@@ -69,7 +63,6 @@ OC.L10N.register(
"%2$s changed %1$s" : "%2$s modificó %1$s",
"You deleted %1$s" : "Eliminaste %1$s",
"%2$s deleted %1$s" : "%2$s eliminó %1$s",
- "%s could not be renamed" : "No se pudo renombrar %s",
"File handling" : "Tratamiento de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
@@ -80,6 +73,7 @@ OC.L10N.register(
"Cancel upload" : "Cancelar subida",
"Upload too large" : "El tamaño del archivo que querés subir es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que intentás subir sobrepasan el tamaño máximo ",
- "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá."
+ "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá.",
+ "Text file" : "Archivo de texto"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
index 363fedc787e..ad492b4048a 100644
--- a/apps/files/l10n/es_AR.json
+++ b/apps/files/l10n/es_AR.json
@@ -1,10 +1,7 @@
{ "translations": {
+ "Storage not available" : "Almacenamiento no disponible",
+ "Storage invalid" : "Almacenamiento invalido",
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Un archivo con este nombre ya existe",
- "Could not move %s" : "No se pudo mover %s ",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s está en uso en el directorio %s. Por favor elija un otro nombre.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear el directorio",
"Unable to set upload directory." : "No fue posible crear el directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "El archivo no fue subido. Error desconocido",
@@ -16,15 +13,19 @@
"Missing a temporary folder" : "Falta un directorio temporal",
"Failed to write to disk" : "Error al escribir en el disco",
"Not enough storage available" : "No hay suficiente almacenamiento",
+ "The target folder has been moved or deleted." : "La carpeta destino fue movida o borrada.",
"Upload failed. Could not find uploaded file" : "Falló la carga. No se pudo encontrar el archivo subido.",
"Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "All files" : "Todos los archivos",
"Favorites" : "Favoritos",
"Home" : "Particular",
"Close" : "Cerrar",
"Upload cancelled." : "La subida fue cancelada",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.",
+ "Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
"Could not get result from server." : "No se pudo obtener resultados del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.",
"Actions" : "Acciones",
@@ -34,13 +35,7 @@
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendientes",
- "Error moving file" : "Error moviendo el archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear el directorio",
- "Error deleting file." : "Error al borrar el archivo.",
+ "Unable to determine date" : "No fue posible determinar la fecha",
"Name" : "Nombre",
"Size" : "Tamaño",
"Modified" : "Modificado",
@@ -54,7 +49,6 @@
"Your storage is full, files can not be updated or synced anymore!" : "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando",
"Your storage is almost full ({usedSpacePercent}%)" : "El almacenamiento está casi lleno ({usedSpacePercent}%)",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
"Folder" : "Carpeta",
"New folder" : "Nueva Carpeta",
"Upload" : "Subir",
@@ -67,7 +61,6 @@
"%2$s changed %1$s" : "%2$s modificó %1$s",
"You deleted %1$s" : "Eliminaste %1$s",
"%2$s deleted %1$s" : "%2$s eliminó %1$s",
- "%s could not be renamed" : "No se pudo renombrar %s",
"File handling" : "Tratamiento de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
@@ -78,6 +71,7 @@
"Cancel upload" : "Cancelar subida",
"Upload too large" : "El tamaño del archivo que querés subir es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que intentás subir sobrepasan el tamaño máximo ",
- "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá."
+ "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá.",
+ "Text file" : "Archivo de texto"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js
index f7443bc4944..7b67ca39ac5 100644
--- a/apps/files/l10n/es_CL.js
+++ b/apps/files/l10n/es_CL.js
@@ -6,7 +6,6 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renombrar",
"Details" : "detalles",
- "Error" : "Error",
"New folder" : "Nuevo directorio",
"Upload" : "Subir",
"A new file or folder has been <strong>created</strong>" : "Un nuevo archivo o carpeta ha sido <strong>creado</strong>",
diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json
index 29c0ef45fcf..7c42b2a4097 100644
--- a/apps/files/l10n/es_CL.json
+++ b/apps/files/l10n/es_CL.json
@@ -4,7 +4,6 @@
"Download" : "Descargar",
"Rename" : "Renombrar",
"Details" : "detalles",
- "Error" : "Error",
"New folder" : "Nuevo directorio",
"Upload" : "Subir",
"A new file or folder has been <strong>created</strong>" : "Un nuevo archivo o carpeta ha sido <strong>creado</strong>",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index dadcf54d15c..0e4dbddeda9 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -2,11 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.",
- "Could not move %s" : "No se pudo mover %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear la carpeta.",
"Unable to set upload directory." : "Incapaz de crear directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido",
@@ -35,13 +30,6 @@ OC.L10N.register(
"Delete" : "Eliminar",
"Details" : "Detalles",
"Pending" : "Pendiente",
- "Error moving file" : "Error moviendo archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear la carpeta",
- "Error deleting file." : "Error borrando el archivo.",
"Name" : "Nombre",
"Size" : "Tamaño",
"Modified" : "Modificado",
@@ -55,14 +43,12 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
"Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"Upload" : "Subir archivo",
"You created %1$s" : "Has creado %1$s",
"You changed %1$s" : "Has cambiado %1$s",
"You deleted %1$s" : "Has eliminado %1$s",
- "%s could not be renamed" : "%s no pudo ser renombrado",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
@@ -73,6 +59,7 @@ OC.L10N.register(
"Cancel upload" : "Cancelar subida",
"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ás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
- "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere."
+ "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere.",
+ "Text file" : "Archivo de texto"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 61156506368..cb903ddd9dc 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -1,10 +1,5 @@
{ "translations": {
"Unknown error" : "Error desconocido",
- "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.",
- "Could not move %s" : "No se pudo mover %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
- "Error when creating the file" : "Error al crear el archivo",
- "Error when creating the folder" : "Error al crear la carpeta.",
"Unable to set upload directory." : "Incapaz de crear directorio de subida.",
"Invalid Token" : "Token Inválido",
"No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido",
@@ -33,13 +28,6 @@
"Delete" : "Eliminar",
"Details" : "Detalles",
"Pending" : "Pendiente",
- "Error moving file" : "Error moviendo archivo",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} ya existe",
- "Could not rename file" : "No se pudo renombrar el archivo",
- "Could not create file" : "No se pudo crear el archivo",
- "Could not create folder" : "No se pudo crear la carpeta",
- "Error deleting file." : "Error borrando el archivo.",
"Name" : "Nombre",
"Size" : "Tamaño",
"Modified" : "Modificado",
@@ -53,14 +41,12 @@
"Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
"Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
"Favorite" : "Favorito",
- "Text file" : "Archivo de texto",
"Folder" : "Carpeta",
"New folder" : "Nueva carpeta",
"Upload" : "Subir archivo",
"You created %1$s" : "Has creado %1$s",
"You changed %1$s" : "Has cambiado %1$s",
"You deleted %1$s" : "Has eliminado %1$s",
- "%s could not be renamed" : "%s no pudo ser renombrado",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
@@ -71,6 +57,7 @@
"Cancel upload" : "Cancelar subida",
"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ás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
- "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere."
+ "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere.",
+ "Text file" : "Archivo de texto"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index e57e6e39c81..f136bd300b1 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Andmehoidla pole saadaval",
"Storage invalid" : "Vigane andmehoidla",
"Unknown error" : "Tundmatu viga",
- "Could not move %s - File with this name already exists" : "Ei saa liigutada faili %s - samanimeline fail on juba olemas",
- "Could not move %s" : "%s liigutamine ebaõnnestus",
- "Permission denied" : "Ligipääs keelatud",
- "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.",
- "Error when creating the file" : "Viga faili loomisel",
- "Error when creating the folder" : "Viga kataloogi loomisel",
"Unable to set upload directory." : "Üleslaadimiste kausta määramine ebaõnnestus.",
"Invalid Token" : "Vigane kontrollkood",
"No file was uploaded. Unknown error" : "Ühtegi faili ei laetud üles. Tundmatu viga",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Ajutiste failide kaust puudub",
"Failed to write to disk" : "Kettale kirjutamine ebaõnnestus",
"Not enough storage available" : "Saadaval pole piisavalt ruumi",
+ "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.",
"Upload failed. Could not find uploaded file" : "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud",
"Upload failed. Could not get file info." : "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus.",
"Invalid directory." : "Vigane kaust.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Kuupäeva tuvastamine 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",
- "Error moving file." : "Viga faili liigutamisel.",
- "Error moving file" : "Viga faili eemaldamisel",
- "Error" : "Viga",
- "{new_name} already exists" : "{new_name} on juba olemas",
- "Could not rename file" : "Ei suuda faili ümber nimetada",
- "Could not create file" : "Ei suuda luua faili",
- "Could not create folder" : "Ei suuda luua kataloogi",
- "Error deleting file." : "Viga faili kustutamisel.",
"No entries in this folder match '{filter}'" : "Ükski sissekanne ei kattu filtriga '{filter}'",
"Name" : "Nimi",
"Size" : "Suurus",
@@ -74,7 +60,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
"Favorited" : "Lemmikud",
"Favorite" : "Lemmik",
- "Text file" : "Tekstifail",
"Folder" : "Kaust",
"New folder" : "Uus kaust",
"Upload" : "Lae üles",
@@ -92,8 +77,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s kustutas %1$s",
"You restored %1$s" : "Sa taastasid %1$s",
"%2$s restored %1$s" : "%2$s taastas %1$s",
- "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud",
- "%s could not be renamed" : "%s ümbernimetamine ebaõnnestus",
"Upload (max. %s)" : "Üleslaadimine (max. %s)",
"File handling" : "Failide käsitlemine",
"Maximum upload size" : "Maksimaalne üleslaadimise suurus",
@@ -112,6 +95,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Faile skannitakse, palun oota.",
"Currently scanning" : "Praegu skännimisel",
"No favorites" : "Lemmikuid pole",
- "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks"
+ "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
+ "Text file" : "Tekstifail"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 02dc68f96d9..6e1961770c9 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -2,13 +2,6 @@
"Storage not available" : "Andmehoidla pole saadaval",
"Storage invalid" : "Vigane andmehoidla",
"Unknown error" : "Tundmatu viga",
- "Could not move %s - File with this name already exists" : "Ei saa liigutada faili %s - samanimeline fail on juba olemas",
- "Could not move %s" : "%s liigutamine ebaõnnestus",
- "Permission denied" : "Ligipääs keelatud",
- "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.",
- "Error when creating the file" : "Viga faili loomisel",
- "Error when creating the folder" : "Viga kataloogi loomisel",
"Unable to set upload directory." : "Üleslaadimiste kausta määramine ebaõnnestus.",
"Invalid Token" : "Vigane kontrollkood",
"No file was uploaded. Unknown error" : "Ühtegi faili ei laetud üles. Tundmatu viga",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Ajutiste failide kaust puudub",
"Failed to write to disk" : "Kettale kirjutamine ebaõnnestus",
"Not enough storage available" : "Saadaval pole piisavalt ruumi",
+ "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.",
"Upload failed. Could not find uploaded file" : "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud",
"Upload failed. Could not get file info." : "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus.",
"Invalid directory." : "Vigane kaust.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Kuupäeva tuvastamine 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",
- "Error moving file." : "Viga faili liigutamisel.",
- "Error moving file" : "Viga faili eemaldamisel",
- "Error" : "Viga",
- "{new_name} already exists" : "{new_name} on juba olemas",
- "Could not rename file" : "Ei suuda faili ümber nimetada",
- "Could not create file" : "Ei suuda luua faili",
- "Could not create folder" : "Ei suuda luua kataloogi",
- "Error deleting file." : "Viga faili kustutamisel.",
"No entries in this folder match '{filter}'" : "Ükski sissekanne ei kattu filtriga '{filter}'",
"Name" : "Nimi",
"Size" : "Suurus",
@@ -72,7 +58,6 @@
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
"Favorited" : "Lemmikud",
"Favorite" : "Lemmik",
- "Text file" : "Tekstifail",
"Folder" : "Kaust",
"New folder" : "Uus kaust",
"Upload" : "Lae üles",
@@ -90,8 +75,6 @@
"%2$s deleted %1$s" : "%2$s kustutas %1$s",
"You restored %1$s" : "Sa taastasid %1$s",
"%2$s restored %1$s" : "%2$s taastas %1$s",
- "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud",
- "%s could not be renamed" : "%s ümbernimetamine ebaõnnestus",
"Upload (max. %s)" : "Üleslaadimine (max. %s)",
"File handling" : "Failide käsitlemine",
"Maximum upload size" : "Maksimaalne üleslaadimise suurus",
@@ -110,6 +93,7 @@
"Files are being scanned, please wait." : "Faile skannitakse, palun oota.",
"Currently scanning" : "Praegu skännimisel",
"No favorites" : "Lemmikuid pole",
- "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks"
+ "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
+ "Text file" : "Tekstifail"
},"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 0758119cad4..9add1516c46 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Biltegia ez dago eskuragarri",
"Storage invalid" : "Biltegi bliogabea",
"Unknown error" : "Errore ezezaguna",
- "Could not move %s - File with this name already exists" : "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da",
- "Could not move %s" : "Ezin dira fitxategiak mugitu %s",
- "Permission denied" : "Baimena Ukatua",
- "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.",
- "Error when creating the file" : "Errorea fitxategia sortzerakoan",
- "Error when creating the folder" : "Errorea karpeta sortzerakoan",
"Unable to set upload directory." : "Ezin da igoera direktorioa ezarri.",
"Invalid Token" : "Lekuko baliogabea",
"No file was uploaded. Unknown error" : "Ez da fitxategirik igo. Errore ezezaguna",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Aldi bateko karpeta falta da",
"Failed to write to disk" : "Errore bat izan da diskoan idazterakoan",
"Not enough storage available" : "Ez dago behar aina leku erabilgarri,",
+ "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.",
"Upload failed. Could not find uploaded file" : "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu",
"Upload failed. Could not get file info." : "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu.",
"Invalid directory." : "Baliogabeko karpeta.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "hautatu",
"Pending" : "Zain",
"Unable to determine date" : "Ezin izan da data zehaztu",
- "Error moving file." : "Errorea fitxategia mugitzean.",
- "Error moving file" : "Errorea fitxategia mugitzean",
- "Error" : "Errorea",
- "{new_name} already exists" : "{new_name} dagoeneko existitzen da",
- "Could not rename file" : "Ezin izan da fitxategia berrizendatu",
- "Could not create file" : "Ezin izan da fitxategia sortu",
- "Could not create folder" : "Ezin izan da karpeta sortu",
- "Error deleting file." : "Errorea fitxategia ezabatzerakoan.",
"No entries in this folder match '{filter}'" : "Karpeta honetan ez dago sarrerarik '{filter}' iragazkiarekin bat egiten dutenak",
"Name" : "Izena",
"Size" : "Tamaina",
@@ -68,7 +54,6 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})",
"Favorited" : "Gogokoa",
"Favorite" : "Gogokoa",
- "Text file" : "Testu fitxategia",
"Folder" : "Karpeta",
"New folder" : "Karpeta berria",
"Upload" : "Igo",
@@ -85,8 +70,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$sk ezabatuta %1$s",
"You restored %1$s" : "Zuk %1$s berrezarri duzu",
"%2$s restored %1$s" : "%2$sk %1$s berrezarri du",
- "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta",
- "%s could not be renamed" : "%s ezin da berrizendatu",
"Upload (max. %s)" : "Igo (max. %s)",
"File handling" : "Fitxategien kudeaketa",
"Maximum upload size" : "Igo daitekeen gehienezko tamaina",
@@ -104,6 +87,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Fitxategiak eskaneatzen ari da, itxoin mezedez.",
"Currently scanning" : "Eskaneatzen une honetan",
"No favorites" : "Gogokorik ez",
- "Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpeta hemen agertuko dira"
+ "Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpeta hemen agertuko dira",
+ "Text file" : "Testu fitxategia"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 9e225f2290a..96943f33a9a 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -2,13 +2,6 @@
"Storage not available" : "Biltegia ez dago eskuragarri",
"Storage invalid" : "Biltegi bliogabea",
"Unknown error" : "Errore ezezaguna",
- "Could not move %s - File with this name already exists" : "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da",
- "Could not move %s" : "Ezin dira fitxategiak mugitu %s",
- "Permission denied" : "Baimena Ukatua",
- "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.",
- "Error when creating the file" : "Errorea fitxategia sortzerakoan",
- "Error when creating the folder" : "Errorea karpeta sortzerakoan",
"Unable to set upload directory." : "Ezin da igoera direktorioa ezarri.",
"Invalid Token" : "Lekuko baliogabea",
"No file was uploaded. Unknown error" : "Ez da fitxategirik igo. Errore ezezaguna",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Aldi bateko karpeta falta da",
"Failed to write to disk" : "Errore bat izan da diskoan idazterakoan",
"Not enough storage available" : "Ez dago behar aina leku erabilgarri,",
+ "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.",
"Upload failed. Could not find uploaded file" : "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu",
"Upload failed. Could not get file info." : "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu.",
"Invalid directory." : "Baliogabeko karpeta.",
@@ -42,14 +36,6 @@
"Select" : "hautatu",
"Pending" : "Zain",
"Unable to determine date" : "Ezin izan da data zehaztu",
- "Error moving file." : "Errorea fitxategia mugitzean.",
- "Error moving file" : "Errorea fitxategia mugitzean",
- "Error" : "Errorea",
- "{new_name} already exists" : "{new_name} dagoeneko existitzen da",
- "Could not rename file" : "Ezin izan da fitxategia berrizendatu",
- "Could not create file" : "Ezin izan da fitxategia sortu",
- "Could not create folder" : "Ezin izan da karpeta sortu",
- "Error deleting file." : "Errorea fitxategia ezabatzerakoan.",
"No entries in this folder match '{filter}'" : "Karpeta honetan ez dago sarrerarik '{filter}' iragazkiarekin bat egiten dutenak",
"Name" : "Izena",
"Size" : "Tamaina",
@@ -66,7 +52,6 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})",
"Favorited" : "Gogokoa",
"Favorite" : "Gogokoa",
- "Text file" : "Testu fitxategia",
"Folder" : "Karpeta",
"New folder" : "Karpeta berria",
"Upload" : "Igo",
@@ -83,8 +68,6 @@
"%2$s deleted %1$s" : "%2$sk ezabatuta %1$s",
"You restored %1$s" : "Zuk %1$s berrezarri duzu",
"%2$s restored %1$s" : "%2$sk %1$s berrezarri du",
- "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta",
- "%s could not be renamed" : "%s ezin da berrizendatu",
"Upload (max. %s)" : "Igo (max. %s)",
"File handling" : "Fitxategien kudeaketa",
"Maximum upload size" : "Igo daitekeen gehienezko tamaina",
@@ -102,6 +85,7 @@
"Files are being scanned, please wait." : "Fitxategiak eskaneatzen ari da, itxoin mezedez.",
"Currently scanning" : "Eskaneatzen une honetan",
"No favorites" : "Gogokorik ez",
- "Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpeta hemen agertuko dira"
+ "Files and folders you mark as favorite will show up here" : "Gogokotzat markatutako fitxategi eta karpeta hemen agertuko dira",
+ "Text file" : "Testu fitxategia"
},"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 306992d15af..46cbbc376ab 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "فضای ذخیره سازی موجود نیست",
"Storage invalid" : "فضای ذخیره‌سازی نامعتبر",
"Unknown error" : "خطای نامشخص",
- "Could not move %s - File with this name already exists" : "%s نمی توان جابجا کرد - در حال حاضر پرونده با این نام وجود دارد. ",
- "Could not move %s" : "%s نمی تواند حرکت کند ",
- "Permission denied" : "رد دسترسی",
- "The target folder has been moved or deleted." : "پوشه مقصد انتقال یافته یا حذف شده است.",
- "The name %s is already used in the folder %s. Please choose a different name." : "نام %s هم‌اکنون در پوشه %s مورد استفاده قرار گرفته شده است. لطفا نام دیگری انتخاب کنید.",
- "Error when creating the file" : "خطا در حین ایجاد فایل",
- "Error when creating the folder" : "خطا در حین ایجاد پوشه",
"Unable to set upload directory." : "قادر به تنظیم پوشه آپلود نمی باشد.",
"Invalid Token" : "رمز نامعتبر",
"No file was uploaded. Unknown error" : "هیچ فایلی آپلود نشد.خطای ناشناس",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "یک پوشه موقت گم شده",
"Failed to write to disk" : "نوشتن بر روی دیسک سخت ناموفق بود",
"Not enough storage available" : "فضای کافی در دسترس نیست",
+ "The target folder has been moved or deleted." : "پوشه مقصد انتقال یافته یا حذف شده است.",
"Upload failed. Could not find uploaded file" : "خطا در آپلود. امکان یافتن فایل‌های آپلود شده وجود ندارد",
"Upload failed. Could not get file info." : "خطای آپلود. امکان دریافت جزئیات فایل وجود ندارد.",
"Invalid directory." : "فهرست راهنما نامعتبر می باشد.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "امکان تعیین تاریخ وجود ندارد",
"This operation is forbidden" : "این عملیات غیرمجاز است",
"This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
- "Error moving file." : "خطا در انتقال فایل.",
- "Error moving file" : "خطا در انتقال فایل",
- "Error" : "خطا",
- "{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
- "Could not rename file" : "امکان تغییر نام وجود ندارد",
- "Could not create file" : "امکان ایجاد فایل وجود ندارد",
- "Could not create folder" : "امکان ایجاد پوشه وجود ندارد",
- "Error deleting file." : "خطا در حذف فایل.",
"No entries in this folder match '{filter}'" : "هیچ ورودی‌ای با '{filter}' تطبیق ندارد",
"Name" : "نام",
"Size" : "اندازه",
@@ -75,7 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n بایت"],
"Favorited" : "برگزیده شده",
"Favorite" : "برگزیده",
- "Text file" : "فایل متنی",
"Folder" : "پوشه",
"New folder" : "پوشه جدید",
"{newname} already exists" : "{newname} هم‌اکنون وجود دارد",
@@ -97,8 +82,6 @@ OC.L10N.register(
"Changed by %2$s" : "تغییریافته توسط %2$s",
"Deleted by %2$s" : "حذف شده توسط %2$s",
"Restored by %2$s" : "بازگردانی شده توسط %2$s",
- "%s could not be renamed as it has been deleted" : "امکان تغییر نام %s با توجه به حذف شدن آن وجود ندارد",
- "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.",
"Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"File handling" : "اداره پرونده ها",
"Maximum upload size" : "حداکثر اندازه بارگزاری",
@@ -117,6 +100,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "پرونده ها در حال بازرسی هستند لطفا صبر کنید",
"Currently scanning" : "در حال اسکن",
"No favorites" : "هیچ برگزیده",
- "Files and folders you mark as favorite will show up here" : "فایل‌ها و پوشه‌های انتخاب شده به عنوان برگزیده توسط شما، در اینجا نمایش داده می‌شود"
+ "Files and folders you mark as favorite will show up here" : "فایل‌ها و پوشه‌های انتخاب شده به عنوان برگزیده توسط شما، در اینجا نمایش داده می‌شود",
+ "Text file" : "فایل متنی"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index ddf67b42593..b9e32d69e37 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -2,13 +2,6 @@
"Storage not available" : "فضای ذخیره سازی موجود نیست",
"Storage invalid" : "فضای ذخیره‌سازی نامعتبر",
"Unknown error" : "خطای نامشخص",
- "Could not move %s - File with this name already exists" : "%s نمی توان جابجا کرد - در حال حاضر پرونده با این نام وجود دارد. ",
- "Could not move %s" : "%s نمی تواند حرکت کند ",
- "Permission denied" : "رد دسترسی",
- "The target folder has been moved or deleted." : "پوشه مقصد انتقال یافته یا حذف شده است.",
- "The name %s is already used in the folder %s. Please choose a different name." : "نام %s هم‌اکنون در پوشه %s مورد استفاده قرار گرفته شده است. لطفا نام دیگری انتخاب کنید.",
- "Error when creating the file" : "خطا در حین ایجاد فایل",
- "Error when creating the folder" : "خطا در حین ایجاد پوشه",
"Unable to set upload directory." : "قادر به تنظیم پوشه آپلود نمی باشد.",
"Invalid Token" : "رمز نامعتبر",
"No file was uploaded. Unknown error" : "هیچ فایلی آپلود نشد.خطای ناشناس",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "یک پوشه موقت گم شده",
"Failed to write to disk" : "نوشتن بر روی دیسک سخت ناموفق بود",
"Not enough storage available" : "فضای کافی در دسترس نیست",
+ "The target folder has been moved or deleted." : "پوشه مقصد انتقال یافته یا حذف شده است.",
"Upload failed. Could not find uploaded file" : "خطا در آپلود. امکان یافتن فایل‌های آپلود شده وجود ندارد",
"Upload failed. Could not get file info." : "خطای آپلود. امکان دریافت جزئیات فایل وجود ندارد.",
"Invalid directory." : "فهرست راهنما نامعتبر می باشد.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "امکان تعیین تاریخ وجود ندارد",
"This operation is forbidden" : "این عملیات غیرمجاز است",
"This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
- "Error moving file." : "خطا در انتقال فایل.",
- "Error moving file" : "خطا در انتقال فایل",
- "Error" : "خطا",
- "{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
- "Could not rename file" : "امکان تغییر نام وجود ندارد",
- "Could not create file" : "امکان ایجاد فایل وجود ندارد",
- "Could not create folder" : "امکان ایجاد پوشه وجود ندارد",
- "Error deleting file." : "خطا در حذف فایل.",
"No entries in this folder match '{filter}'" : "هیچ ورودی‌ای با '{filter}' تطبیق ندارد",
"Name" : "نام",
"Size" : "اندازه",
@@ -73,7 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n بایت"],
"Favorited" : "برگزیده شده",
"Favorite" : "برگزیده",
- "Text file" : "فایل متنی",
"Folder" : "پوشه",
"New folder" : "پوشه جدید",
"{newname} already exists" : "{newname} هم‌اکنون وجود دارد",
@@ -95,8 +80,6 @@
"Changed by %2$s" : "تغییریافته توسط %2$s",
"Deleted by %2$s" : "حذف شده توسط %2$s",
"Restored by %2$s" : "بازگردانی شده توسط %2$s",
- "%s could not be renamed as it has been deleted" : "امکان تغییر نام %s با توجه به حذف شدن آن وجود ندارد",
- "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.",
"Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"File handling" : "اداره پرونده ها",
"Maximum upload size" : "حداکثر اندازه بارگزاری",
@@ -115,6 +98,7 @@
"Files are being scanned, please wait." : "پرونده ها در حال بازرسی هستند لطفا صبر کنید",
"Currently scanning" : "در حال اسکن",
"No favorites" : "هیچ برگزیده",
- "Files and folders you mark as favorite will show up here" : "فایل‌ها و پوشه‌های انتخاب شده به عنوان برگزیده توسط شما، در اینجا نمایش داده می‌شود"
+ "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/fi_FI.js b/apps/files/l10n/fi_FI.js
index 79f3321577f..8bebb81fd35 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Tallennustila ei ole käytettävissä",
"Storage invalid" : "Virheellinen tallennustila",
"Unknown error" : "Tuntematon virhe",
- "Could not move %s - File with this name already exists" : "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa",
- "Could not move %s" : "Kohteen %s siirto ei onnistunut",
- "Permission denied" : "Ei käyttöoikeutta",
- "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.",
- "Error when creating the file" : "Virhe tiedostoa luotaessa",
- "Error when creating the folder" : "Virhe kansiota luotaessa",
"Unable to set upload directory." : "Lähetyskansion asettaminen epäonnistui.",
"Invalid Token" : "Virheellinen token",
"No file was uploaded. Unknown error" : "Tiedostoa ei lähetetty. Tuntematon virhe",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Tilapäiskansio puuttuu",
"Failed to write to disk" : "Levylle kirjoitus epäonnistui",
"Not enough storage available" : "Tallennustilaa ei ole riittävästi käytettävissä",
+ "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.",
"Upload failed. Could not find uploaded file" : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.",
"Upload failed. Could not get file info." : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.",
"Invalid directory." : "Virheellinen kansio.",
@@ -46,14 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"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.",
- "Error moving file." : "Virhe tiedostoa siirrettäessä.",
- "Error moving file" : "Virhe tiedostoa siirrettäessä",
- "Error" : "Virhe",
- "{new_name} already exists" : "{new_name} on jo olemassa",
- "Could not rename file" : "Tiedoston nimeäminen uudelleen epäonnistui",
- "Could not create file" : "Tiedoston luominen epäonnistui",
- "Could not create folder" : "Kansion luominen epäonnistui",
- "Error deleting file." : "Virhe tiedostoa poistaessa.",
+ "Could not move \"{file}\", target exists" : "Tiedoston \"{file}\" siirtäminen ei onnistunut, kohde on olemassa",
+ "Could not move \"{file}\"" : "Tiedoston \"{file}\" siirtäminen ei onnistunut",
+ "{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}\"" : "Kansiota \"{dir}\" ei voitu luoda",
+ "Could not create folder \"{dir}\" because it already exists" : "Kansiota \"{dir}\" ei voitu luoda, koska se on jo olemassa",
+ "Error deleting file \"{fileName}\"." : "Virhe poistaessa tiedostoa \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Mikään tässä kansiossa ei vastaa suodatusta '{filter}'",
"Name" : "Nimi",
"Size" : "Koko",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
"Favorited" : "Lisätty suosikkeihin",
"Favorite" : "Suosikki",
- "Text file" : "Tekstitiedosto",
- "New text file.txt" : "Uusi tekstitiedosto.txt",
"Folder" : "Kansio",
"New folder" : "Uusi kansio",
"{newname} already exists" : "{newname} on jo olemassa",
@@ -99,14 +94,13 @@ OC.L10N.register(
"Changed by %2$s" : "Muuttanut %2$s",
"Deleted by %2$s" : "Poistanut %2$s",
"Restored by %2$s" : "Palauttanut %2$s",
- "%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu",
- "%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui",
"Upload (max. %s)" : "Lähetys (enintään %s)",
"File handling" : "Tiedostonhallinta",
"Maximum upload size" : "Lähetettävän tiedoston suurin sallittu koko",
"max. possible: " : "suurin mahdollinen:",
"Save" : "Tallenna",
"With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM:tä käyttäen muutoksien voimaantulossa saattaa kestää 5 minuuttia.",
+ "Missing permissions to edit from here." : "Käyttöoikeudet eivät riitä tätä kautta muokkaamiseen.",
"Settings" : "Asetukset",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Käytä tätä osoitetta <a href=\"%s\" target=\"_blank\">käyttääksesi tiedostojasi WebDAVin kautta</a>",
@@ -120,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Tiedostoja tarkistetaan, odota hetki.",
"Currently scanning" : "Tutkitaan parhaillaan",
"No favorites" : "Ei suosikkeja",
- "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä"
+ "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä",
+ "Text file" : "Tekstitiedosto",
+ "New text file.txt" : "Uusi tekstitiedosto.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index e46327c83fa..64b0a886b73 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -2,13 +2,6 @@
"Storage not available" : "Tallennustila ei ole käytettävissä",
"Storage invalid" : "Virheellinen tallennustila",
"Unknown error" : "Tuntematon virhe",
- "Could not move %s - File with this name already exists" : "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa",
- "Could not move %s" : "Kohteen %s siirto ei onnistunut",
- "Permission denied" : "Ei käyttöoikeutta",
- "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.",
- "Error when creating the file" : "Virhe tiedostoa luotaessa",
- "Error when creating the folder" : "Virhe kansiota luotaessa",
"Unable to set upload directory." : "Lähetyskansion asettaminen epäonnistui.",
"Invalid Token" : "Virheellinen token",
"No file was uploaded. Unknown error" : "Tiedostoa ei lähetetty. Tuntematon virhe",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Tilapäiskansio puuttuu",
"Failed to write to disk" : "Levylle kirjoitus epäonnistui",
"Not enough storage available" : "Tallennustilaa ei ole riittävästi käytettävissä",
+ "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.",
"Upload failed. Could not find uploaded file" : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.",
"Upload failed. Could not get file info." : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.",
"Invalid directory." : "Virheellinen kansio.",
@@ -44,14 +38,17 @@
"Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"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.",
- "Error moving file." : "Virhe tiedostoa siirrettäessä.",
- "Error moving file" : "Virhe tiedostoa siirrettäessä",
- "Error" : "Virhe",
- "{new_name} already exists" : "{new_name} on jo olemassa",
- "Could not rename file" : "Tiedoston nimeäminen uudelleen epäonnistui",
- "Could not create file" : "Tiedoston luominen epäonnistui",
- "Could not create folder" : "Kansion luominen epäonnistui",
- "Error deleting file." : "Virhe tiedostoa poistaessa.",
+ "Could not move \"{file}\", target exists" : "Tiedoston \"{file}\" siirtäminen ei onnistunut, kohde on olemassa",
+ "Could not move \"{file}\"" : "Tiedoston \"{file}\" siirtäminen ei onnistunut",
+ "{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}\"" : "Kansiota \"{dir}\" ei voitu luoda",
+ "Could not create folder \"{dir}\" because it already exists" : "Kansiota \"{dir}\" ei voitu luoda, koska se on jo olemassa",
+ "Error deleting file \"{fileName}\"." : "Virhe poistaessa tiedostoa \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Mikään tässä kansiossa ei vastaa suodatusta '{filter}'",
"Name" : "Nimi",
"Size" : "Koko",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
"Favorited" : "Lisätty suosikkeihin",
"Favorite" : "Suosikki",
- "Text file" : "Tekstitiedosto",
- "New text file.txt" : "Uusi tekstitiedosto.txt",
"Folder" : "Kansio",
"New folder" : "Uusi kansio",
"{newname} already exists" : "{newname} on jo olemassa",
@@ -97,14 +92,13 @@
"Changed by %2$s" : "Muuttanut %2$s",
"Deleted by %2$s" : "Poistanut %2$s",
"Restored by %2$s" : "Palauttanut %2$s",
- "%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu",
- "%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui",
"Upload (max. %s)" : "Lähetys (enintään %s)",
"File handling" : "Tiedostonhallinta",
"Maximum upload size" : "Lähetettävän tiedoston suurin sallittu koko",
"max. possible: " : "suurin mahdollinen:",
"Save" : "Tallenna",
"With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM:tä käyttäen muutoksien voimaantulossa saattaa kestää 5 minuuttia.",
+ "Missing permissions to edit from here." : "Käyttöoikeudet eivät riitä tätä kautta muokkaamiseen.",
"Settings" : "Asetukset",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Käytä tätä osoitetta <a href=\"%s\" target=\"_blank\">käyttääksesi tiedostojasi WebDAVin kautta</a>",
@@ -118,6 +112,8 @@
"Files are being scanned, please wait." : "Tiedostoja tarkistetaan, odota hetki.",
"Currently scanning" : "Tutkitaan parhaillaan",
"No favorites" : "Ei suosikkeja",
- "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä"
+ "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä",
+ "Text file" : "Tekstitiedosto",
+ "New text file.txt" : "Uusi tekstitiedosto.txt"
},"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 e068b3c45ba..6af58e93094 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Support de stockage non disponible",
"Storage invalid" : "Support de stockage non valable",
"Unknown error" : "Erreur Inconnue ",
- "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier portant ce nom existe déjà",
- "Could not move %s" : "Impossible de déplacer %s",
- "Permission denied" : "Permission refusée",
- "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.",
- "Error when creating the file" : "Erreur pendant la création du fichier",
- "Error when creating the folder" : "Erreur pendant la création du dossier",
"Unable to set upload directory." : "Impossible de définir le dossier de destination.",
"Invalid Token" : "Jeton non valide",
"No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write to disk" : "Erreur d'écriture sur le disque",
"Not enough storage available" : "Trop peu d'espace de stockage disponible",
+ "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
"Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.",
"Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.",
"Invalid directory." : "Dossier non valide.",
@@ -46,14 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "Impossible de déterminer la date",
"This operation is forbidden" : "Cette opération est interdite",
"This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire n'est pas disponible. Consultez les logs ou contactez votre administrateur",
- "Error moving file." : "Erreur lors du déplacement du fichier.",
- "Error moving file" : "Erreur lors du déplacement du fichier",
- "Error" : "Erreur",
- "{new_name} already exists" : "{new_name} existe déjà",
- "Could not rename file" : "Impossible de renommer le fichier",
- "Could not create file" : "Impossible de créer le fichier",
- "Could not create folder" : "Impossible de créer le dossier",
- "Error deleting file." : "Erreur pendant la suppression du fichier.",
+ "Could not move \"{file}\", target exists" : "Impossible de déplacer \"{file}\", la cible existe",
+ "Could not move \"{file}\"" : "Impossible de déplacer \"{file}\"",
+ "{newName} already exists" : "{newName} existe déjà",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Impossible de renommer \"{file}\", 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}\"" : "Impossible de créer le dossier \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Impossible de créer le dossier \"{dir}\" car il existe déjà",
+ "Error deleting file \"{fileName}\"." : "Erreur pendant la suppression du fichier \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Aucune entrée de ce dossier ne correspond à '{filter}'",
"Name" : "Nom",
"Size" : "Taille",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marqué comme favori",
"Favorite" : "Favoris",
- "Text file" : "Fichier texte",
- "New text file.txt" : "Nouveau fichier texte.txt",
"Folder" : "Dossier",
"New folder" : "Nouveau dossier",
"{newname} already exists" : "{newname} existe déjà",
@@ -99,8 +94,6 @@ OC.L10N.register(
"Changed by %2$s" : "Modifié par %2$s",
"Deleted by %2$s" : "Supprimé par %2$s",
"Restored by %2$s" : "Restauré par %2$s",
- "%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
- "%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
"File handling" : "Gestion de fichiers",
"Maximum upload size" : "Taille max. d'envoi",
@@ -121,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Les fichiers sont en cours d'analyse, veuillez patienter.",
"Currently scanning" : "Analyse en cours",
"No favorites" : "Aucun favori",
- "Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici"
+ "Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici",
+ "Text file" : "Fichier texte",
+ "New text file.txt" : "Nouveau fichier texte.txt"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index a297b3525d1..ba25b77e3df 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -2,13 +2,6 @@
"Storage not available" : "Support de stockage non disponible",
"Storage invalid" : "Support de stockage non valable",
"Unknown error" : "Erreur Inconnue ",
- "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier portant ce nom existe déjà",
- "Could not move %s" : "Impossible de déplacer %s",
- "Permission denied" : "Permission refusée",
- "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.",
- "Error when creating the file" : "Erreur pendant la création du fichier",
- "Error when creating the folder" : "Erreur pendant la création du dossier",
"Unable to set upload directory." : "Impossible de définir le dossier de destination.",
"Invalid Token" : "Jeton non valide",
"No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write to disk" : "Erreur d'écriture sur le disque",
"Not enough storage available" : "Trop peu d'espace de stockage disponible",
+ "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
"Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.",
"Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.",
"Invalid directory." : "Dossier non valide.",
@@ -44,14 +38,17 @@
"Unable to determine date" : "Impossible de déterminer la date",
"This operation is forbidden" : "Cette opération est interdite",
"This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire n'est pas disponible. Consultez les logs ou contactez votre administrateur",
- "Error moving file." : "Erreur lors du déplacement du fichier.",
- "Error moving file" : "Erreur lors du déplacement du fichier",
- "Error" : "Erreur",
- "{new_name} already exists" : "{new_name} existe déjà",
- "Could not rename file" : "Impossible de renommer le fichier",
- "Could not create file" : "Impossible de créer le fichier",
- "Could not create folder" : "Impossible de créer le dossier",
- "Error deleting file." : "Erreur pendant la suppression du fichier.",
+ "Could not move \"{file}\", target exists" : "Impossible de déplacer \"{file}\", la cible existe",
+ "Could not move \"{file}\"" : "Impossible de déplacer \"{file}\"",
+ "{newName} already exists" : "{newName} existe déjà",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Impossible de renommer \"{file}\", 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}\"" : "Impossible de créer le dossier \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Impossible de créer le dossier \"{dir}\" car il existe déjà",
+ "Error deleting file \"{fileName}\"." : "Erreur pendant la suppression du fichier \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Aucune entrée de ce dossier ne correspond à '{filter}'",
"Name" : "Nom",
"Size" : "Taille",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marqué comme favori",
"Favorite" : "Favoris",
- "Text file" : "Fichier texte",
- "New text file.txt" : "Nouveau fichier texte.txt",
"Folder" : "Dossier",
"New folder" : "Nouveau dossier",
"{newname} already exists" : "{newname} existe déjà",
@@ -97,8 +92,6 @@
"Changed by %2$s" : "Modifié par %2$s",
"Deleted by %2$s" : "Supprimé par %2$s",
"Restored by %2$s" : "Restauré par %2$s",
- "%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
- "%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
"File handling" : "Gestion de fichiers",
"Maximum upload size" : "Taille max. d'envoi",
@@ -119,6 +112,8 @@
"Files are being scanned, please wait." : "Les fichiers sont en cours d'analyse, veuillez patienter.",
"Currently scanning" : "Analyse en cours",
"No favorites" : "Aucun favori",
- "Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici"
+ "Files and folders you mark as favorite will show up here" : "Les fichiers et dossiers ajoutés à vos favoris apparaîtront ici",
+ "Text file" : "Fichier texte",
+ "New text file.txt" : "Nouveau fichier texte.txt"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 2713148bbb9..3b71b1669e7 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Almacenamento non dispoñíbel",
"Storage invalid" : "Almacenamento incorrecto",
"Unknown error" : "Produciuse un erro descoñecido",
- "Could not move %s - File with this name already exists" : "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.",
- "Could not move %s" : "Non foi posíbel mover %s",
- "Permission denied" : "Permiso denegado",
- "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Xa existe o nome %s no cartafol %s. Escolla outro nome.",
- "Error when creating the file" : "Produciuse un erro ao crear o ficheiro",
- "Error when creating the folder" : "Produciuse un erro ao crear o cartafol",
"Unable to set upload directory." : "Non é posíbel configurar o directorio de envíos.",
"Invalid Token" : "Marca incorrecta",
"No file was uploaded. Unknown error" : "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta o cartafol temporal",
"Failed to write to disk" : "Produciuse un erro ao escribir no disco",
"Not enough storage available" : "Non hai espazo de almacenamento abondo",
+ "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.",
"Upload failed. Could not find uploaded file" : "O envío fracasou. Non foi posíbel atopar o ficheiro enviado",
"Upload failed. Could not get file info." : "O envío fracasou. Non foi posíbel obter información do ficheiro.",
"Invalid directory." : "O directorio é incorrecto.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Non é posíbel determinar a data",
"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, comprobe os rexistros ou póñase en contacto co administrador",
- "Error moving file." : "Produciuse un erro ao mover o ficheiro.",
- "Error moving file" : "Produciuse un erro ao mover o ficheiro",
- "Error" : "Erro",
- "{new_name} already exists" : "Xa existe un {new_name}",
- "Could not rename file" : "Non foi posíbel renomear o ficheiro",
- "Could not create file" : "Non foi posíbel crear o ficheiro",
- "Could not create folder" : "Non foi posíbel crear o cartafol",
- "Error deleting file." : "Produciuse un erro ao eliminar o ficheiro.",
"No entries in this folder match '{filter}'" : "Non hai entradas neste cartafol coincidentes con «{filter}»",
"Name" : "Nome",
"Size" : "Tamaño",
@@ -75,7 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Marcado como favorito",
"Favorite" : "Favorito",
- "Text file" : "Ficheiro de texto",
"Folder" : "Cartafol",
"New folder" : "Novo cartafol",
"Upload" : "Enviar",
@@ -94,8 +79,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s eliminado %1$s",
"You restored %1$s" : "Vostede restaurou %1$s",
"%2$s restored %1$s" : "%2$s restaurou %1$s",
- "%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado",
- "%s could not be renamed" : "%s non pode cambiar de nome",
"Upload (max. %s)" : "Envío (máx. %s)",
"File handling" : "Manexo de ficheiro",
"Maximum upload size" : "Tamaño máximo do envío",
@@ -114,6 +97,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Estanse analizando os ficheiros. Agarde.",
"Currently scanning" : "Análise actual",
"No favorites" : "Non hai favoritos",
- "Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí"
+ "Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí",
+ "Text file" : "Ficheiro de texto"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index f04420d11a7..73e6e523e44 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -2,13 +2,6 @@
"Storage not available" : "Almacenamento non dispoñíbel",
"Storage invalid" : "Almacenamento incorrecto",
"Unknown error" : "Produciuse un erro descoñecido",
- "Could not move %s - File with this name already exists" : "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.",
- "Could not move %s" : "Non foi posíbel mover %s",
- "Permission denied" : "Permiso denegado",
- "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Xa existe o nome %s no cartafol %s. Escolla outro nome.",
- "Error when creating the file" : "Produciuse un erro ao crear o ficheiro",
- "Error when creating the folder" : "Produciuse un erro ao crear o cartafol",
"Unable to set upload directory." : "Non é posíbel configurar o directorio de envíos.",
"Invalid Token" : "Marca incorrecta",
"No file was uploaded. Unknown error" : "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Falta o cartafol temporal",
"Failed to write to disk" : "Produciuse un erro ao escribir no disco",
"Not enough storage available" : "Non hai espazo de almacenamento abondo",
+ "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.",
"Upload failed. Could not find uploaded file" : "O envío fracasou. Non foi posíbel atopar o ficheiro enviado",
"Upload failed. Could not get file info." : "O envío fracasou. Non foi posíbel obter información do ficheiro.",
"Invalid directory." : "O directorio é incorrecto.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Non é posíbel determinar a data",
"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, comprobe os rexistros ou póñase en contacto co administrador",
- "Error moving file." : "Produciuse un erro ao mover o ficheiro.",
- "Error moving file" : "Produciuse un erro ao mover o ficheiro",
- "Error" : "Erro",
- "{new_name} already exists" : "Xa existe un {new_name}",
- "Could not rename file" : "Non foi posíbel renomear o ficheiro",
- "Could not create file" : "Non foi posíbel crear o ficheiro",
- "Could not create folder" : "Non foi posíbel crear o cartafol",
- "Error deleting file." : "Produciuse un erro ao eliminar o ficheiro.",
"No entries in this folder match '{filter}'" : "Non hai entradas neste cartafol coincidentes con «{filter}»",
"Name" : "Nome",
"Size" : "Tamaño",
@@ -73,7 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Marcado como favorito",
"Favorite" : "Favorito",
- "Text file" : "Ficheiro de texto",
"Folder" : "Cartafol",
"New folder" : "Novo cartafol",
"Upload" : "Enviar",
@@ -92,8 +77,6 @@
"%2$s deleted %1$s" : "%2$s eliminado %1$s",
"You restored %1$s" : "Vostede restaurou %1$s",
"%2$s restored %1$s" : "%2$s restaurou %1$s",
- "%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado",
- "%s could not be renamed" : "%s non pode cambiar de nome",
"Upload (max. %s)" : "Envío (máx. %s)",
"File handling" : "Manexo de ficheiro",
"Maximum upload size" : "Tamaño máximo do envío",
@@ -112,6 +95,7 @@
"Files are being scanned, please wait." : "Estanse analizando os ficheiros. Agarde.",
"Currently scanning" : "Análise actual",
"No favorites" : "Non hai favoritos",
- "Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí"
+ "Files and folders you mark as favorite will show up here" : "Os ficheiros e cartafoles que marque como favoritos amosaranse aquí",
+ "Text file" : "Ficheiro de texto"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 36fba4bd7f0..389fe8e4d2c 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -2,8 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "שגיאה בלתי ידועה",
- "Could not move %s - File with this name already exists" : "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים",
- "Could not move %s" : "לא ניתן להעביר את %s",
"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: " : "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:",
@@ -29,8 +27,6 @@ OC.L10N.register(
"Details" : "פרטים",
"Select" : "בחר",
"Pending" : "ממתין",
- "Error" : "שגיאה",
- "{new_name} already exists" : "{new_name} כבר קיים",
"Name" : "שם",
"Size" : "גודל",
"Modified" : "זמן שינוי",
@@ -38,7 +34,6 @@ OC.L10N.register(
"File name cannot be empty." : "שם קובץ אינו יכול להיות ריק",
"Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)",
"Favorite" : "מועדף",
- "Text file" : "קובץ טקסט",
"Folder" : "תיקייה",
"New folder" : "תיקייה חדשה",
"Upload" : "העלאה",
@@ -62,6 +57,7 @@ OC.L10N.register(
"Cancel upload" : "ביטול ההעלאה",
"Upload too large" : "העלאה גדולה מידי",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.",
- "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין."
+ "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין.",
+ "Text file" : "קובץ טקסט"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index 61fe8ca29b7..c4866aea3c0 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -1,7 +1,5 @@
{ "translations": {
"Unknown error" : "שגיאה בלתי ידועה",
- "Could not move %s - File with this name already exists" : "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים",
- "Could not move %s" : "לא ניתן להעביר את %s",
"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: " : "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:",
@@ -27,8 +25,6 @@
"Details" : "פרטים",
"Select" : "בחר",
"Pending" : "ממתין",
- "Error" : "שגיאה",
- "{new_name} already exists" : "{new_name} כבר קיים",
"Name" : "שם",
"Size" : "גודל",
"Modified" : "זמן שינוי",
@@ -36,7 +32,6 @@
"File name cannot be empty." : "שם קובץ אינו יכול להיות ריק",
"Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)",
"Favorite" : "מועדף",
- "Text file" : "קובץ טקסט",
"Folder" : "תיקייה",
"New folder" : "תיקייה חדשה",
"Upload" : "העלאה",
@@ -60,6 +55,7 @@
"Cancel upload" : "ביטול ההעלאה",
"Upload too large" : "העלאה גדולה מידי",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.",
- "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין."
+ "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין.",
+ "Text file" : "קובץ טקסט"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/hi.js b/apps/files/l10n/hi.js
index 3b6da840e0d..2de5b85e169 100644
--- a/apps/files/l10n/hi.js
+++ b/apps/files/l10n/hi.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Files" : "फाइलें ",
"Close" : "बंद करें ",
"Details" : "विवरण ",
- "Error" : "त्रुटि",
"New folder" : "नया फ़ोल्डर",
"Upload" : "अपलोड ",
"Save" : "सहेजें",
diff --git a/apps/files/l10n/hi.json b/apps/files/l10n/hi.json
index a5a2ba34b01..3bccaa2d9f0 100644
--- a/apps/files/l10n/hi.json
+++ b/apps/files/l10n/hi.json
@@ -2,7 +2,6 @@
"Files" : "फाइलें ",
"Close" : "बंद करें ",
"Details" : "विवरण ",
- "Error" : "त्रुटि",
"New folder" : "नया फ़ोल्डर",
"Upload" : "अपलोड ",
"Save" : "सहेजें",
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
index a15e52dcd49..6f27879f125 100644
--- a/apps/files/l10n/hr.js
+++ b/apps/files/l10n/hr.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Pohrana nedostupna",
"Storage invalid" : "Pohrana neispravna",
"Unknown error" : "Nepoznata pogreška",
- "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji",
- "Could not move %s" : "Nemoguće premjestiti %s",
- "Permission denied" : "Nemate dozvolu",
- "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.",
- "Error when creating the file" : "Pogreška pri kreiranju datoteke",
- "Error when creating the folder" : "Pogreška pri kreiranju mape",
"Unable to set upload directory." : "Postavka učitavanja direktorija nije moguća",
"Invalid Token" : "Neispravan token",
"No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Pogreška nepoznata.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Nedostaje privremena mapa",
"Failed to write to disk" : "Zapisivanje na disk nije uspjelo",
"Not enough storage available" : "Prostor za pohranu nedostatan",
+ "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.",
"Upload failed. Could not find uploaded file" : "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku",
"Upload failed. Could not get file info." : "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci",
"Invalid directory." : "Neispravan direktorij",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Selektiraj",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemogucnost odredjivanja datuma",
- "Error moving file." : "Pogrešno premještanje datoteke",
- "Error moving file" : "Pogrešno premještanje datoteke",
- "Error" : "Pogreška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Datoteku nije moguće preimenovati",
- "Could not create file" : "Datoteku nije moguće kreirati",
- "Could not create folder" : "Mapu nije moguće kreirati",
- "Error deleting file." : "Pogrešno brisanje datoteke",
"No entries in this folder match '{filter}'" : "Nema zapisa u ovom folderu match '{filter}'",
"Name" : "Naziv",
"Size" : "Veličina",
@@ -68,7 +54,6 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
"Favorited" : "Favoritovan",
"Favorite" : "Favorit",
- "Text file" : "Tekstualna datoteka",
"Folder" : "Mapa",
"New folder" : "Nova mapa",
"Upload" : "Učitavanje",
@@ -85,8 +70,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s je izbrisao %1$s",
"You restored %1$s" : "Vraćeno %1$s",
"%2$s restored %1$s" : "%2$s vraćeno %1$s",
- "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
- "%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Prijenos (max. %s)",
"File handling" : "Obrada datoteke",
"Maximum upload size" : "Maksimalna veličina učitanog sadržaja",
@@ -104,6 +87,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Datoteke se provjeravaju, molimo pričekajte.",
"Currently scanning" : "Provjera u tijeku",
"No favorites" : "Nema favorita",
- "Files and folders you mark as favorite will show up here" : "Fajlovi i folderi koje oznacite kao favorite ce se prikazati ovdje"
+ "Files and folders you mark as favorite will show up here" : "Fajlovi i folderi koje oznacite kao favorite ce se prikazati 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/hr.json b/apps/files/l10n/hr.json
index e0463579f4a..9377b55ef6f 100644
--- a/apps/files/l10n/hr.json
+++ b/apps/files/l10n/hr.json
@@ -2,13 +2,6 @@
"Storage not available" : "Pohrana nedostupna",
"Storage invalid" : "Pohrana neispravna",
"Unknown error" : "Nepoznata pogreška",
- "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji",
- "Could not move %s" : "Nemoguće premjestiti %s",
- "Permission denied" : "Nemate dozvolu",
- "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.",
- "Error when creating the file" : "Pogreška pri kreiranju datoteke",
- "Error when creating the folder" : "Pogreška pri kreiranju mape",
"Unable to set upload directory." : "Postavka učitavanja direktorija nije moguća",
"Invalid Token" : "Neispravan token",
"No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Pogreška nepoznata.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Nedostaje privremena mapa",
"Failed to write to disk" : "Zapisivanje na disk nije uspjelo",
"Not enough storage available" : "Prostor za pohranu nedostatan",
+ "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.",
"Upload failed. Could not find uploaded file" : "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku",
"Upload failed. Could not get file info." : "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci",
"Invalid directory." : "Neispravan direktorij",
@@ -42,14 +36,6 @@
"Select" : "Selektiraj",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemogucnost odredjivanja datuma",
- "Error moving file." : "Pogrešno premještanje datoteke",
- "Error moving file" : "Pogrešno premještanje datoteke",
- "Error" : "Pogreška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Datoteku nije moguće preimenovati",
- "Could not create file" : "Datoteku nije moguće kreirati",
- "Could not create folder" : "Mapu nije moguće kreirati",
- "Error deleting file." : "Pogrešno brisanje datoteke",
"No entries in this folder match '{filter}'" : "Nema zapisa u ovom folderu match '{filter}'",
"Name" : "Naziv",
"Size" : "Veličina",
@@ -66,7 +52,6 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
"Favorited" : "Favoritovan",
"Favorite" : "Favorit",
- "Text file" : "Tekstualna datoteka",
"Folder" : "Mapa",
"New folder" : "Nova mapa",
"Upload" : "Učitavanje",
@@ -83,8 +68,6 @@
"%2$s deleted %1$s" : "%2$s je izbrisao %1$s",
"You restored %1$s" : "Vraćeno %1$s",
"%2$s restored %1$s" : "%2$s vraćeno %1$s",
- "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
- "%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Prijenos (max. %s)",
"File handling" : "Obrada datoteke",
"Maximum upload size" : "Maksimalna veličina učitanog sadržaja",
@@ -102,6 +85,7 @@
"Files are being scanned, please wait." : "Datoteke se provjeravaju, molimo pričekajte.",
"Currently scanning" : "Provjera u tijeku",
"No favorites" : "Nema favorita",
- "Files and folders you mark as favorite will show up here" : "Fajlovi i folderi koje oznacite kao favorite ce se prikazati ovdje"
+ "Files and folders you mark as favorite will show up here" : "Fajlovi i folderi koje oznacite kao favorite ce se prikazati 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/hu_HU.js b/apps/files/l10n/hu_HU.js
index 3c12e4bd486..b6ed823de68 100644
--- a/apps/files/l10n/hu_HU.js
+++ b/apps/files/l10n/hu_HU.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "A tároló elérhetetlen.",
"Storage invalid" : "A tároló érvénytelen",
"Unknown error" : "Ismeretlen hiba",
- "Could not move %s - File with this name already exists" : "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel",
- "Could not move %s" : "Nem sikerült %s áthelyezése",
- "Permission denied" : "Engedély megtagadva ",
- "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.",
- "The name %s is already used in the folder %s. Please choose a different name." : "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!",
- "Error when creating the file" : "Hiba történt az állomány létrehozásakor",
- "Error when creating the folder" : "Hiba történt a mappa létrehozásakor",
"Unable to set upload directory." : "Nem található a mappa, ahova feltölteni szeretne.",
"Invalid Token" : "Hibás token",
"No file was uploaded. Unknown error" : "Nem történt feltöltés. Ismeretlen hiba",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Hiányzik egy ideiglenes mappa",
"Failed to write to disk" : "Nem sikerült a lemezre történő írás",
"Not enough storage available" : "Nincs elég szabad hely.",
+ "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.",
"Upload failed. Could not find uploaded file" : "A feltöltés nem sikerült. Nem található a feltöltendő állomány.",
"Upload failed. Could not get file info." : "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.",
"Invalid directory." : "Érvénytelen mappa.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Nem lehet meghatározni a dátumot",
"This operation is forbidden" : "Tiltott művelet",
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem elérhető, kérem nézze meg a naplófájlokat vagy keresse az adminisztrátort",
- "Error moving file." : "Hiba történt a fájl áthelyezése közben.",
- "Error moving file" : "Az állomány áthelyezése nem sikerült.",
- "Error" : "Hiba",
- "{new_name} already exists" : "{new_name} már létezik",
- "Could not rename file" : "Az állomány nem nevezhető át",
- "Could not create file" : "Az állomány nem hozható létre",
- "Could not create folder" : "A mappa nem hozható létre",
- "Error deleting file." : "Hiba a file törlése közben.",
"No entries in this folder match '{filter}'" : "Nincsenek egyező bejegyzések ebben a könyvtárban '{filter}'",
"Name" : "Név",
"Size" : "Méret",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bájt","%n bájt"],
"Favorited" : "Kedvenc",
"Favorite" : "Kedvenc",
- "Text file" : "Szövegfájl",
- "New text file.txt" : "Új szöveges fájl.txt",
"Folder" : "Mappa",
"New folder" : "Új mappa",
"{newname} already exists" : "{newname} már létezik",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Megváltoztatta: %2$s",
"Deleted by %2$s" : "Törölte: %2$s",
"Restored by %2$s" : "Visszaállította: %2$s",
- "%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett",
- "%s could not be renamed" : "%s átnevezése nem sikerült",
"Upload (max. %s)" : "Feltöltés (max.: %s)",
"File handling" : "Fájlkezelés",
"Maximum upload size" : "Maximális feltölthető fájlméret",
@@ -121,6 +103,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "A fájllista ellenőrzése zajlik, kis türelmet!",
"Currently scanning" : "Mappaellenőrzés: ",
"No favorites" : "Nincsenek kedvencek",
- "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg"
+ "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg",
+ "Text file" : "Szövegfájl",
+ "New text file.txt" : "Új szöveges fájl.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json
index b1bde8b7d51..8b8fbbd9b57 100644
--- a/apps/files/l10n/hu_HU.json
+++ b/apps/files/l10n/hu_HU.json
@@ -2,13 +2,6 @@
"Storage not available" : "A tároló elérhetetlen.",
"Storage invalid" : "A tároló érvénytelen",
"Unknown error" : "Ismeretlen hiba",
- "Could not move %s - File with this name already exists" : "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel",
- "Could not move %s" : "Nem sikerült %s áthelyezése",
- "Permission denied" : "Engedély megtagadva ",
- "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.",
- "The name %s is already used in the folder %s. Please choose a different name." : "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!",
- "Error when creating the file" : "Hiba történt az állomány létrehozásakor",
- "Error when creating the folder" : "Hiba történt a mappa létrehozásakor",
"Unable to set upload directory." : "Nem található a mappa, ahova feltölteni szeretne.",
"Invalid Token" : "Hibás token",
"No file was uploaded. Unknown error" : "Nem történt feltöltés. Ismeretlen hiba",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Hiányzik egy ideiglenes mappa",
"Failed to write to disk" : "Nem sikerült a lemezre történő írás",
"Not enough storage available" : "Nincs elég szabad hely.",
+ "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.",
"Upload failed. Could not find uploaded file" : "A feltöltés nem sikerült. Nem található a feltöltendő állomány.",
"Upload failed. Could not get file info." : "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.",
"Invalid directory." : "Érvénytelen mappa.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Nem lehet meghatározni a dátumot",
"This operation is forbidden" : "Tiltott művelet",
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem elérhető, kérem nézze meg a naplófájlokat vagy keresse az adminisztrátort",
- "Error moving file." : "Hiba történt a fájl áthelyezése közben.",
- "Error moving file" : "Az állomány áthelyezése nem sikerült.",
- "Error" : "Hiba",
- "{new_name} already exists" : "{new_name} már létezik",
- "Could not rename file" : "Az állomány nem nevezhető át",
- "Could not create file" : "Az állomány nem hozható létre",
- "Could not create folder" : "A mappa nem hozható létre",
- "Error deleting file." : "Hiba a file törlése közben.",
"No entries in this folder match '{filter}'" : "Nincsenek egyező bejegyzések ebben a könyvtárban '{filter}'",
"Name" : "Név",
"Size" : "Méret",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n bájt","%n bájt"],
"Favorited" : "Kedvenc",
"Favorite" : "Kedvenc",
- "Text file" : "Szövegfájl",
- "New text file.txt" : "Új szöveges fájl.txt",
"Folder" : "Mappa",
"New folder" : "Új mappa",
"{newname} already exists" : "{newname} már létezik",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Megváltoztatta: %2$s",
"Deleted by %2$s" : "Törölte: %2$s",
"Restored by %2$s" : "Visszaállította: %2$s",
- "%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett",
- "%s could not be renamed" : "%s átnevezése nem sikerült",
"Upload (max. %s)" : "Feltöltés (max.: %s)",
"File handling" : "Fájlkezelés",
"Maximum upload size" : "Maximális feltölthető fájlméret",
@@ -119,6 +101,8 @@
"Files are being scanned, please wait." : "A fájllista ellenőrzése zajlik, kis türelmet!",
"Currently scanning" : "Mappaellenőrzés: ",
"No favorites" : "Nincsenek kedvencek",
- "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg"
+ "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg",
+ "Text file" : "Szövegfájl",
+ "New text file.txt" : "Új szöveges fájl.txt"
},"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
index ae06fed4cd6..ecf99c1077f 100644
--- a/apps/files/l10n/hy.js
+++ b/apps/files/l10n/hy.js
@@ -8,10 +8,6 @@ OC.L10N.register(
"Rename" : "Վերանվանել",
"Delete" : "Ջնջել",
"Select" : "Նշել",
- "Error" : "Սխալ",
- "Could not rename file" : "Չկարողացա վերանվանել ֆայլը",
- "Could not create file" : "Չկարողացա ստեղծել ֆայլը",
- "Could not create folder" : "Չկարողացա ստեղծել պանակը",
"Name" : "Անուն",
"Size" : "Չափս",
"Modified" : "Փոփոխված",
diff --git a/apps/files/l10n/hy.json b/apps/files/l10n/hy.json
index 4874c47b3a4..8b23697b4a2 100644
--- a/apps/files/l10n/hy.json
+++ b/apps/files/l10n/hy.json
@@ -6,10 +6,6 @@
"Rename" : "Վերանվանել",
"Delete" : "Ջնջել",
"Select" : "Նշել",
- "Error" : "Սխալ",
- "Could not rename file" : "Չկարողացա վերանվանել ֆայլը",
- "Could not create file" : "Չկարողացա ստեղծել ֆայլը",
- "Could not create folder" : "Չկարողացա ստեղծել պանակը",
"Name" : "Անուն",
"Size" : "Չափս",
"Modified" : "Փոփոխված",
diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js
index f1db4466ea1..a1548e6b732 100644
--- a/apps/files/l10n/ia.js
+++ b/apps/files/l10n/ia.js
@@ -10,13 +10,11 @@ OC.L10N.register(
"Close" : "Clauder",
"Download" : "Discargar",
"Delete" : "Deler",
- "Error" : "Error",
"Name" : "Nomine",
"Size" : "Dimension",
"Modified" : "Modificate",
"New" : "Nove",
"File name cannot be empty." : "Le nomine de file non pote esser vacue.",
- "Text file" : "File de texto",
"Folder" : "Dossier",
"New folder" : "Nove dossier",
"Upload" : "Incargar",
@@ -37,6 +35,7 @@ OC.L10N.register(
"Maximum upload size" : "Dimension maxime de incargamento",
"Save" : "Salveguardar",
"Settings" : "Configurationes",
- "Upload too large" : "Incargamento troppo longe"
+ "Upload too large" : "Incargamento troppo longe",
+ "Text file" : "File de texto"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json
index e7990404b98..bbc3f4bc02a 100644
--- a/apps/files/l10n/ia.json
+++ b/apps/files/l10n/ia.json
@@ -8,13 +8,11 @@
"Close" : "Clauder",
"Download" : "Discargar",
"Delete" : "Deler",
- "Error" : "Error",
"Name" : "Nomine",
"Size" : "Dimension",
"Modified" : "Modificate",
"New" : "Nove",
"File name cannot be empty." : "Le nomine de file non pote esser vacue.",
- "Text file" : "File de texto",
"Folder" : "Dossier",
"New folder" : "Nove dossier",
"Upload" : "Incargar",
@@ -35,6 +33,7 @@
"Maximum upload size" : "Dimension maxime de incargamento",
"Save" : "Salveguardar",
"Settings" : "Configurationes",
- "Upload too large" : "Incargamento troppo longe"
+ "Upload too large" : "Incargamento troppo longe",
+ "Text file" : "File de texto"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index f1ad4fd1f69..93ec698cfa4 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Penyimpanan tidak tersedia",
"Storage invalid" : "Penyimpanan tidak sah",
"Unknown error" : "Kesalahan tidak diketahui",
- "Could not move %s - File with this name already exists" : "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada",
- "Could not move %s" : "Tidak dapat memindahkan %s",
- "Permission denied" : "Perizinan ditolak",
- "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.",
- "Error when creating the file" : "Kesalahan saat membuat berkas",
- "Error when creating the folder" : "Kesalahan saat membuat folder",
"Unable to set upload directory." : "Tidak dapat mengatur folder unggah",
"Invalid Token" : "Token tidak sah",
"No file was uploaded. Unknown error" : "Tidak ada berkas yang diunggah. Kesalahan tidak dikenal.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Folder sementara tidak ada",
"Failed to write to disk" : "Gagal menulis ke disk",
"Not enough storage available" : "Ruang penyimpanan tidak mencukupi",
+ "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.",
"Upload failed. Could not find uploaded file" : "Unggah gagal. Tidak menemukan berkas yang akan diunggah",
"Upload failed. Could not get file info." : "Unggah gagal. Tidak mendapatkan informasi berkas.",
"Invalid directory." : "Direktori tidak valid.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Tidak dapat menentukan tanggal",
"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",
- "Error moving file." : "Kesalahan saat memindahkan berkas.",
- "Error moving file" : "Kesalahan saat memindahkan berkas",
- "Error" : "Kesalahan ",
- "{new_name} already exists" : "{new_name} sudah ada",
- "Could not rename file" : "Tidak dapat mengubah nama berkas",
- "Could not create file" : "Tidak dapat membuat berkas",
- "Could not create folder" : "Tidak dapat membuat folder",
- "Error deleting file." : "Kesalahan saat menghapus berkas.",
"No entries in this folder match '{filter}'" : "Tidak ada entri di folder ini yang cocok dengan '{filter}'",
"Name" : "Nama",
"Size" : "Ukuran",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte"],
"Favorited" : "Difavoritkan",
"Favorite" : "Favorit",
- "Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt",
"Folder" : "Folder",
"New folder" : "Map baru",
"{newname} already exists" : "{newname} sudah ada",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Diubah oleh %2$s",
"Deleted by %2$s" : "Dihapus oleh %2$s",
"Restored by %2$s" : "Dipulihkan oleh %2$s",
- "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus",
- "%s could not be renamed" : "%s tidak dapat diubah nama",
"Upload (max. %s)" : "Unggah (maks. %s)",
"File handling" : "Penanganan berkas",
"Maximum upload size" : "Ukuran pengunggahan maksimum",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Berkas sedang dipindai, silakan tunggu.",
"Currently scanning" : "Pemindaian terbaru",
"No favorites" : "Tidak ada favorit",
- "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan disini."
+ "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan disini.",
+ "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
index 0d357165370..dca3e7bd163 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -2,13 +2,6 @@
"Storage not available" : "Penyimpanan tidak tersedia",
"Storage invalid" : "Penyimpanan tidak sah",
"Unknown error" : "Kesalahan tidak diketahui",
- "Could not move %s - File with this name already exists" : "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada",
- "Could not move %s" : "Tidak dapat memindahkan %s",
- "Permission denied" : "Perizinan ditolak",
- "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.",
- "Error when creating the file" : "Kesalahan saat membuat berkas",
- "Error when creating the folder" : "Kesalahan saat membuat folder",
"Unable to set upload directory." : "Tidak dapat mengatur folder unggah",
"Invalid Token" : "Token tidak sah",
"No file was uploaded. Unknown error" : "Tidak ada berkas yang diunggah. Kesalahan tidak dikenal.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Folder sementara tidak ada",
"Failed to write to disk" : "Gagal menulis ke disk",
"Not enough storage available" : "Ruang penyimpanan tidak mencukupi",
+ "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.",
"Upload failed. Could not find uploaded file" : "Unggah gagal. Tidak menemukan berkas yang akan diunggah",
"Upload failed. Could not get file info." : "Unggah gagal. Tidak mendapatkan informasi berkas.",
"Invalid directory." : "Direktori tidak valid.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Tidak dapat menentukan tanggal",
"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",
- "Error moving file." : "Kesalahan saat memindahkan berkas.",
- "Error moving file" : "Kesalahan saat memindahkan berkas",
- "Error" : "Kesalahan ",
- "{new_name} already exists" : "{new_name} sudah ada",
- "Could not rename file" : "Tidak dapat mengubah nama berkas",
- "Could not create file" : "Tidak dapat membuat berkas",
- "Could not create folder" : "Tidak dapat membuat folder",
- "Error deleting file." : "Kesalahan saat menghapus berkas.",
"No entries in this folder match '{filter}'" : "Tidak ada entri di folder ini yang cocok dengan '{filter}'",
"Name" : "Nama",
"Size" : "Ukuran",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte"],
"Favorited" : "Difavoritkan",
"Favorite" : "Favorit",
- "Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt",
"Folder" : "Folder",
"New folder" : "Map baru",
"{newname} already exists" : "{newname} sudah ada",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Diubah oleh %2$s",
"Deleted by %2$s" : "Dihapus oleh %2$s",
"Restored by %2$s" : "Dipulihkan oleh %2$s",
- "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus",
- "%s could not be renamed" : "%s tidak dapat diubah nama",
"Upload (max. %s)" : "Unggah (maks. %s)",
"File handling" : "Penanganan berkas",
"Maximum upload size" : "Ukuran pengunggahan maksimum",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Berkas sedang dipindai, silakan tunggu.",
"Currently scanning" : "Pemindaian terbaru",
"No favorites" : "Tidak ada favorit",
- "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan disini."
+ "Files and folders you mark as favorite will show up here" : "Berkas dan folder yang Anda tandai sebagai favorit akan ditampilkan disini.",
+ "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/is.js b/apps/files/l10n/is.js
index f56579fa9c0..967e205145f 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -1,8 +1,6 @@
OC.L10N.register(
"files",
{
- "Could not move %s - File with this name already exists" : "Gat ekki fært %s - Skrá með þessu nafni er þegar til",
- "Could not move %s" : "Gat ekki fært %s",
"No file was uploaded. Unknown error" : "Engin skrá var send inn. Óþekkt villa.",
"There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Innsend skrá er stærri en upload_max stillingin í php.ini:",
@@ -21,14 +19,11 @@ OC.L10N.register(
"Delete" : "Eyða",
"Select" : "Velja",
"Pending" : "Bíður",
- "Error" : "Villa",
- "{new_name} already exists" : "{new_name} er þegar til",
"Name" : "Nafn",
"Size" : "Stærð",
"Modified" : "Breytt",
"New" : "Nýtt",
"File name cannot be empty." : "Nafn skráar má ekki vera tómt",
- "Text file" : "Texta skrá",
"Folder" : "Mappa",
"Upload" : "Senda inn",
"File handling" : "Meðhöndlun skrár",
@@ -42,6 +37,7 @@ OC.L10N.register(
"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.",
- "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu."
+ "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu.",
+ "Text file" : "Texta skrá"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 8a6da48f408..caff3b037d5 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -1,6 +1,4 @@
{ "translations": {
- "Could not move %s - File with this name already exists" : "Gat ekki fært %s - Skrá með þessu nafni er þegar til",
- "Could not move %s" : "Gat ekki fært %s",
"No file was uploaded. Unknown error" : "Engin skrá var send inn. Óþekkt villa.",
"There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Innsend skrá er stærri en upload_max stillingin í php.ini:",
@@ -19,14 +17,11 @@
"Delete" : "Eyða",
"Select" : "Velja",
"Pending" : "Bíður",
- "Error" : "Villa",
- "{new_name} already exists" : "{new_name} er þegar til",
"Name" : "Nafn",
"Size" : "Stærð",
"Modified" : "Breytt",
"New" : "Nýtt",
"File name cannot be empty." : "Nafn skráar má ekki vera tómt",
- "Text file" : "Texta skrá",
"Folder" : "Mappa",
"Upload" : "Senda inn",
"File handling" : "Meðhöndlun skrár",
@@ -40,6 +35,7 @@
"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.",
- "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu."
+ "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu.",
+ "Text file" : "Texta skrá"
},"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 4c6033e6caf..93a013492a2 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Archiviazione non disponibile",
"Storage invalid" : "Archiviazione non valida",
"Unknown error" : "Errore sconosciuto",
- "Could not move %s - File with this name already exists" : "Impossibile spostare %s - un file con questo nome esiste già",
- "Could not move %s" : "Impossibile spostare %s",
- "Permission denied" : "Permesso negato",
- "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.",
- "Error when creating the file" : "Errore durante la creazione del file",
- "Error when creating the folder" : "Errore durante la creazione della cartella",
"Unable to set upload directory." : "Impossibile impostare una cartella di caricamento.",
"Invalid Token" : "Token non valido",
"No file was uploaded. Unknown error" : "Nessun file è stato caricato. Errore sconosciuto",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Manca una cartella temporanea",
"Failed to write to disk" : "Scrittura su disco non riuscita",
"Not enough storage available" : "Spazio di archiviazione insufficiente",
+ "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.",
"Upload failed. Could not find uploaded file" : "Caricamento non riuscito. Impossibile trovare il file caricato.",
"Upload failed. Could not get file info." : "Caricamento non riuscito. Impossibile ottenere informazioni sul file.",
"Invalid directory." : "Cartella non valida.",
@@ -46,14 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "Impossibile determinare la data",
"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",
- "Error moving file." : "Errore durante lo spostamento del file.",
- "Error moving file" : "Errore durante lo spostamento del file",
- "Error" : "Errore",
- "{new_name} already exists" : "{new_name} esiste già",
- "Could not rename file" : "Impossibile rinominare il file",
- "Could not create file" : "Impossibile creare il file",
- "Could not create folder" : "Impossibile creare la cartella",
- "Error deleting file." : "Errore durante l'eliminazione del file.",
+ "Could not move \"{file}\", target exists" : "Impossibile spostare \"{file}\", la destinazione esiste già",
+ "Could not move \"{file}\"" : "Impossibile spostare \"{file}\"",
+ "{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}\"" : "Impossibile creare la cartella \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Impossibile creare la cartella \"{dir}\" poiché esiste già",
+ "Error deleting file \"{fileName}\"." : "Errore durante l'eliminazione del file \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nessuna voce in questa cartella corrisponde a '{filter}'",
"Name" : "Nome",
"Size" : "Dimensione",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
"Favorited" : "Preferiti",
"Favorite" : "Preferito",
- "Text file" : "File di testo",
- "New text file.txt" : "Nuovo file di testo.txt",
"Folder" : "Cartella",
"New folder" : "Nuova cartella",
"{newname} already exists" : "{newname} esiste già",
@@ -99,8 +94,6 @@ OC.L10N.register(
"Changed by %2$s" : "Modificata da %2$s",
"Deleted by %2$s" : "Eliminata da %2$s",
"Restored by %2$s" : "Ripristinata da %2$s",
- "%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato",
- "%s could not be renamed" : "%s non può essere rinominato",
"Upload (max. %s)" : "Carica (massimo %s)",
"File handling" : "Gestione file",
"Maximum upload size" : "Dimensione massima caricamento",
@@ -121,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Scansione dei file in corso, attendi",
"Currently scanning" : "Scansione in corso",
"No favorites" : "Nessun preferito",
- "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui"
+ "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui",
+ "Text file" : "File di testo",
+ "New text file.txt" : "Nuovo file di testo.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 239b8dc399c..25d3834b0a3 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -2,13 +2,6 @@
"Storage not available" : "Archiviazione non disponibile",
"Storage invalid" : "Archiviazione non valida",
"Unknown error" : "Errore sconosciuto",
- "Could not move %s - File with this name already exists" : "Impossibile spostare %s - un file con questo nome esiste già",
- "Could not move %s" : "Impossibile spostare %s",
- "Permission denied" : "Permesso negato",
- "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.",
- "Error when creating the file" : "Errore durante la creazione del file",
- "Error when creating the folder" : "Errore durante la creazione della cartella",
"Unable to set upload directory." : "Impossibile impostare una cartella di caricamento.",
"Invalid Token" : "Token non valido",
"No file was uploaded. Unknown error" : "Nessun file è stato caricato. Errore sconosciuto",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Manca una cartella temporanea",
"Failed to write to disk" : "Scrittura su disco non riuscita",
"Not enough storage available" : "Spazio di archiviazione insufficiente",
+ "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.",
"Upload failed. Could not find uploaded file" : "Caricamento non riuscito. Impossibile trovare il file caricato.",
"Upload failed. Could not get file info." : "Caricamento non riuscito. Impossibile ottenere informazioni sul file.",
"Invalid directory." : "Cartella non valida.",
@@ -44,14 +38,17 @@
"Unable to determine date" : "Impossibile determinare la data",
"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",
- "Error moving file." : "Errore durante lo spostamento del file.",
- "Error moving file" : "Errore durante lo spostamento del file",
- "Error" : "Errore",
- "{new_name} already exists" : "{new_name} esiste già",
- "Could not rename file" : "Impossibile rinominare il file",
- "Could not create file" : "Impossibile creare il file",
- "Could not create folder" : "Impossibile creare la cartella",
- "Error deleting file." : "Errore durante l'eliminazione del file.",
+ "Could not move \"{file}\", target exists" : "Impossibile spostare \"{file}\", la destinazione esiste già",
+ "Could not move \"{file}\"" : "Impossibile spostare \"{file}\"",
+ "{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}\"" : "Impossibile creare la cartella \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Impossibile creare la cartella \"{dir}\" poiché esiste già",
+ "Error deleting file \"{fileName}\"." : "Errore durante l'eliminazione del file \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nessuna voce in questa cartella corrisponde a '{filter}'",
"Name" : "Nome",
"Size" : "Dimensione",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
"Favorited" : "Preferiti",
"Favorite" : "Preferito",
- "Text file" : "File di testo",
- "New text file.txt" : "Nuovo file di testo.txt",
"Folder" : "Cartella",
"New folder" : "Nuova cartella",
"{newname} already exists" : "{newname} esiste già",
@@ -97,8 +92,6 @@
"Changed by %2$s" : "Modificata da %2$s",
"Deleted by %2$s" : "Eliminata da %2$s",
"Restored by %2$s" : "Ripristinata da %2$s",
- "%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato",
- "%s could not be renamed" : "%s non può essere rinominato",
"Upload (max. %s)" : "Carica (massimo %s)",
"File handling" : "Gestione file",
"Maximum upload size" : "Dimensione massima caricamento",
@@ -119,6 +112,8 @@
"Files are being scanned, please wait." : "Scansione dei file in corso, attendi",
"Currently scanning" : "Scansione in corso",
"No favorites" : "Nessun preferito",
- "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui"
+ "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui",
+ "Text file" : "File di testo",
+ "New text file.txt" : "Nuovo file di testo.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index be441c15ca1..5b7bbbdb4cb 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "ストレージが利用できません",
"Storage invalid" : "ストレージが無効です",
"Unknown error" : "不明なエラー",
- "Could not move %s - File with this name already exists" : "%s を移動できませんでした ― この名前のファイルはすでに存在します",
- "Could not move %s" : "%s を移動できませんでした",
- "Permission denied" : "アクセス拒否",
- "The target folder has been moved or deleted." : "対象のフォルダーは移動されたか、削除されました。",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s はフォルダー %s ですでに使われています。別の名前を選択してください。",
- "Error when creating the file" : "ファイルの生成エラー",
- "Error when creating the folder" : "フォルダーの生成エラー",
"Unable to set upload directory." : "アップロードディレクトリを設定できません。",
"Invalid Token" : "無効なトークン",
"No file was uploaded. Unknown error" : "ファイルは何もアップロードされていません。不明なエラー",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "一時保存フォルダーが見つかりません",
"Failed to write to disk" : "ディスクへの書き込みに失敗しました",
"Not enough storage available" : "ストレージに十分な空き容量がありません",
+ "The target folder has been moved or deleted." : "対象のフォルダーは移動されたか、削除されました。",
"Upload failed. Could not find uploaded file" : "アップロードに失敗しました。アップロード済みのファイルを見つけることができませんでした。",
"Upload failed. Could not get file info." : "アップロードに失敗しました。ファイル情報を取得できませんでした。",
"Invalid directory." : "無効なディレクトリです。",
@@ -46,14 +40,12 @@ OC.L10N.register(
"Unable to determine date" : "更新日不明",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
- "Error moving file." : "ファイル移動でエラー",
- "Error moving file" : "ファイルの移動エラー",
- "Error" : "エラー",
- "{new_name} already exists" : "{new_name} はすでに存在します",
- "Could not rename file" : "ファイルの名前変更ができませんでした",
- "Could not create file" : "ファイルを作成できませんでした",
- "Could not create folder" : "フォルダーを作成できませんでした",
- "Error deleting file." : "ファイルの削除エラー。",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "Could not create file \"{file}\"" : "ファイル \"{file}\" を作成できませんでした",
+ "Could not create file \"{file}\" because it already exists" : "ファイル \"{file}\"は既に存在するため作成できませんでした",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Could not create folder \"{dir}\" because it already exists" : "フォルダー \"{dir}\" は既に存在するため作成できませんでした",
+ "Error deleting file \"{fileName}\"." : "\"{fileName}\" でエラーを検出しました。",
"No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Name" : "名前",
"Size" : "サイズ",
@@ -75,8 +67,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n バイト"],
"Favorited" : "お気に入り済",
"Favorite" : "お気に入り",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成",
"Folder" : "フォルダー",
"New folder" : "新しいフォルダー",
"{newname} already exists" : "{newname} はすでに存在します",
@@ -99,8 +89,6 @@ OC.L10N.register(
"Changed by %2$s" : "%2$s により更新",
"Deleted by %2$s" : "%2$s により削除",
"Restored by %2$s" : "%2$s により復元",
- "%s could not be renamed as it has been deleted" : "%s は削除されたため、ファイル名を変更できません",
- "%s could not be renamed" : "%sの名前を変更できませんでした",
"Upload (max. %s)" : "アップロード ( 最大 %s )",
"File handling" : "ファイル操作",
"Maximum upload size" : "最大アップロードサイズ",
@@ -121,6 +109,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。",
"Currently scanning" : "現在スキャン中",
"No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。"
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 58b4870369c..11038907105 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -2,13 +2,6 @@
"Storage not available" : "ストレージが利用できません",
"Storage invalid" : "ストレージが無効です",
"Unknown error" : "不明なエラー",
- "Could not move %s - File with this name already exists" : "%s を移動できませんでした ― この名前のファイルはすでに存在します",
- "Could not move %s" : "%s を移動できませんでした",
- "Permission denied" : "アクセス拒否",
- "The target folder has been moved or deleted." : "対象のフォルダーは移動されたか、削除されました。",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s はフォルダー %s ですでに使われています。別の名前を選択してください。",
- "Error when creating the file" : "ファイルの生成エラー",
- "Error when creating the folder" : "フォルダーの生成エラー",
"Unable to set upload directory." : "アップロードディレクトリを設定できません。",
"Invalid Token" : "無効なトークン",
"No file was uploaded. Unknown error" : "ファイルは何もアップロードされていません。不明なエラー",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "一時保存フォルダーが見つかりません",
"Failed to write to disk" : "ディスクへの書き込みに失敗しました",
"Not enough storage available" : "ストレージに十分な空き容量がありません",
+ "The target folder has been moved or deleted." : "対象のフォルダーは移動されたか、削除されました。",
"Upload failed. Could not find uploaded file" : "アップロードに失敗しました。アップロード済みのファイルを見つけることができませんでした。",
"Upload failed. Could not get file info." : "アップロードに失敗しました。ファイル情報を取得できませんでした。",
"Invalid directory." : "無効なディレクトリです。",
@@ -44,14 +38,12 @@
"Unable to determine date" : "更新日不明",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
- "Error moving file." : "ファイル移動でエラー",
- "Error moving file" : "ファイルの移動エラー",
- "Error" : "エラー",
- "{new_name} already exists" : "{new_name} はすでに存在します",
- "Could not rename file" : "ファイルの名前変更ができませんでした",
- "Could not create file" : "ファイルを作成できませんでした",
- "Could not create folder" : "フォルダーを作成できませんでした",
- "Error deleting file." : "ファイルの削除エラー。",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "Could not create file \"{file}\"" : "ファイル \"{file}\" を作成できませんでした",
+ "Could not create file \"{file}\" because it already exists" : "ファイル \"{file}\"は既に存在するため作成できませんでした",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Could not create folder \"{dir}\" because it already exists" : "フォルダー \"{dir}\" は既に存在するため作成できませんでした",
+ "Error deleting file \"{fileName}\"." : "\"{fileName}\" でエラーを検出しました。",
"No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Name" : "名前",
"Size" : "サイズ",
@@ -73,8 +65,6 @@
"_%n byte_::_%n bytes_" : ["%n バイト"],
"Favorited" : "お気に入り済",
"Favorite" : "お気に入り",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成",
"Folder" : "フォルダー",
"New folder" : "新しいフォルダー",
"{newname} already exists" : "{newname} はすでに存在します",
@@ -97,8 +87,6 @@
"Changed by %2$s" : "%2$s により更新",
"Deleted by %2$s" : "%2$s により削除",
"Restored by %2$s" : "%2$s により復元",
- "%s could not be renamed as it has been deleted" : "%s は削除されたため、ファイル名を変更できません",
- "%s could not be renamed" : "%sの名前を変更できませんでした",
"Upload (max. %s)" : "アップロード ( 最大 %s )",
"File handling" : "ファイル操作",
"Maximum upload size" : "最大アップロードサイズ",
@@ -119,6 +107,8 @@
"Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。",
"Currently scanning" : "現在スキャン中",
"No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。"
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index fe22f22ceb3..f5a57f44266 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -2,8 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "უცნობი შეცდომა",
- "Could not move %s - File with this name already exists" : "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს",
- "Could not move %s" : "%s –ის გადატანა ვერ მოხერხდა",
"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: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში",
@@ -26,8 +24,6 @@ OC.L10N.register(
"Delete" : "წაშლა",
"Details" : "დეტალური ინფორმაცია",
"Pending" : "მოცდის რეჟიმში",
- "Error" : "შეცდომა",
- "{new_name} already exists" : "{new_name} უკვე არსებობს",
"Name" : "სახელი",
"Size" : "ზომა",
"Modified" : "შეცვლილია",
@@ -36,7 +32,6 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!",
"Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)",
"Favorite" : "ფავორიტი",
- "Text file" : "ტექსტური ფაილი",
"Folder" : "საქაღალდე",
"New folder" : "ახალი ფოლდერი",
"Upload" : "ატვირთვა",
@@ -49,6 +44,7 @@ OC.L10N.register(
"Cancel upload" : "ატვირთვის გაუქმება",
"Upload too large" : "ასატვირთი ფაილი ძალიან დიდია",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.",
- "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ."
+ "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ.",
+ "Text file" : "ტექსტური ფაილი"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 8f23f671b7e..cb8f6dce6fd 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -1,7 +1,5 @@
{ "translations": {
"Unknown error" : "უცნობი შეცდომა",
- "Could not move %s - File with this name already exists" : "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს",
- "Could not move %s" : "%s –ის გადატანა ვერ მოხერხდა",
"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: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში",
@@ -24,8 +22,6 @@
"Delete" : "წაშლა",
"Details" : "დეტალური ინფორმაცია",
"Pending" : "მოცდის რეჟიმში",
- "Error" : "შეცდომა",
- "{new_name} already exists" : "{new_name} უკვე არსებობს",
"Name" : "სახელი",
"Size" : "ზომა",
"Modified" : "შეცვლილია",
@@ -34,7 +30,6 @@
"Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!",
"Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)",
"Favorite" : "ფავორიტი",
- "Text file" : "ტექსტური ფაილი",
"Folder" : "საქაღალდე",
"New folder" : "ახალი ფოლდერი",
"Upload" : "ატვირთვა",
@@ -47,6 +42,7 @@
"Cancel upload" : "ატვირთვის გაუქმება",
"Upload too large" : "ასატვირთი ფაილი ძალიან დიდია",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.",
- "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ."
+ "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ.",
+ "Text file" : "ტექსტური ფაილი"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js
index b63a3a90ef0..f03aa9c4693 100644
--- a/apps/files/l10n/km.js
+++ b/apps/files/l10n/km.js
@@ -2,8 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "មិន​ស្គាល់​កំហុស",
- "Could not move %s - File with this name already exists" : "មិន​អាច​ផ្លាស់​ទី %s - មាន​ឈ្មោះ​ឯកសារ​ដូច​នេះ​ហើយ",
- "Could not move %s" : "មិន​អាច​ផ្លាស់ទី %s",
"No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស",
"There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ",
"Files" : "ឯកសារ",
@@ -14,14 +12,11 @@ OC.L10N.register(
"Delete" : "លុប",
"Details" : "ព័ត៌មាន​លម្អិត",
"Pending" : "កំពុង​រង់ចាំ",
- "Error" : "កំហុស",
- "{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
"Name" : "ឈ្មោះ",
"Size" : "ទំហំ",
"Modified" : "បាន​កែ​ប្រែ",
"New" : "ថ្មី",
"File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។",
- "Text file" : "ឯកសារ​អក្សរ",
"Folder" : "ថត",
"New folder" : "ថត​ថ្មី",
"Upload" : "ផ្ទុក​ឡើង",
@@ -36,6 +31,7 @@ OC.L10N.register(
"Settings" : "ការកំណត់",
"WebDAV" : "WebDAV",
"Cancel upload" : "បោះបង់​ការ​ផ្ទុកឡើង",
- "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក"
+ "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក",
+ "Text file" : "ឯកសារ​អក្សរ"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json
index 8dda2ab2cb1..f050b00b795 100644
--- a/apps/files/l10n/km.json
+++ b/apps/files/l10n/km.json
@@ -1,7 +1,5 @@
{ "translations": {
"Unknown error" : "មិន​ស្គាល់​កំហុស",
- "Could not move %s - File with this name already exists" : "មិន​អាច​ផ្លាស់​ទី %s - មាន​ឈ្មោះ​ឯកសារ​ដូច​នេះ​ហើយ",
- "Could not move %s" : "មិន​អាច​ផ្លាស់ទី %s",
"No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស",
"There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ",
"Files" : "ឯកសារ",
@@ -12,14 +10,11 @@
"Delete" : "លុប",
"Details" : "ព័ត៌មាន​លម្អិត",
"Pending" : "កំពុង​រង់ចាំ",
- "Error" : "កំហុស",
- "{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
"Name" : "ឈ្មោះ",
"Size" : "ទំហំ",
"Modified" : "បាន​កែ​ប្រែ",
"New" : "ថ្មី",
"File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។",
- "Text file" : "ឯកសារ​អក្សរ",
"Folder" : "ថត",
"New folder" : "ថត​ថ្មី",
"Upload" : "ផ្ទុក​ឡើង",
@@ -34,6 +29,7 @@
"Settings" : "ការកំណត់",
"WebDAV" : "WebDAV",
"Cancel upload" : "បោះបង់​ការ​ផ្ទុកឡើង",
- "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក"
+ "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
index b1c793b1ef3..840837bdad3 100644
--- a/apps/files/l10n/kn.js
+++ b/apps/files/l10n/kn.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "ಲಭ್ಯವಿಲ್ಲ ಸಂಗ್ರಹ",
"Storage invalid" : "ಸಂಗ್ರಹ ಅಮಾನ್ಯವಾಗಿದೆ",
"Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ",
- "Could not move %s - File with this name already exists" : "%s ಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ - ಸ್ಥಳ ಬದಲಾವಣೆ ಸಾಧ್ಯವಿಲ್ಲ",
- "Could not move %s" : "%s ಸ್ಥಳ ಬದಲಾವಣೆ ಸಾಧ್ಯವಿಲ್ಲ",
- "Permission denied" : "ಅನುಮತಿ ನಿರಾಕರಿಸಲಾಗಿದೆ",
- "The target folder has been moved or deleted." : "ಕೋಶದ ಉದ್ದೇಶಿತ ಸ್ಥಳ ಬದಲಾವಣೆ ಮಾಡಲಾಗಿದೆ ಅಥವಾ ಅಳಿಸಲಾಗಿದೆ.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s ಹೆಸರಿನ ಕೋಶವನ್ನು %s ಈಗಾಗಲೇ ಬಳಸಲಾಗುತ್ತದೆ. ಬೇರೆ ಹೆಸರನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
- "Error when creating the file" : "ಕಡತವನ್ನು ರಚಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
- "Error when creating the folder" : "ಕೊಶವನ್ನು ರಚಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
"Unable to set upload directory." : "ಪೇರಿಸವ ಕೋಶವನ್ನು ಹೊಂದಿಸಲಾಗಲಿಲ್ಲ.",
"Invalid Token" : "ಅಮಾನ್ಯ ಸಾಂಕೇತಿಕ",
"No file was uploaded. Unknown error" : "ಕಡತ ವರ್ಗಾವಣೆ ಅಜ್ಞಾತ ದೋಷದಿಂದ ವಿಪುಲವಾಗಿದೆ",
@@ -20,6 +13,7 @@ OC.L10N.register(
"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" : "ಎಲ್ಲಾ ಕಡತಗಳು",
@@ -34,14 +28,6 @@ OC.L10N.register(
"Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
"Pending" : "ಬಾಕಿ ಇದೆ",
"Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Error moving file." : "ಕಡತದ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸುವಾಗ ದೋಷವಾಗಿದೆ.",
- "Error moving file" : "ಕಡತದ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
- "Error" : "ತಪ್ಪಾಗಿದೆ",
- "{new_name} already exists" : "ಈಗಾಗಲೇ {new_name} ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ",
- "Could not rename file" : "ಕಡತ ಮರುಹೆಸರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ",
- "Could not create file" : "ಕಡತ ರಚಿಸಲಾಗಲಿಲ್ಲ",
- "Could not create folder" : "ಕೋಶವನ್ನು ರಚಿಸಲಾಗಿಲ್ಲ",
- "Error deleting file." : "ಕಡತವನ್ನು ಅಳಿಸುವಲ್ಲಿ ಲೋಪವಾದೆ",
"Name" : "ಹೆಸರು",
"Size" : " ಪ್ರಮಾಣ",
"Modified" : "ಬದಲಾಯಿಸಿದ",
@@ -53,7 +39,6 @@ OC.L10N.register(
"File name cannot be empty." : "ಕಡತ ಹೆಸರು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.",
"Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು",
"Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Text file" : "ಸರಳಾಕ್ಷರದ ಕಡತ",
"Folder" : "ಕಡತಕೋಶ",
"New folder" : "ಹೊಸ ಕಡತಕೋಶ",
"Upload" : "ವರ್ಗಾಯಿಸಿ",
@@ -71,6 +56,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "ಕಡತಗಳನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ.",
"Currently scanning" : "ಪ್ರಸ್ತುತ ಪರೀಕ್ಷೆ",
"No favorites" : "ಯಾವ ಅಚ್ಚುಮೆಚ್ಚಿನವುಗಳು ಇಲ್ಲ",
- "Files and folders you mark as favorite will show up here" : "ನೀವು ಗುರುತು ಮಾಡಿರುವ ನೆಚ್ಚಿನ ಕಡತ ಮತ್ತು ಕಡತಕೋಶಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ"
+ "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
index 6667f3ae01f..d6345be732c 100644
--- a/apps/files/l10n/kn.json
+++ b/apps/files/l10n/kn.json
@@ -2,13 +2,6 @@
"Storage not available" : "ಲಭ್ಯವಿಲ್ಲ ಸಂಗ್ರಹ",
"Storage invalid" : "ಸಂಗ್ರಹ ಅಮಾನ್ಯವಾಗಿದೆ",
"Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ",
- "Could not move %s - File with this name already exists" : "%s ಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ - ಸ್ಥಳ ಬದಲಾವಣೆ ಸಾಧ್ಯವಿಲ್ಲ",
- "Could not move %s" : "%s ಸ್ಥಳ ಬದಲಾವಣೆ ಸಾಧ್ಯವಿಲ್ಲ",
- "Permission denied" : "ಅನುಮತಿ ನಿರಾಕರಿಸಲಾಗಿದೆ",
- "The target folder has been moved or deleted." : "ಕೋಶದ ಉದ್ದೇಶಿತ ಸ್ಥಳ ಬದಲಾವಣೆ ಮಾಡಲಾಗಿದೆ ಅಥವಾ ಅಳಿಸಲಾಗಿದೆ.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s ಹೆಸರಿನ ಕೋಶವನ್ನು %s ಈಗಾಗಲೇ ಬಳಸಲಾಗುತ್ತದೆ. ಬೇರೆ ಹೆಸರನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
- "Error when creating the file" : "ಕಡತವನ್ನು ರಚಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
- "Error when creating the folder" : "ಕೊಶವನ್ನು ರಚಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
"Unable to set upload directory." : "ಪೇರಿಸವ ಕೋಶವನ್ನು ಹೊಂದಿಸಲಾಗಲಿಲ್ಲ.",
"Invalid Token" : "ಅಮಾನ್ಯ ಸಾಂಕೇತಿಕ",
"No file was uploaded. Unknown error" : "ಕಡತ ವರ್ಗಾವಣೆ ಅಜ್ಞಾತ ದೋಷದಿಂದ ವಿಪುಲವಾಗಿದೆ",
@@ -18,6 +11,7 @@
"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" : "ಎಲ್ಲಾ ಕಡತಗಳು",
@@ -32,14 +26,6 @@
"Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
"Pending" : "ಬಾಕಿ ಇದೆ",
"Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Error moving file." : "ಕಡತದ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸುವಾಗ ದೋಷವಾಗಿದೆ.",
- "Error moving file" : "ಕಡತದ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸುವಾಗ ದೋಷವಾಗಿದೆ",
- "Error" : "ತಪ್ಪಾಗಿದೆ",
- "{new_name} already exists" : "ಈಗಾಗಲೇ {new_name} ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ",
- "Could not rename file" : "ಕಡತ ಮರುಹೆಸರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ",
- "Could not create file" : "ಕಡತ ರಚಿಸಲಾಗಲಿಲ್ಲ",
- "Could not create folder" : "ಕೋಶವನ್ನು ರಚಿಸಲಾಗಿಲ್ಲ",
- "Error deleting file." : "ಕಡತವನ್ನು ಅಳಿಸುವಲ್ಲಿ ಲೋಪವಾದೆ",
"Name" : "ಹೆಸರು",
"Size" : " ಪ್ರಮಾಣ",
"Modified" : "ಬದಲಾಯಿಸಿದ",
@@ -51,7 +37,6 @@
"File name cannot be empty." : "ಕಡತ ಹೆಸರು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.",
"Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು",
"Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Text file" : "ಸರಳಾಕ್ಷರದ ಕಡತ",
"Folder" : "ಕಡತಕೋಶ",
"New folder" : "ಹೊಸ ಕಡತಕೋಶ",
"Upload" : "ವರ್ಗಾಯಿಸಿ",
@@ -69,6 +54,7 @@
"Files are being scanned, please wait." : "ಕಡತಗಳನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ.",
"Currently scanning" : "ಪ್ರಸ್ತುತ ಪರೀಕ್ಷೆ",
"No favorites" : "ಯಾವ ಅಚ್ಚುಮೆಚ್ಚಿನವುಗಳು ಇಲ್ಲ",
- "Files and folders you mark as favorite will show up here" : "ನೀವು ಗುರುತು ಮಾಡಿರುವ ನೆಚ್ಚಿನ ಕಡತ ಮತ್ತು ಕಡತಕೋಶಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ"
+ "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 70ee488454a..13e917e3cfa 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "저장소를 사용할 수 없음",
"Storage invalid" : "저장소가 잘못됨",
"Unknown error" : "알 수 없는 오류",
- "Could not move %s - File with this name already exists" : "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함",
- "Could not move %s" : "항목 %s을(를) 이동시킬 수 없음",
- "Permission denied" : "권한 거부됨",
- "The target folder has been moved or deleted." : "대상 폴더가 이동되거나 삭제되었습니다.",
- "The name %s is already used in the folder %s. Please choose a different name." : "이름 %s이(가) 폴더 %s에서 이미 사용 중입니다. 다른 이름을 사용하십시오.",
- "Error when creating the file" : "파일 생성 중 오류 발생",
- "Error when creating the folder" : "폴더 생성 중 오류 발생",
"Unable to set upload directory." : "업로드 디렉터리를 설정할 수 없습니다.",
"Invalid Token" : "잘못된 토큰",
"No file was uploaded. Unknown error" : "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "임시 폴더가 없음",
"Failed to write to disk" : "디스크에 쓰지 못했습니다",
"Not enough storage available" : "저장소가 용량이 충분하지 않습니다.",
+ "The target folder has been moved or deleted." : "대상 폴더가 이동되거나 삭제되었습니다.",
"Upload failed. Could not find uploaded file" : "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다",
"Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.",
"Invalid directory." : "올바르지 않은 디렉터리입니다.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "날짜를 결정할 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
"This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
- "Error moving file." : "파일 이동 오류.",
- "Error moving file" : "파일 이동 오류",
- "Error" : "오류",
- "{new_name} already exists" : "{new_name}이(가) 이미 존재함",
- "Could not rename file" : "이름을 변경할 수 없음",
- "Could not create file" : "파일을 만들 수 없음",
- "Could not create folder" : "폴더를 만들 수 없음",
- "Error deleting file." : "파일 삭제 오류.",
"No entries in this folder match '{filter}'" : "이 폴더에 '{filter}'와(과) 일치하는 항목 없음",
"Name" : "이름",
"Size" : "크기",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n바이트"],
"Favorited" : "책갈피에 추가됨",
"Favorite" : "즐겨찾기",
- "Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt",
"Folder" : "폴더",
"New folder" : "새 폴더",
"{newname} already exists" : "{newname} 항목이 이미 존재함",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "%2$s 님이 변경함",
"Deleted by %2$s" : "%2$s 님이 삭제함",
"Restored by %2$s" : "%2$s 님이 복원함",
- "%s could not be renamed as it has been deleted" : "%s이(가) 삭제되었기 때문에 이름을 변경할 수 없습니다",
- "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다",
"Upload (max. %s)" : "업로드(최대 %s)",
"File handling" : "파일 처리",
"Maximum upload size" : "최대 업로드 크기",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "파일을 검색하고 있습니다. 기다려 주십시오.",
"Currently scanning" : "현재 검사 중",
"No favorites" : "책갈피 없음",
- "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다"
+ "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다",
+ "Text file" : "텍스트 파일",
+ "New text file.txt" : "새 텍스트 파일.txt"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 65e61d8ec49..1e77ab1b9bc 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -2,13 +2,6 @@
"Storage not available" : "저장소를 사용할 수 없음",
"Storage invalid" : "저장소가 잘못됨",
"Unknown error" : "알 수 없는 오류",
- "Could not move %s - File with this name already exists" : "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함",
- "Could not move %s" : "항목 %s을(를) 이동시킬 수 없음",
- "Permission denied" : "권한 거부됨",
- "The target folder has been moved or deleted." : "대상 폴더가 이동되거나 삭제되었습니다.",
- "The name %s is already used in the folder %s. Please choose a different name." : "이름 %s이(가) 폴더 %s에서 이미 사용 중입니다. 다른 이름을 사용하십시오.",
- "Error when creating the file" : "파일 생성 중 오류 발생",
- "Error when creating the folder" : "폴더 생성 중 오류 발생",
"Unable to set upload directory." : "업로드 디렉터리를 설정할 수 없습니다.",
"Invalid Token" : "잘못된 토큰",
"No file was uploaded. Unknown error" : "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "임시 폴더가 없음",
"Failed to write to disk" : "디스크에 쓰지 못했습니다",
"Not enough storage available" : "저장소가 용량이 충분하지 않습니다.",
+ "The target folder has been moved or deleted." : "대상 폴더가 이동되거나 삭제되었습니다.",
"Upload failed. Could not find uploaded file" : "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다",
"Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.",
"Invalid directory." : "올바르지 않은 디렉터리입니다.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "날짜를 결정할 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
"This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
- "Error moving file." : "파일 이동 오류.",
- "Error moving file" : "파일 이동 오류",
- "Error" : "오류",
- "{new_name} already exists" : "{new_name}이(가) 이미 존재함",
- "Could not rename file" : "이름을 변경할 수 없음",
- "Could not create file" : "파일을 만들 수 없음",
- "Could not create folder" : "폴더를 만들 수 없음",
- "Error deleting file." : "파일 삭제 오류.",
"No entries in this folder match '{filter}'" : "이 폴더에 '{filter}'와(과) 일치하는 항목 없음",
"Name" : "이름",
"Size" : "크기",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n바이트"],
"Favorited" : "책갈피에 추가됨",
"Favorite" : "즐겨찾기",
- "Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt",
"Folder" : "폴더",
"New folder" : "새 폴더",
"{newname} already exists" : "{newname} 항목이 이미 존재함",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "%2$s 님이 변경함",
"Deleted by %2$s" : "%2$s 님이 삭제함",
"Restored by %2$s" : "%2$s 님이 복원함",
- "%s could not be renamed as it has been deleted" : "%s이(가) 삭제되었기 때문에 이름을 변경할 수 없습니다",
- "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다",
"Upload (max. %s)" : "업로드(최대 %s)",
"File handling" : "파일 처리",
"Maximum upload size" : "최대 업로드 크기",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "파일을 검색하고 있습니다. 기다려 주십시오.",
"Currently scanning" : "현재 검사 중",
"No favorites" : "책갈피 없음",
- "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다"
+ "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다",
+ "Text file" : "텍스트 파일",
+ "New text file.txt" : "새 텍스트 파일.txt"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ku_IQ.js b/apps/files/l10n/ku_IQ.js
index 7a995636ec9..1ceca50b705 100644
--- a/apps/files/l10n/ku_IQ.js
+++ b/apps/files/l10n/ku_IQ.js
@@ -6,7 +6,6 @@ OC.L10N.register(
"Close" : "دابخه",
"Download" : "داگرتن",
"Select" : "دیاریکردنی",
- "Error" : "هه‌ڵه",
"Name" : "ناو",
"Folder" : "بوخچه",
"Upload" : "بارکردن",
diff --git a/apps/files/l10n/ku_IQ.json b/apps/files/l10n/ku_IQ.json
index f39269efd39..e934b5eb29b 100644
--- a/apps/files/l10n/ku_IQ.json
+++ b/apps/files/l10n/ku_IQ.json
@@ -4,7 +4,6 @@
"Close" : "دابخه",
"Download" : "داگرتن",
"Select" : "دیاریکردنی",
- "Error" : "هه‌ڵه",
"Name" : "ناو",
"Folder" : "بوخچه",
"Upload" : "بارکردن",
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 97cb28477f1..39e12b763cd 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -19,12 +19,10 @@ OC.L10N.register(
"Delete" : "Läschen",
"Details" : "Detailer",
"Select" : "Auswielen",
- "Error" : "Fehler",
"Name" : "Numm",
"Size" : "Gréisst",
"Modified" : "Geännert",
"New" : "Nei",
- "Text file" : "Text Fichier",
"Folder" : "Dossier",
"New folder" : "Neien Dossier",
"Upload" : "Eroplueden",
@@ -38,6 +36,7 @@ OC.L10N.register(
"Select all" : "All auswielen",
"Upload too large" : "Upload ze grouss",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
- "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg."
+ "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg.",
+ "Text file" : "Text Fichier"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index c3dae7b0b88..95148452566 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -17,12 +17,10 @@
"Delete" : "Läschen",
"Details" : "Detailer",
"Select" : "Auswielen",
- "Error" : "Fehler",
"Name" : "Numm",
"Size" : "Gréisst",
"Modified" : "Geännert",
"New" : "Nei",
- "Text file" : "Text Fichier",
"Folder" : "Dossier",
"New folder" : "Neien Dossier",
"Upload" : "Eroplueden",
@@ -36,6 +34,7 @@
"Select all" : "All auswielen",
"Upload too large" : "Upload ze grouss",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
- "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg."
+ "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg.",
+ "Text file" : "Text Fichier"
},"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
index 2f3b6e43d61..2d01379b83d 100644
--- a/apps/files/l10n/lo.js
+++ b/apps/files/l10n/lo.js
@@ -4,9 +4,6 @@ OC.L10N.register(
"Storage not available" : "ບໍ່ມີພື້ນທີ່ເກັບຂໍ້ມູນ",
"Storage invalid" : "ພື້ນທີ່ເກັບຂໍ້ມູນບໍ່ຖືກຕ້ອງ",
"Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ",
- "Could not move %s - File with this name already exists" : "ບໍ່ສາມາດຍ້າຍໄຟລ໌ %s ນີ້ໄດ້ - ຊື່ໄຟລ໌ນີ້ຖືກນຳໃຊ້ແລ້ວ",
- "Could not move %s" : "ບໍ່ສາມາດຍ້າຍ %s ໄດ້",
- "Permission denied" : "ບໍ່ທີສິດໃນການເຂົ້າເຖິງ",
"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
index c7bfdc31dbb..12eea86a936 100644
--- a/apps/files/l10n/lo.json
+++ b/apps/files/l10n/lo.json
@@ -2,9 +2,6 @@
"Storage not available" : "ບໍ່ມີພື້ນທີ່ເກັບຂໍ້ມູນ",
"Storage invalid" : "ພື້ນທີ່ເກັບຂໍ້ມູນບໍ່ຖືກຕ້ອງ",
"Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ",
- "Could not move %s - File with this name already exists" : "ບໍ່ສາມາດຍ້າຍໄຟລ໌ %s ນີ້ໄດ້ - ຊື່ໄຟລ໌ນີ້ຖືກນຳໃຊ້ແລ້ວ",
- "Could not move %s" : "ບໍ່ສາມາດຍ້າຍ %s ໄດ້",
- "Permission denied" : "ບໍ່ທີສິດໃນການເຂົ້າເຖິງ",
"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 13e7a03e45b..b4001e0c8ea 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Saugykla nepasiekiama",
"Storage invalid" : "Saugykla neteisinga",
"Unknown error" : "Neatpažinta klaida",
- "Could not move %s - File with this name already exists" : "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja",
- "Could not move %s" : "Nepavyko perkelti %s",
- "Permission denied" : "Neturite teisių",
- "The target folder has been moved or deleted." : "Tikslo aplankas buvo perkeltas ar ištrintas.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Pavadinimas %s jau naudojamas aplanke %s. Prašome pasirinkti kitokį pavadinimą.",
- "Error when creating the file" : "Klaida kuriant failą",
- "Error when creating the folder" : "Klaida kuriant aplanką",
"Unable to set upload directory." : "Nepavyksta nustatyti įkėlimų katalogo.",
"Invalid Token" : "Netinkamas ženklas",
"No file was uploaded. Unknown error" : "Failai nebuvo įkelti dėl nežinomos priežasties",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Nėra laikinojo katalogo",
"Failed to write to disk" : "Nepavyko įrašyti į diską",
"Not enough storage available" : "Nepakanka vietos serveryje",
+ "The target folder has been moved or deleted." : "Tikslo aplankas buvo perkeltas ar ištrintas.",
"Upload failed. Could not find uploaded file" : "Įkėlimas nepavyko. Nepavyko rasti įkelto failo",
"Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.",
"Invalid directory." : "Neteisingas aplankas",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
- "Error moving file." : "Klaida perkeliant failą.",
- "Error moving file" : "Klaida perkeliant failą",
- "Error" : "Klaida",
- "{new_name} already exists" : "{new_name} jau egzistuoja",
- "Could not rename file" : "Neįmanoma pervadinti failo",
- "Could not create file" : "Neįmanoma sukurti failo",
- "Could not create folder" : "Neįmanoma sukurti aplanko",
- "Error deleting file." : "Klaida trinant failą.",
"No entries in this folder match '{filter}'" : "Nėra įrašų šiame aplanko atitikmeniui „{filter}“",
"Name" : "Pavadinimas",
"Size" : "Dydis",
@@ -97,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Pakeitė %2$s",
"Deleted by %2$s" : "Ištrynė %2$s",
"Restored by %2$s" : "Atkūrė %2$s",
- "%s could not be renamed as it has been deleted" : "%s negalėjo būti pervadintas, nes buvo ištrintas",
- "%s could not be renamed" : "%s negali būti pervadintas",
"Upload (max. %s)" : "Įkelti (maks. %s)",
"File handling" : "Failų tvarkymas",
"Maximum upload size" : "Maksimalus įkeliamo failo dydis",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index c6e4a35c815..ba8610da86b 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -2,13 +2,6 @@
"Storage not available" : "Saugykla nepasiekiama",
"Storage invalid" : "Saugykla neteisinga",
"Unknown error" : "Neatpažinta klaida",
- "Could not move %s - File with this name already exists" : "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja",
- "Could not move %s" : "Nepavyko perkelti %s",
- "Permission denied" : "Neturite teisių",
- "The target folder has been moved or deleted." : "Tikslo aplankas buvo perkeltas ar ištrintas.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Pavadinimas %s jau naudojamas aplanke %s. Prašome pasirinkti kitokį pavadinimą.",
- "Error when creating the file" : "Klaida kuriant failą",
- "Error when creating the folder" : "Klaida kuriant aplanką",
"Unable to set upload directory." : "Nepavyksta nustatyti įkėlimų katalogo.",
"Invalid Token" : "Netinkamas ženklas",
"No file was uploaded. Unknown error" : "Failai nebuvo įkelti dėl nežinomos priežasties",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Nėra laikinojo katalogo",
"Failed to write to disk" : "Nepavyko įrašyti į diską",
"Not enough storage available" : "Nepakanka vietos serveryje",
+ "The target folder has been moved or deleted." : "Tikslo aplankas buvo perkeltas ar ištrintas.",
"Upload failed. Could not find uploaded file" : "Įkėlimas nepavyko. Nepavyko rasti įkelto failo",
"Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.",
"Invalid directory." : "Neteisingas aplankas",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
- "Error moving file." : "Klaida perkeliant failą.",
- "Error moving file" : "Klaida perkeliant failą",
- "Error" : "Klaida",
- "{new_name} already exists" : "{new_name} jau egzistuoja",
- "Could not rename file" : "Neįmanoma pervadinti failo",
- "Could not create file" : "Neįmanoma sukurti failo",
- "Could not create folder" : "Neįmanoma sukurti aplanko",
- "Error deleting file." : "Klaida trinant failą.",
"No entries in this folder match '{filter}'" : "Nėra įrašų šiame aplanko atitikmeniui „{filter}“",
"Name" : "Pavadinimas",
"Size" : "Dydis",
@@ -95,8 +81,6 @@
"Changed by %2$s" : "Pakeitė %2$s",
"Deleted by %2$s" : "Ištrynė %2$s",
"Restored by %2$s" : "Atkūrė %2$s",
- "%s could not be renamed as it has been deleted" : "%s negalėjo būti pervadintas, nes buvo ištrintas",
- "%s could not be renamed" : "%s negali būti pervadintas",
"Upload (max. %s)" : "Įkelti (maks. %s)",
"File handling" : "Failų tvarkymas",
"Maximum upload size" : "Maksimalus įkeliamo failo dydis",
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index ad18fe93244..d615c8e5d28 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Glabātuve nav pieejama",
"Storage invalid" : "Nepareiza krātuve",
"Unknown error" : "Nezināma kļūda",
- "Could not move %s - File with this name already exists" : "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu",
- "Could not move %s" : "Nevarēja pārvietot %s",
- "Permission denied" : "Pieeja liegta",
- "The target folder has been moved or deleted." : "Mērķa mape ir pārvietota vai dzēsta",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nosaukums '%s' jau tiek izmantots mapē '%s'. Lūdzu izvēlieties citu nosaukumu.",
- "Error when creating the file" : "Kļūda veidojot datni",
- "Error when creating the folder" : "Kļūda, veidojot mapi",
"Unable to set upload directory." : "Nevar uzstādīt augšupielādes mapi.",
"Invalid Token" : "Nepareiza pilnvara",
"No file was uploaded. Unknown error" : "Netika augšupielādēta neviena datne. Nezināma kļūda",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Trūkst pagaidu mapes",
"Failed to write to disk" : "Neizdevās saglabāt diskā",
"Not enough storage available" : "Nav pietiekami daudz vietas",
+ "The target folder has been moved or deleted." : "Mērķa mape ir pārvietota vai dzēsta",
"Upload failed. Could not find uploaded file" : "Augšupielāde nesekmīga. Neizdevās atrast augšupielādēto failu.",
"Upload failed. Could not get file info." : "Augšupielāde nesekmīga. Neizdevās iegūt informāciju par failu.",
"Invalid directory." : "Nederīga direktorija.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
"Unable to determine date" : "Neizdevās noteikt datumu",
- "Error moving file." : "Kļūda, pārvietojot datni.",
- "Error moving file" : "Kļūda, pārvietojot datni",
- "Error" : "Kļūda",
- "{new_name} already exists" : "{new_name} jau eksistē",
- "Could not rename file" : "Neizdevās pārsaukt datni",
- "Could not create file" : "Neizdevās izveidot datni",
- "Could not create folder" : "Neizdevās izveidot mapi",
- "Error deleting file." : "Kļūda, dzēšot datni.",
"No entries in this folder match '{filter}'" : "Šajā mapē nekas nav atrasts, meklējot pēc '{filter}'",
"Name" : "Nosaukums",
"Size" : "Izmērs",
@@ -69,7 +55,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["atrasts pēc '{filter}'","atrasts pēc '{filter}'","atrasti pēc '{filter}'"],
"Favorited" : "Favorīti",
"Favorite" : "Iecienītais",
- "Text file" : "Teksta datne",
"Folder" : "Mape",
"New folder" : "Jauna mape",
"Upload" : "Augšupielādēt",
@@ -87,8 +72,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s izdzēsa %1$s",
"You restored %1$s" : "Tu atjaunoji %1$s",
"%2$s restored %1$s" : "%2$s atjaunoja %1$s",
- "%s could not be renamed as it has been deleted" : "Nevarēja pārsaukt %s, jo tas ir dzēsts",
- "%s could not be renamed" : "%s nevar tikt pārsaukts",
"Upload (max. %s)" : "Augšupielādēt (maks. %s)",
"File handling" : "Datņu pārvaldība",
"Maximum upload size" : "Maksimālais datņu augšupielādes apjoms",
@@ -106,6 +89,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet.",
"Currently scanning" : "Pašlaik skenē",
"No favorites" : "Nav favorītu",
- "Files and folders you mark as favorite will show up here" : "Faili un mapes, ko atzīmēsit kā favorītus, tiks rādīti šeit"
+ "Files and folders you mark as favorite will show up here" : "Faili un mapes, ko atzīmēsit kā favorītus, tiks rādīti šeit",
+ "Text file" : "Teksta datne"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index 16ac9adf08d..0888d81ad64 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -2,13 +2,6 @@
"Storage not available" : "Glabātuve nav pieejama",
"Storage invalid" : "Nepareiza krātuve",
"Unknown error" : "Nezināma kļūda",
- "Could not move %s - File with this name already exists" : "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu",
- "Could not move %s" : "Nevarēja pārvietot %s",
- "Permission denied" : "Pieeja liegta",
- "The target folder has been moved or deleted." : "Mērķa mape ir pārvietota vai dzēsta",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nosaukums '%s' jau tiek izmantots mapē '%s'. Lūdzu izvēlieties citu nosaukumu.",
- "Error when creating the file" : "Kļūda veidojot datni",
- "Error when creating the folder" : "Kļūda, veidojot mapi",
"Unable to set upload directory." : "Nevar uzstādīt augšupielādes mapi.",
"Invalid Token" : "Nepareiza pilnvara",
"No file was uploaded. Unknown error" : "Netika augšupielādēta neviena datne. Nezināma kļūda",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Trūkst pagaidu mapes",
"Failed to write to disk" : "Neizdevās saglabāt diskā",
"Not enough storage available" : "Nav pietiekami daudz vietas",
+ "The target folder has been moved or deleted." : "Mērķa mape ir pārvietota vai dzēsta",
"Upload failed. Could not find uploaded file" : "Augšupielāde nesekmīga. Neizdevās atrast augšupielādēto failu.",
"Upload failed. Could not get file info." : "Augšupielāde nesekmīga. Neizdevās iegūt informāciju par failu.",
"Invalid directory." : "Nederīga direktorija.",
@@ -42,14 +36,6 @@
"Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
"Unable to determine date" : "Neizdevās noteikt datumu",
- "Error moving file." : "Kļūda, pārvietojot datni.",
- "Error moving file" : "Kļūda, pārvietojot datni",
- "Error" : "Kļūda",
- "{new_name} already exists" : "{new_name} jau eksistē",
- "Could not rename file" : "Neizdevās pārsaukt datni",
- "Could not create file" : "Neizdevās izveidot datni",
- "Could not create folder" : "Neizdevās izveidot mapi",
- "Error deleting file." : "Kļūda, dzēšot datni.",
"No entries in this folder match '{filter}'" : "Šajā mapē nekas nav atrasts, meklējot pēc '{filter}'",
"Name" : "Nosaukums",
"Size" : "Izmērs",
@@ -67,7 +53,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["atrasts pēc '{filter}'","atrasts pēc '{filter}'","atrasti pēc '{filter}'"],
"Favorited" : "Favorīti",
"Favorite" : "Iecienītais",
- "Text file" : "Teksta datne",
"Folder" : "Mape",
"New folder" : "Jauna mape",
"Upload" : "Augšupielādēt",
@@ -85,8 +70,6 @@
"%2$s deleted %1$s" : "%2$s izdzēsa %1$s",
"You restored %1$s" : "Tu atjaunoji %1$s",
"%2$s restored %1$s" : "%2$s atjaunoja %1$s",
- "%s could not be renamed as it has been deleted" : "Nevarēja pārsaukt %s, jo tas ir dzēsts",
- "%s could not be renamed" : "%s nevar tikt pārsaukts",
"Upload (max. %s)" : "Augšupielādēt (maks. %s)",
"File handling" : "Datņu pārvaldība",
"Maximum upload size" : "Maksimālais datņu augšupielādes apjoms",
@@ -104,6 +87,7 @@
"Files are being scanned, please wait." : "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet.",
"Currently scanning" : "Pašlaik skenē",
"No favorites" : "Nav favorītu",
- "Files and folders you mark as favorite will show up here" : "Faili un mapes, ko atzīmēsit kā favorītus, tiks rādīti šeit"
+ "Files and folders you mark as favorite will show up here" : "Faili un mapes, ko atzīmēsit kā favorītus, tiks rādīti šeit",
+ "Text file" : "Teksta datne"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index a87cdcdc371..92616a372a3 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -2,10 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "Непозната грешка",
- "Could not move %s - File with this name already exists" : "Не можам да го преместам %s - Датотека со такво име веќе постои",
- "Could not move %s" : "Не можам да ги префрлам %s",
- "Error when creating the file" : "Грешка при креирање на датотека",
- "Error when creating the folder" : "Грешка при креирање на папка",
"Unable to set upload directory." : "Не може да се постави папката за префрлање на податоци.",
"Invalid Token" : "Грешен токен",
"No file was uploaded. Unknown error" : "Ниту еден фајл не се вчита. Непозната грешка",
@@ -33,12 +29,6 @@ OC.L10N.register(
"Details" : "Детали:",
"Select" : "Избери",
"Pending" : "Чека",
- "Error moving file" : "Грешка при префрлање на датотека",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} веќе постои",
- "Could not rename file" : "Не можам да ја преименувам датотеката",
- "Could not create file" : "Не множам да креирам датотека",
- "Could not create folder" : "Не можам да креирам папка",
"Name" : "Име",
"Size" : "Големина",
"Modified" : "Променето",
@@ -47,7 +37,6 @@ OC.L10N.register(
"File name cannot be empty." : "Името на датотеката не може да биде празно.",
"Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!",
"Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)",
- "Text file" : "Текстуална датотека",
"Folder" : "Папка",
"New folder" : "Нова папка",
"Upload" : "Подигни",
@@ -57,7 +46,6 @@ OC.L10N.register(
"%2$s changed %1$s" : "%2$s променето %1$s",
"You deleted %1$s" : "Вие избришавте %1$s",
"%2$s deleted %1$s" : "%2$s избришани %1$s",
- "%s could not be renamed" : "%s не може да биде преименуван",
"Upload (max. %s)" : "Префрлање (макс. %s)",
"File handling" : "Ракување со датотеки",
"Maximum upload size" : "Максимална големина за подигање",
@@ -68,6 +56,7 @@ OC.L10N.register(
"Cancel upload" : "Откажи прикачување",
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
- "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте."
+ "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте.",
+ "Text file" : "Текстуална датотека"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 49e2fce36d7..147707256c6 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -1,9 +1,5 @@
{ "translations": {
"Unknown error" : "Непозната грешка",
- "Could not move %s - File with this name already exists" : "Не можам да го преместам %s - Датотека со такво име веќе постои",
- "Could not move %s" : "Не можам да ги префрлам %s",
- "Error when creating the file" : "Грешка при креирање на датотека",
- "Error when creating the folder" : "Грешка при креирање на папка",
"Unable to set upload directory." : "Не може да се постави папката за префрлање на податоци.",
"Invalid Token" : "Грешен токен",
"No file was uploaded. Unknown error" : "Ниту еден фајл не се вчита. Непозната грешка",
@@ -31,12 +27,6 @@
"Details" : "Детали:",
"Select" : "Избери",
"Pending" : "Чека",
- "Error moving file" : "Грешка при префрлање на датотека",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} веќе постои",
- "Could not rename file" : "Не можам да ја преименувам датотеката",
- "Could not create file" : "Не множам да креирам датотека",
- "Could not create folder" : "Не можам да креирам папка",
"Name" : "Име",
"Size" : "Големина",
"Modified" : "Променето",
@@ -45,7 +35,6 @@
"File name cannot be empty." : "Името на датотеката не може да биде празно.",
"Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!",
"Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)",
- "Text file" : "Текстуална датотека",
"Folder" : "Папка",
"New folder" : "Нова папка",
"Upload" : "Подигни",
@@ -55,7 +44,6 @@
"%2$s changed %1$s" : "%2$s променето %1$s",
"You deleted %1$s" : "Вие избришавте %1$s",
"%2$s deleted %1$s" : "%2$s избришани %1$s",
- "%s could not be renamed" : "%s не може да биде преименуван",
"Upload (max. %s)" : "Префрлање (макс. %s)",
"File handling" : "Ракување со датотеки",
"Maximum upload size" : "Максимална големина за подигање",
@@ -66,6 +54,7 @@
"Cancel upload" : "Откажи прикачување",
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
- "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте."
+ "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте.",
+ "Text file" : "Текстуална датотека"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js
index b57c1e61ca9..b60faff6bd9 100644
--- a/apps/files/l10n/ms_MY.js
+++ b/apps/files/l10n/ms_MY.js
@@ -16,12 +16,10 @@ OC.L10N.register(
"Rename" : "Namakan",
"Delete" : "Padam",
"Pending" : "Dalam proses",
- "Error" : "Ralat",
"Name" : "Nama",
"Size" : "Saiz",
"Modified" : "Dimodifikasi",
"New" : "Baru",
- "Text file" : "Fail teks",
"Folder" : "Folder",
"Upload" : "Muat naik",
"You created %1$s" : "Anda telah membina %1$s",
@@ -35,6 +33,7 @@ OC.L10N.register(
"Cancel upload" : "Batal muat naik",
"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",
- "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar."
+ "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar.",
+ "Text file" : "Fail teks"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json
index e9db1fcad9d..fa78e9446b7 100644
--- a/apps/files/l10n/ms_MY.json
+++ b/apps/files/l10n/ms_MY.json
@@ -14,12 +14,10 @@
"Rename" : "Namakan",
"Delete" : "Padam",
"Pending" : "Dalam proses",
- "Error" : "Ralat",
"Name" : "Nama",
"Size" : "Saiz",
"Modified" : "Dimodifikasi",
"New" : "Baru",
- "Text file" : "Fail teks",
"Folder" : "Folder",
"Upload" : "Muat naik",
"You created %1$s" : "Anda telah membina %1$s",
@@ -33,6 +31,7 @@
"Cancel upload" : "Batal muat naik",
"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",
- "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar."
+ "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar.",
+ "Text file" : "Fail teks"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index a1f8def347e..9d01ad626b7 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Lagringsplass ikke tilgjengelig",
"Storage invalid" : "Lagringsplass ugyldig",
"Unknown error" : "Ukjent feil",
- "Could not move %s - File with this name already exists" : "Kan ikke flytte %s - En fil med samme navn finnes allerede",
- "Could not move %s" : "Kunne ikke flytte %s",
- "Permission denied" : "Tilgang nektet",
- "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s brukes allerede i mappen %s. Velg et annet navn.",
- "Error when creating the file" : "Feil ved oppretting av filen",
- "Error when creating the folder" : "Feil ved oppretting av mappen",
"Unable to set upload directory." : "Kunne ikke sette opplastingskatalog.",
"Invalid Token" : "Ugyldig nøkkel",
"No file was uploaded. Unknown error" : "Ingen filer ble lastet opp. Ukjent feil.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Mangler midlertidig mappe",
"Failed to write to disk" : "Klarte ikke å skrive til disk",
"Not enough storage available" : "Ikke nok lagringsplass",
+ "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.",
"Upload failed. Could not find uploaded file" : "Opplasting feilet. Fant ikke opplastet fil.",
"Upload failed. Could not get file info." : "Opplasting feilet. Klarte ikke å finne informasjon om fil.",
"Invalid directory." : "Ugyldig katalog.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Kan ikke fastslå datoen",
"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",
- "Error moving file." : "Feil ved flytting av fil.",
- "Error moving file" : "Feil ved flytting av fil",
- "Error" : "Feil",
- "{new_name} already exists" : "{new_name} finnes allerede",
- "Could not rename file" : "Klarte ikke å gi nytt navn til fil",
- "Could not create file" : "Klarte ikke å opprette fil",
- "Could not create folder" : "Klarte ikke å opprette mappe",
- "Error deleting file." : "Feil ved sletting av fil.",
"No entries in this folder match '{filter}'" : "Ingen oppføringer i denne mappen stemmer med '{filter}'",
"Name" : "Navn",
"Size" : "Størrelse",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Er favoritt",
"Favorite" : "Gjør til favoritt",
- "Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
"Folder" : "Mappe",
"New folder" : "Ny mappe",
"{newname} already exists" : "{newname} finnes allerede",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Endret av %2$s",
"Deleted by %2$s" : "Slettet av %2$s",
"Restored by %2$s" : "Gjenopprettet av %2$s",
- "%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet",
- "%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
"File handling" : "Filhåndtering",
"Maximum upload size" : "Største opplastingsstørrelse",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Skanner filer, vennligst vent.",
"Currently scanning" : "Skanner nå",
"No favorites" : "Ingen favoritter",
- "Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her"
+ "Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her",
+ "Text file" : "Tekstfil",
+ "New text file.txt" : "Ny tekstfil.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index 6d7ee493008..32eb320296c 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -2,13 +2,6 @@
"Storage not available" : "Lagringsplass ikke tilgjengelig",
"Storage invalid" : "Lagringsplass ugyldig",
"Unknown error" : "Ukjent feil",
- "Could not move %s - File with this name already exists" : "Kan ikke flytte %s - En fil med samme navn finnes allerede",
- "Could not move %s" : "Kunne ikke flytte %s",
- "Permission denied" : "Tilgang nektet",
- "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s brukes allerede i mappen %s. Velg et annet navn.",
- "Error when creating the file" : "Feil ved oppretting av filen",
- "Error when creating the folder" : "Feil ved oppretting av mappen",
"Unable to set upload directory." : "Kunne ikke sette opplastingskatalog.",
"Invalid Token" : "Ugyldig nøkkel",
"No file was uploaded. Unknown error" : "Ingen filer ble lastet opp. Ukjent feil.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Mangler midlertidig mappe",
"Failed to write to disk" : "Klarte ikke å skrive til disk",
"Not enough storage available" : "Ikke nok lagringsplass",
+ "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.",
"Upload failed. Could not find uploaded file" : "Opplasting feilet. Fant ikke opplastet fil.",
"Upload failed. Could not get file info." : "Opplasting feilet. Klarte ikke å finne informasjon om fil.",
"Invalid directory." : "Ugyldig katalog.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Kan ikke fastslå datoen",
"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",
- "Error moving file." : "Feil ved flytting av fil.",
- "Error moving file" : "Feil ved flytting av fil",
- "Error" : "Feil",
- "{new_name} already exists" : "{new_name} finnes allerede",
- "Could not rename file" : "Klarte ikke å gi nytt navn til fil",
- "Could not create file" : "Klarte ikke å opprette fil",
- "Could not create folder" : "Klarte ikke å opprette mappe",
- "Error deleting file." : "Feil ved sletting av fil.",
"No entries in this folder match '{filter}'" : "Ingen oppføringer i denne mappen stemmer med '{filter}'",
"Name" : "Navn",
"Size" : "Størrelse",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Er favoritt",
"Favorite" : "Gjør til favoritt",
- "Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
"Folder" : "Mappe",
"New folder" : "Ny mappe",
"{newname} already exists" : "{newname} finnes allerede",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Endret av %2$s",
"Deleted by %2$s" : "Slettet av %2$s",
"Restored by %2$s" : "Gjenopprettet av %2$s",
- "%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet",
- "%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
"File handling" : "Filhåndtering",
"Maximum upload size" : "Største opplastingsstørrelse",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Skanner filer, vennligst vent.",
"Currently scanning" : "Skanner nå",
"No favorites" : "Ingen favoritter",
- "Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her"
+ "Files and folders you mark as favorite will show up here" : "Filer og mapper som du gjør til favoritter vises her",
+ "Text file" : "Tekstfil",
+ "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/nds.js b/apps/files/l10n/nds.js
index 37043dbe6c1..bb3dc429711 100644
--- a/apps/files/l10n/nds.js
+++ b/apps/files/l10n/nds.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Files" : "Dateien",
"Delete" : "Löschen",
"Details" : "Details",
- "Error" : "Fehler",
"Name" : "Name",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
diff --git a/apps/files/l10n/nds.json b/apps/files/l10n/nds.json
index dbd6bad9573..c8e93f2fa2b 100644
--- a/apps/files/l10n/nds.json
+++ b/apps/files/l10n/nds.json
@@ -2,7 +2,6 @@
"Files" : "Dateien",
"Delete" : "Löschen",
"Details" : "Details",
- "Error" : "Fehler",
"Name" : "Name",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 88eb77c02a5..95054067597 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Opslag niet beschikbaar",
"Storage invalid" : "Opslag ongeldig",
"Unknown error" : "Onbekende fout",
- "Could not move %s - File with this name already exists" : "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam",
- "Could not move %s" : "Kon %s niet verplaatsen",
- "Permission denied" : "Toegang geweigerd",
- "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.",
- "The name %s is already used in the folder %s. Please choose a different name." : "De naam %s bestaat al in map %s. Kies een andere naam.",
- "Error when creating the file" : "Fout bij creëren bestand",
- "Error when creating the folder" : "Fout bij aanmaken map",
"Unable to set upload directory." : "Kan uploadmap niet instellen.",
"Invalid Token" : "Ongeldig Token",
"No file was uploaded. Unknown error" : "Er was geen bestand geladen. Onbekende fout",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Er ontbreekt een tijdelijke map",
"Failed to write to disk" : "Schrijven naar schijf mislukt",
"Not enough storage available" : "Niet genoeg opslagruimte beschikbaar",
+ "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.",
"Upload failed. Could not find uploaded file" : "Upload mislukt. Kon geüploade bestand niet vinden",
"Upload failed. Could not get file info." : "Upload mislukt. Kon geen bestandsinfo krijgen.",
"Invalid directory." : "Ongeldige directory.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Kon datum niet vaststellen",
"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",
- "Error moving file." : "Fout bij verplaatsen bestand.",
- "Error moving file" : "Fout bij verplaatsen bestand",
- "Error" : "Fout",
- "{new_name} already exists" : "{new_name} bestaat al",
- "Could not rename file" : "Kon de naam van het bestand niet wijzigen",
- "Could not create file" : "Kon bestand niet creëren",
- "Could not create folder" : "Kon niet creëren map",
- "Error deleting file." : "Fout bij verwijderen bestand.",
"No entries in this folder match '{filter}'" : "Niets in deze map komt overeen met '{filter}'",
"Name" : "Naam",
"Size" : "Grootte",
@@ -74,8 +60,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Favoriet",
"Favorite" : "Favoriet",
- "Text file" : "Tekstbestand",
- "New text file.txt" : "Nieuw tekstbestand.txt",
"Folder" : "Map",
"New folder" : "Nieuwe map",
"{newname} already exists" : "{newname} bestaat al",
@@ -98,8 +82,6 @@ OC.L10N.register(
"Changed by %2$s" : "Gewijzigd door %2$s",
"Deleted by %2$s" : "Verwijderd door %2$s",
"Restored by %2$s" : "Hersteld door %2$s",
- "%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is",
- "%s could not be renamed" : "%s kon niet worden hernoemd",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "Bestand",
"Maximum upload size" : "Maximale bestandsgrootte voor uploads",
@@ -120,6 +102,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Bestanden worden gescand, even wachten.",
"Currently scanning" : "Nu aan het scannen",
"No favorites" : "Geen favorieten",
- "Files and folders you mark as favorite will show up here" : "Bestanden en mappen die u favoriet vindt worden hier getoont"
+ "Files and folders you mark as favorite will show up here" : "Bestanden en mappen die u favoriet vindt worden hier getoont",
+ "Text file" : "Tekstbestand",
+ "New text file.txt" : "Nieuw tekstbestand.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 0eca44aaa0d..81f906d40b3 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -2,13 +2,6 @@
"Storage not available" : "Opslag niet beschikbaar",
"Storage invalid" : "Opslag ongeldig",
"Unknown error" : "Onbekende fout",
- "Could not move %s - File with this name already exists" : "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam",
- "Could not move %s" : "Kon %s niet verplaatsen",
- "Permission denied" : "Toegang geweigerd",
- "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.",
- "The name %s is already used in the folder %s. Please choose a different name." : "De naam %s bestaat al in map %s. Kies een andere naam.",
- "Error when creating the file" : "Fout bij creëren bestand",
- "Error when creating the folder" : "Fout bij aanmaken map",
"Unable to set upload directory." : "Kan uploadmap niet instellen.",
"Invalid Token" : "Ongeldig Token",
"No file was uploaded. Unknown error" : "Er was geen bestand geladen. Onbekende fout",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Er ontbreekt een tijdelijke map",
"Failed to write to disk" : "Schrijven naar schijf mislukt",
"Not enough storage available" : "Niet genoeg opslagruimte beschikbaar",
+ "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.",
"Upload failed. Could not find uploaded file" : "Upload mislukt. Kon geüploade bestand niet vinden",
"Upload failed. Could not get file info." : "Upload mislukt. Kon geen bestandsinfo krijgen.",
"Invalid directory." : "Ongeldige directory.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Kon datum niet vaststellen",
"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",
- "Error moving file." : "Fout bij verplaatsen bestand.",
- "Error moving file" : "Fout bij verplaatsen bestand",
- "Error" : "Fout",
- "{new_name} already exists" : "{new_name} bestaat al",
- "Could not rename file" : "Kon de naam van het bestand niet wijzigen",
- "Could not create file" : "Kon bestand niet creëren",
- "Could not create folder" : "Kon niet creëren map",
- "Error deleting file." : "Fout bij verwijderen bestand.",
"No entries in this folder match '{filter}'" : "Niets in deze map komt overeen met '{filter}'",
"Name" : "Naam",
"Size" : "Grootte",
@@ -72,8 +58,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Favoriet",
"Favorite" : "Favoriet",
- "Text file" : "Tekstbestand",
- "New text file.txt" : "Nieuw tekstbestand.txt",
"Folder" : "Map",
"New folder" : "Nieuwe map",
"{newname} already exists" : "{newname} bestaat al",
@@ -96,8 +80,6 @@
"Changed by %2$s" : "Gewijzigd door %2$s",
"Deleted by %2$s" : "Verwijderd door %2$s",
"Restored by %2$s" : "Hersteld door %2$s",
- "%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is",
- "%s could not be renamed" : "%s kon niet worden hernoemd",
"Upload (max. %s)" : "Upload (max. %s)",
"File handling" : "Bestand",
"Maximum upload size" : "Maximale bestandsgrootte voor uploads",
@@ -118,6 +100,8 @@
"Files are being scanned, please wait." : "Bestanden worden gescand, even wachten.",
"Currently scanning" : "Nu aan het scannen",
"No favorites" : "Geen favorieten",
- "Files and folders you mark as favorite will show up here" : "Bestanden en mappen die u favoriet vindt worden hier getoont"
+ "Files and folders you mark as favorite will show up here" : "Bestanden en mappen die u favoriet vindt worden hier getoont",
+ "Text file" : "Tekstbestand",
+ "New text file.txt" : "Nieuw tekstbestand.txt"
},"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
index 6d9e9f4acdd..efe3707c213 100644
--- a/apps/files/l10n/nn_NO.js
+++ b/apps/files/l10n/nn_NO.js
@@ -2,8 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "Ukjend feil",
- "Could not move %s - File with this name already exists" : "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet",
- "Could not move %s" : "Klarte ikkje flytta %s",
"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",
@@ -32,9 +30,6 @@ OC.L10N.register(
"Delete" : "Slett",
"Details" : "Detaljar",
"Pending" : "Under vegs",
- "Error moving file" : "Feil ved flytting av fil",
- "Error" : "Feil",
- "{new_name} already exists" : "{new_name} finst allereie",
"Name" : "Namn",
"Size" : "Storleik",
"Modified" : "Endra",
@@ -47,7 +42,6 @@ OC.L10N.register(
"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",
- "Text file" : "Tekst fil",
"Folder" : "Mappe",
"New folder" : "Ny mappe",
"Upload" : "Last opp",
@@ -61,7 +55,6 @@ OC.L10N.register(
"%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",
- "%s could not be renamed" : "Klarte ikkje å omdøypa på %s",
"File handling" : "Filhandtering",
"Maximum upload size" : "Maksimal opplastingsstorleik",
"max. possible: " : "maks. moglege:",
@@ -71,6 +64,7 @@ OC.L10N.register(
"Cancel upload" : "Avbryt opplasting",
"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.",
- "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent."
+ "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent.",
+ "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
index 277c50de6da..929f8c0d7fe 100644
--- a/apps/files/l10n/nn_NO.json
+++ b/apps/files/l10n/nn_NO.json
@@ -1,7 +1,5 @@
{ "translations": {
"Unknown error" : "Ukjend feil",
- "Could not move %s - File with this name already exists" : "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet",
- "Could not move %s" : "Klarte ikkje flytta %s",
"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",
@@ -30,9 +28,6 @@
"Delete" : "Slett",
"Details" : "Detaljar",
"Pending" : "Under vegs",
- "Error moving file" : "Feil ved flytting av fil",
- "Error" : "Feil",
- "{new_name} already exists" : "{new_name} finst allereie",
"Name" : "Namn",
"Size" : "Storleik",
"Modified" : "Endra",
@@ -45,7 +40,6 @@
"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",
- "Text file" : "Tekst fil",
"Folder" : "Mappe",
"New folder" : "Ny mappe",
"Upload" : "Last opp",
@@ -59,7 +53,6 @@
"%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",
- "%s could not be renamed" : "Klarte ikkje å omdøypa på %s",
"File handling" : "Filhandtering",
"Maximum upload size" : "Maksimal opplastingsstorleik",
"max. possible: " : "maks. moglege:",
@@ -69,6 +62,7 @@
"Cancel upload" : "Avbryt opplasting",
"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.",
- "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent."
+ "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent.",
+ "Text file" : "Tekst fil"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index d702fcace3d..4890a818e12 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Supòrt d'emmagazinatge pas disponible",
"Storage invalid" : "Supòrt d'emmagazinatge pas valable",
"Unknown error" : "Error Desconeguda ",
- "Could not move %s - File with this name already exists" : "Impossible de desplaçar %s - Un fichièr que pòrta aqueste nom existís ja",
- "Could not move %s" : "Impossible de desplaçar %s",
- "Permission denied" : "Permission refusada",
- "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Lo nom %s es ja utilizat dins lo dorsièr %s. Mercé de causir un nom diferent.",
- "Error when creating the file" : "Error pendent la creacion del fichièr",
- "Error when creating the folder" : "Error pendent la creacion del dorsièr",
"Unable to set upload directory." : "Impossible de definir lo dorsièr de destinacion.",
"Invalid Token" : "Geton invalid",
"No file was uploaded. Unknown error" : "Cap de fichièr es pas estat mandat. Error desconeguda",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Abséncia de dorsièr temporari",
"Failed to write to disk" : "Error d'escritura sul disc",
"Not enough storage available" : "Pas pro d'espaci d'emmagazinatge de disponible",
+ "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
"Upload failed. Could not find uploaded file" : "Lo mandadís a fracassat. Impossible de trobar lo fichièr mandat.",
"Upload failed. Could not get file info." : "Lo mandadís a fracassat. Impossible d'obténer las informacions del fichièr.",
"Invalid directory." : "Dorsièr invalid.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Impossible de determinar la data",
"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",
- "Error moving file." : "Error al moment del desplaçament del fichièr.",
- "Error moving file" : "Error al moment del desplaçament del fichièr",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} existís ja",
- "Could not rename file" : "Impossible de renomenar lo fichièr",
- "Could not create file" : "Impossible de crear lo fichièr",
- "Could not create folder" : "Impossible de crear lo dorsièr",
- "Error deleting file." : "Error pendent la supression del fichièr.",
"No entries in this folder match '{filter}'" : "Cap d'entrada d'aqueste dorsièr correspond pas a '{filter}'",
"Name" : "Nom",
"Size" : "Talha",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marcat coma favorit",
"Favorite" : "Favorit",
- "Text file" : "Fichièr tèxte",
- "New text file.txt" : "Novèl fichièr tèxte .txt",
"Folder" : "Dorsièr",
"New folder" : "Novèl dorsièr",
"{newname} already exists" : "{new_name} existís ja",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Modificat per %2$s",
"Deleted by %2$s" : "Suprimit per %2$s",
"Restored by %2$s" : "Restablit per %2$s",
- "%s could not be renamed as it has been deleted" : "%s pòt pas èsser renomenat perque es estat suprimit ",
- "%s could not be renamed" : "%s pòt pas èsser renomenat",
"Upload (max. %s)" : "Mandadís (max. %s)",
"File handling" : "Gestion de fichièrs",
"Maximum upload size" : "Talha max. de mandadís",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Los fichièrs son en cors d'analisi, pacientatz.",
"Currently scanning" : "Analisi en cors",
"No favorites" : "Pas cap de favorit",
- "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí"
+ "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí",
+ "Text file" : "Fichièr tèxte",
+ "New text file.txt" : "Novèl fichièr tèxte .txt"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index ec91aa3ccba..14477c71a33 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -2,13 +2,6 @@
"Storage not available" : "Supòrt d'emmagazinatge pas disponible",
"Storage invalid" : "Supòrt d'emmagazinatge pas valable",
"Unknown error" : "Error Desconeguda ",
- "Could not move %s - File with this name already exists" : "Impossible de desplaçar %s - Un fichièr que pòrta aqueste nom existís ja",
- "Could not move %s" : "Impossible de desplaçar %s",
- "Permission denied" : "Permission refusada",
- "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Lo nom %s es ja utilizat dins lo dorsièr %s. Mercé de causir un nom diferent.",
- "Error when creating the file" : "Error pendent la creacion del fichièr",
- "Error when creating the folder" : "Error pendent la creacion del dorsièr",
"Unable to set upload directory." : "Impossible de definir lo dorsièr de destinacion.",
"Invalid Token" : "Geton invalid",
"No file was uploaded. Unknown error" : "Cap de fichièr es pas estat mandat. Error desconeguda",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Abséncia de dorsièr temporari",
"Failed to write to disk" : "Error d'escritura sul disc",
"Not enough storage available" : "Pas pro d'espaci d'emmagazinatge de disponible",
+ "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
"Upload failed. Could not find uploaded file" : "Lo mandadís a fracassat. Impossible de trobar lo fichièr mandat.",
"Upload failed. Could not get file info." : "Lo mandadís a fracassat. Impossible d'obténer las informacions del fichièr.",
"Invalid directory." : "Dorsièr invalid.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Impossible de determinar la data",
"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",
- "Error moving file." : "Error al moment del desplaçament del fichièr.",
- "Error moving file" : "Error al moment del desplaçament del fichièr",
- "Error" : "Error",
- "{new_name} already exists" : "{new_name} existís ja",
- "Could not rename file" : "Impossible de renomenar lo fichièr",
- "Could not create file" : "Impossible de crear lo fichièr",
- "Could not create folder" : "Impossible de crear lo dorsièr",
- "Error deleting file." : "Error pendent la supression del fichièr.",
"No entries in this folder match '{filter}'" : "Cap d'entrada d'aqueste dorsièr correspond pas a '{filter}'",
"Name" : "Nom",
"Size" : "Talha",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marcat coma favorit",
"Favorite" : "Favorit",
- "Text file" : "Fichièr tèxte",
- "New text file.txt" : "Novèl fichièr tèxte .txt",
"Folder" : "Dorsièr",
"New folder" : "Novèl dorsièr",
"{newname} already exists" : "{new_name} existís ja",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Modificat per %2$s",
"Deleted by %2$s" : "Suprimit per %2$s",
"Restored by %2$s" : "Restablit per %2$s",
- "%s could not be renamed as it has been deleted" : "%s pòt pas èsser renomenat perque es estat suprimit ",
- "%s could not be renamed" : "%s pòt pas èsser renomenat",
"Upload (max. %s)" : "Mandadís (max. %s)",
"File handling" : "Gestion de fichièrs",
"Maximum upload size" : "Talha max. de mandadís",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Los fichièrs son en cors d'analisi, pacientatz.",
"Currently scanning" : "Analisi en cors",
"No favorites" : "Pas cap de favorit",
- "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí"
+ "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí",
+ "Text file" : "Fichièr tèxte",
+ "New text file.txt" : "Novèl fichièr tèxte .txt"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pa.js b/apps/files/l10n/pa.js
index dfb7c392837..847adbc5ac1 100644
--- a/apps/files/l10n/pa.js
+++ b/apps/files/l10n/pa.js
@@ -7,7 +7,6 @@ OC.L10N.register(
"Rename" : "ਨਾਂ ਬਦਲੋ",
"Delete" : "ਹਟਾਓ",
"Details" : "ਵੇਰਵ",
- "Error" : "ਗਲਤੀ",
"Upload" : "ਅੱਪਲੋਡ",
"Settings" : "ਸੈਟਿੰਗ",
"Cancel upload" : "ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ"
diff --git a/apps/files/l10n/pa.json b/apps/files/l10n/pa.json
index c1f4dae97fa..6d7025feec1 100644
--- a/apps/files/l10n/pa.json
+++ b/apps/files/l10n/pa.json
@@ -5,7 +5,6 @@
"Rename" : "ਨਾਂ ਬਦਲੋ",
"Delete" : "ਹਟਾਓ",
"Details" : "ਵੇਰਵ",
- "Error" : "ਗਲਤੀ",
"Upload" : "ਅੱਪਲੋਡ",
"Settings" : "ਸੈਟਿੰਗ",
"Cancel upload" : "ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ"
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index e7a208bc639..6478fbe5eb4 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Pamięć nie dostępna",
"Storage invalid" : "Pamięć nieprawidłowa",
"Unknown error" : "Nieznany błąd",
- "Could not move %s - File with this name already exists" : "Nie można było przenieść %s - Plik o takiej nazwie już istnieje",
- "Could not move %s" : "Nie można było przenieść %s",
- "Permission denied" : "Dostęp zabroniony",
- "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.",
- "Error when creating the file" : "Błąd przy tworzeniu pliku",
- "Error when creating the folder" : "Błąd przy tworzeniu folderu",
"Unable to set upload directory." : "Nie można ustawić katalog wczytywania.",
"Invalid Token" : "Nieprawidłowy Token",
"No file was uploaded. Unknown error" : "Żaden plik nie został załadowany. Nieznany błąd",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Brak folderu tymczasowego",
"Failed to write to disk" : "Błąd zapisu na dysk",
"Not enough storage available" : "Za mało dostępnego miejsca",
+ "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty",
"Upload failed. Could not find uploaded file" : "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku",
"Upload failed. Could not get file info." : "Nieudane przesłanie. Nie można pobrać informacji o pliku.",
"Invalid directory." : "Zła ścieżka.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Wybierz",
"Pending" : "Oczekujące",
"Unable to determine date" : "Nie można ustalić daty",
- "Error moving file." : "Błąd podczas przenoszenia pliku.",
- "Error moving file" : "Błąd prz przenoszeniu pliku",
- "Error" : "Błąd",
- "{new_name} already exists" : "{new_name} już istnieje",
- "Could not rename file" : "Nie można zmienić nazwy pliku",
- "Could not create file" : "Nie można utworzyć pliku",
- "Could not create folder" : "Nie można utworzyć folderu",
- "Error deleting file." : "Błąd podczas usuwania pliku",
"No entries in this folder match '{filter}'" : "Brak wyników pasujących do '{filter}'",
"Name" : "Nazwa",
"Size" : "Rozmiar",
@@ -70,7 +56,6 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"Favorited" : "Ulubione",
"Favorite" : "Ulubione",
- "Text file" : "Plik tekstowy",
"Folder" : "Folder",
"New folder" : "Nowy folder",
"Upload" : "Wyślij",
@@ -87,8 +72,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s usunął %1$s",
"You restored %1$s" : "Przywróciłeś %1$s",
"%2$s restored %1$s" : "%2$s przywrócił %1$s",
- "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty",
- "%s could not be renamed" : "%s nie można zmienić nazwy",
"Upload (max. %s)" : "Wysyłka (max. %s)",
"File handling" : "Zarządzanie plikami",
"Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku",
@@ -103,6 +86,7 @@ OC.L10N.register(
"Upload too large" : "Ładowany 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 przesłać, przekraczają maksymalną dopuszczalną wielkość.",
"Files are being scanned, please wait." : "Skanowanie plików, proszę czekać.",
- "Currently scanning" : "Aktualnie skanowane"
+ "Currently scanning" : "Aktualnie skanowane",
+ "Text file" : "Plik tekstowy"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 4af3ab766e4..98a0592cc75 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -2,13 +2,6 @@
"Storage not available" : "Pamięć nie dostępna",
"Storage invalid" : "Pamięć nieprawidłowa",
"Unknown error" : "Nieznany błąd",
- "Could not move %s - File with this name already exists" : "Nie można było przenieść %s - Plik o takiej nazwie już istnieje",
- "Could not move %s" : "Nie można było przenieść %s",
- "Permission denied" : "Dostęp zabroniony",
- "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty",
- "The name %s is already used in the folder %s. Please choose a different name." : "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.",
- "Error when creating the file" : "Błąd przy tworzeniu pliku",
- "Error when creating the folder" : "Błąd przy tworzeniu folderu",
"Unable to set upload directory." : "Nie można ustawić katalog wczytywania.",
"Invalid Token" : "Nieprawidłowy Token",
"No file was uploaded. Unknown error" : "Żaden plik nie został załadowany. Nieznany błąd",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Brak folderu tymczasowego",
"Failed to write to disk" : "Błąd zapisu na dysk",
"Not enough storage available" : "Za mało dostępnego miejsca",
+ "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty",
"Upload failed. Could not find uploaded file" : "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku",
"Upload failed. Could not get file info." : "Nieudane przesłanie. Nie można pobrać informacji o pliku.",
"Invalid directory." : "Zła ścieżka.",
@@ -42,14 +36,6 @@
"Select" : "Wybierz",
"Pending" : "Oczekujące",
"Unable to determine date" : "Nie można ustalić daty",
- "Error moving file." : "Błąd podczas przenoszenia pliku.",
- "Error moving file" : "Błąd prz przenoszeniu pliku",
- "Error" : "Błąd",
- "{new_name} already exists" : "{new_name} już istnieje",
- "Could not rename file" : "Nie można zmienić nazwy pliku",
- "Could not create file" : "Nie można utworzyć pliku",
- "Could not create folder" : "Nie można utworzyć folderu",
- "Error deleting file." : "Błąd podczas usuwania pliku",
"No entries in this folder match '{filter}'" : "Brak wyników pasujących do '{filter}'",
"Name" : "Nazwa",
"Size" : "Rozmiar",
@@ -68,7 +54,6 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"Favorited" : "Ulubione",
"Favorite" : "Ulubione",
- "Text file" : "Plik tekstowy",
"Folder" : "Folder",
"New folder" : "Nowy folder",
"Upload" : "Wyślij",
@@ -85,8 +70,6 @@
"%2$s deleted %1$s" : "%2$s usunął %1$s",
"You restored %1$s" : "Przywróciłeś %1$s",
"%2$s restored %1$s" : "%2$s przywrócił %1$s",
- "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty",
- "%s could not be renamed" : "%s nie można zmienić nazwy",
"Upload (max. %s)" : "Wysyłka (max. %s)",
"File handling" : "Zarządzanie plikami",
"Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku",
@@ -101,6 +84,7 @@
"Upload too large" : "Ładowany 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 przesłać, przekraczają maksymalną dopuszczalną wielkość.",
"Files are being scanned, please wait." : "Skanowanie plików, proszę czekać.",
- "Currently scanning" : "Aktualnie skanowane"
+ "Currently scanning" : "Aktualnie skanowane",
+ "Text file" : "Plik tekstowy"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index b7a2196db63..6619da366e9 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Armazanamento não disponível",
"Storage invalid" : "Armazenamento invávilido",
"Unknown error" : "Erro desconhecido",
- "Could not move %s - File with this name already exists" : "Impossível mover %s - Já existe um arquivo com esse nome",
- "Could not move %s" : "Impossível mover %s",
- "Permission denied" : "Permissão Negada",
- "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.",
- "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.",
- "Error when creating the file" : "Erro ao criar o arquivo",
- "Error when creating the folder" : "Erro ao criar a pasta",
"Unable to set upload directory." : "Impossível configurar o diretório de envio",
"Invalid Token" : "Token inválido",
"No file was uploaded. Unknown error" : "Nenhum arquivo foi enviado. Erro desconhecido",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Pasta temporária não encontrada",
"Failed to write to disk" : "Falha ao escrever no disco",
"Not enough storage available" : "Espaço de armazenamento insuficiente",
+ "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.",
"Upload failed. Could not find uploaded file" : "Falha no envio. Não foi possível encontrar o arquivo enviado",
"Upload failed. Could not get file info." : "Falha no envio. Não foi possível obter informações do arquivo.",
"Invalid directory." : "Diretório inválido.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Impossível determinar a data",
"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 entre em contato com o administrador",
- "Error moving file." : "Erro movendo o arquivo.",
- "Error moving file" : "Erro movendo o arquivo",
- "Error" : "Erro",
- "{new_name} already exists" : "{new_name} já existe",
- "Could not rename file" : "Não foi possível renomear o arquivo",
- "Could not create file" : "Não foi possível criar o arquivo",
- "Could not create folder" : "Não foi possível criar a pasta",
- "Error deleting file." : "Erro eliminando o arquivo.",
"No entries in this folder match '{filter}'" : "Nenhuma entrada nesta pasta coincide com '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Favorito",
"Favorite" : "Favorito",
- "Text file" : "Arquivo texto",
- "New text file.txt" : "Novo texto file.txt",
"Folder" : "Pasta",
"New folder" : "Nova pasta",
"{newname} already exists" : "{newname} já existe",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Modificado por %2$s",
"Deleted by %2$s" : "Deletado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado",
- "%s could not be renamed" : "%s não pode ser renomeado",
"Upload (max. %s)" : "Envio (max. %s)",
"File handling" : "Tratamento de Arquivo",
"Maximum upload size" : "Tamanho máximo para envio",
@@ -121,6 +103,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.",
"Currently scanning" : "Atualmente escaneando",
"No favorites" : "Sem favoritos",
- "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui"
+ "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui",
+ "Text file" : "Arquivo texto",
+ "New text file.txt" : "Novo texto file.txt"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 335b50a2d7d..e656d9e0079 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -2,13 +2,6 @@
"Storage not available" : "Armazanamento não disponível",
"Storage invalid" : "Armazenamento invávilido",
"Unknown error" : "Erro desconhecido",
- "Could not move %s - File with this name already exists" : "Impossível mover %s - Já existe um arquivo com esse nome",
- "Could not move %s" : "Impossível mover %s",
- "Permission denied" : "Permissão Negada",
- "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.",
- "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.",
- "Error when creating the file" : "Erro ao criar o arquivo",
- "Error when creating the folder" : "Erro ao criar a pasta",
"Unable to set upload directory." : "Impossível configurar o diretório de envio",
"Invalid Token" : "Token inválido",
"No file was uploaded. Unknown error" : "Nenhum arquivo foi enviado. Erro desconhecido",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Pasta temporária não encontrada",
"Failed to write to disk" : "Falha ao escrever no disco",
"Not enough storage available" : "Espaço de armazenamento insuficiente",
+ "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.",
"Upload failed. Could not find uploaded file" : "Falha no envio. Não foi possível encontrar o arquivo enviado",
"Upload failed. Could not get file info." : "Falha no envio. Não foi possível obter informações do arquivo.",
"Invalid directory." : "Diretório inválido.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Impossível determinar a data",
"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 entre em contato com o administrador",
- "Error moving file." : "Erro movendo o arquivo.",
- "Error moving file" : "Erro movendo o arquivo",
- "Error" : "Erro",
- "{new_name} already exists" : "{new_name} já existe",
- "Could not rename file" : "Não foi possível renomear o arquivo",
- "Could not create file" : "Não foi possível criar o arquivo",
- "Could not create folder" : "Não foi possível criar a pasta",
- "Error deleting file." : "Erro eliminando o arquivo.",
"No entries in this folder match '{filter}'" : "Nenhuma entrada nesta pasta coincide com '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Favorito",
"Favorite" : "Favorito",
- "Text file" : "Arquivo texto",
- "New text file.txt" : "Novo texto file.txt",
"Folder" : "Pasta",
"New folder" : "Nova pasta",
"{newname} already exists" : "{newname} já existe",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Modificado por %2$s",
"Deleted by %2$s" : "Deletado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado",
- "%s could not be renamed" : "%s não pode ser renomeado",
"Upload (max. %s)" : "Envio (max. %s)",
"File handling" : "Tratamento de Arquivo",
"Maximum upload size" : "Tamanho máximo para envio",
@@ -119,6 +101,8 @@
"Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.",
"Currently scanning" : "Atualmente escaneando",
"No favorites" : "Sem favoritos",
- "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui"
+ "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui",
+ "Text file" : "Arquivo texto",
+ "New text file.txt" : "Novo texto file.txt"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 537abb936b1..ecb66e0eb1a 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Armazenamento indisposinvel",
"Storage invalid" : "Armazenamento inválido",
"Unknown error" : "Erro Desconhecido",
- "Could not move %s - File with this name already exists" : "Não foi possível mover %s - Já existe um ficheiro com este nome",
- "Could not move %s" : "Não foi possível mover %s",
- "Permission denied" : "Permissão negada",
- "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.",
- "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já está em uso na pasta %s. Por favor escolha um nome diferente.",
- "Error when creating the file" : "Erro ao criar o ficheiro",
- "Error when creating the folder" : "Erro ao criar a pasta",
"Unable to set upload directory." : "Não foi possível criar o diretório de upload",
"Invalid Token" : "Token inválido",
"No file was uploaded. Unknown error" : "Não foi enviado nenhum ficheiro. Erro desconhecido",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "A pasta temporária está em falta",
"Failed to write to disk" : "Não foi possível gravar no disco",
"Not enough storage available" : "Não há espaço suficiente em disco",
+ "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.",
"Upload failed. Could not find uploaded file" : "Falhou o envio. Não conseguiu encontrar o ficheiro enviado",
"Upload failed. Could not get file info." : "O carregamento falhou. Não foi possível obter a informação do ficheiro.",
"Invalid directory." : "Diretoria inválida.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Impossível determinar a data",
"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",
- "Error moving file." : "Erro a mover o ficheiro.",
- "Error moving file" : "Erro ao mover o ficheiro",
- "Error" : "Erro",
- "{new_name} already exists" : "O nome {new_name} já existe",
- "Could not rename file" : "Não pôde renomear o ficheiro",
- "Could not create file" : "Não pôde criar ficheiro",
- "Could not create folder" : "Não pôde criar pasta",
- "Error deleting file." : "Erro ao apagar o ficheiro.",
"No entries in this folder match '{filter}'" : "Nenhumas entradas nesta pasta correspondem a '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Assinalado como Favorito",
"Favorite" : "Favorito",
- "Text file" : "Ficheiro de Texto",
- "New text file.txt" : "Novo texto ficheiro.txt",
"Folder" : "Pasta",
"New folder" : "Nova Pasta",
"{newname} already exists" : "{newname} já existe",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Alterado por %2$s",
"Deleted by %2$s" : "Eliminado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado",
- "%s could not be renamed" : "%s não pode ser renomeada",
"Upload (max. %s)" : "Enviar (max. %s)",
"File handling" : "Manuseamento do ficheiro",
"Maximum upload size" : "Tamanho máximo de envio",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Os ficheiros estão a ser analisados, por favor aguarde.",
"Currently scanning" : "A analisar",
"No favorites" : "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"
+ "Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
+ "Text file" : "Ficheiro de Texto",
+ "New text file.txt" : "Novo texto ficheiro.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 20e8dd808cc..bdbdb7225bb 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -2,13 +2,6 @@
"Storage not available" : "Armazenamento indisposinvel",
"Storage invalid" : "Armazenamento inválido",
"Unknown error" : "Erro Desconhecido",
- "Could not move %s - File with this name already exists" : "Não foi possível mover %s - Já existe um ficheiro com este nome",
- "Could not move %s" : "Não foi possível mover %s",
- "Permission denied" : "Permissão negada",
- "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.",
- "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já está em uso na pasta %s. Por favor escolha um nome diferente.",
- "Error when creating the file" : "Erro ao criar o ficheiro",
- "Error when creating the folder" : "Erro ao criar a pasta",
"Unable to set upload directory." : "Não foi possível criar o diretório de upload",
"Invalid Token" : "Token inválido",
"No file was uploaded. Unknown error" : "Não foi enviado nenhum ficheiro. Erro desconhecido",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "A pasta temporária está em falta",
"Failed to write to disk" : "Não foi possível gravar no disco",
"Not enough storage available" : "Não há espaço suficiente em disco",
+ "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.",
"Upload failed. Could not find uploaded file" : "Falhou o envio. Não conseguiu encontrar o ficheiro enviado",
"Upload failed. Could not get file info." : "O carregamento falhou. Não foi possível obter a informação do ficheiro.",
"Invalid directory." : "Diretoria inválida.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Impossível determinar a data",
"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",
- "Error moving file." : "Erro a mover o ficheiro.",
- "Error moving file" : "Erro ao mover o ficheiro",
- "Error" : "Erro",
- "{new_name} already exists" : "O nome {new_name} já existe",
- "Could not rename file" : "Não pôde renomear o ficheiro",
- "Could not create file" : "Não pôde criar ficheiro",
- "Could not create folder" : "Não pôde criar pasta",
- "Error deleting file." : "Erro ao apagar o ficheiro.",
"No entries in this folder match '{filter}'" : "Nenhumas entradas nesta pasta correspondem a '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Assinalado como Favorito",
"Favorite" : "Favorito",
- "Text file" : "Ficheiro de Texto",
- "New text file.txt" : "Novo texto ficheiro.txt",
"Folder" : "Pasta",
"New folder" : "Nova Pasta",
"{newname} already exists" : "{newname} já existe",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Alterado por %2$s",
"Deleted by %2$s" : "Eliminado por %2$s",
"Restored by %2$s" : "Restaurado por %2$s",
- "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado",
- "%s could not be renamed" : "%s não pode ser renomeada",
"Upload (max. %s)" : "Enviar (max. %s)",
"File handling" : "Manuseamento do ficheiro",
"Maximum upload size" : "Tamanho máximo de envio",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Os ficheiros estão a ser analisados, por favor aguarde.",
"Currently scanning" : "A analisar",
"No favorites" : "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"
+ "Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
+ "Text file" : "Ficheiro de Texto",
+ "New text file.txt" : "Novo texto ficheiro.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index c3dca30abed..54e7c505c9a 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Spațiu de stocare indisponibil",
"Storage invalid" : "Spațiu de stocare invalid",
"Unknown error" : "Eroare necunoscută",
- "Could not move %s - File with this name already exists" : "%s nu se poate muta - Fișierul cu acest nume există deja ",
- "Could not move %s" : "Nu se poate muta %s",
- "Permission denied" : "Accesul interzis",
- "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.",
- "Error when creating the file" : "Eroare la crearea fișierului",
- "Error when creating the folder" : "Eroare la crearea dosarului",
"Unable to set upload directory." : "Imposibil de a seta directorul pentru încărcare.",
"Invalid Token" : "Jeton Invalid",
"No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Lipsește un dosar temporar",
"Failed to write to disk" : "Eroare la scrierea pe disc",
"Not enough storage available" : "Nu este disponibil suficient spațiu",
+ "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.",
"Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat",
"Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.",
"Invalid directory." : "Dosar nevalid.",
@@ -43,14 +37,6 @@ OC.L10N.register(
"Details" : "Detalii",
"Select" : "Alege",
"Pending" : "În așteptare",
- "Error moving file." : "Eroare la mutarea fișierului.",
- "Error moving file" : "Eroare la mutarea fișierului",
- "Error" : "Eroare",
- "{new_name} already exists" : "{new_name} există deja",
- "Could not rename file" : "Nu s-a putut redenumi fișierul",
- "Could not create file" : "Nu s-a putut crea fisierul",
- "Could not create folder" : "Nu s-a putut crea folderul",
- "Error deleting file." : "Eroare la ștergerea fișierului.",
"Name" : "Nume",
"Size" : "Mărime",
"Modified" : "Modificat",
@@ -65,7 +51,6 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!",
"Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)",
"Favorite" : "Favorit",
- "Text file" : "Fișier text",
"Folder" : "Dosar",
"New folder" : "Un nou dosar",
"Upload" : "Încărcă",
@@ -82,8 +67,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s a șters %1$s",
"You restored %1$s" : "Ai restaurat %1$s",
"%2$s restored %1$s" : "%2$s a restaurat %1$s",
- "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters",
- "%s could not be renamed" : "%s nu a putut fi redenumit",
"Upload (max. %s)" : "Încarcă (max. %s)",
"File handling" : "Manipulare fișiere",
"Maximum upload size" : "Dimensiune maximă admisă la încărcare",
@@ -97,6 +80,7 @@ OC.L10N.register(
"Upload too large" : "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.",
"Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.",
- "Currently scanning" : "Acum scanează"
+ "Currently scanning" : "Acum scanează",
+ "Text file" : "Fișier text"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index 0d2f4497ff4..3fe8ba180bb 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -2,13 +2,6 @@
"Storage not available" : "Spațiu de stocare indisponibil",
"Storage invalid" : "Spațiu de stocare invalid",
"Unknown error" : "Eroare necunoscută",
- "Could not move %s - File with this name already exists" : "%s nu se poate muta - Fișierul cu acest nume există deja ",
- "Could not move %s" : "Nu se poate muta %s",
- "Permission denied" : "Accesul interzis",
- "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.",
- "Error when creating the file" : "Eroare la crearea fișierului",
- "Error when creating the folder" : "Eroare la crearea dosarului",
"Unable to set upload directory." : "Imposibil de a seta directorul pentru încărcare.",
"Invalid Token" : "Jeton Invalid",
"No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Lipsește un dosar temporar",
"Failed to write to disk" : "Eroare la scrierea pe disc",
"Not enough storage available" : "Nu este disponibil suficient spațiu",
+ "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.",
"Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat",
"Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.",
"Invalid directory." : "Dosar nevalid.",
@@ -41,14 +35,6 @@
"Details" : "Detalii",
"Select" : "Alege",
"Pending" : "În așteptare",
- "Error moving file." : "Eroare la mutarea fișierului.",
- "Error moving file" : "Eroare la mutarea fișierului",
- "Error" : "Eroare",
- "{new_name} already exists" : "{new_name} există deja",
- "Could not rename file" : "Nu s-a putut redenumi fișierul",
- "Could not create file" : "Nu s-a putut crea fisierul",
- "Could not create folder" : "Nu s-a putut crea folderul",
- "Error deleting file." : "Eroare la ștergerea fișierului.",
"Name" : "Nume",
"Size" : "Mărime",
"Modified" : "Modificat",
@@ -63,7 +49,6 @@
"Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!",
"Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)",
"Favorite" : "Favorit",
- "Text file" : "Fișier text",
"Folder" : "Dosar",
"New folder" : "Un nou dosar",
"Upload" : "Încărcă",
@@ -80,8 +65,6 @@
"%2$s deleted %1$s" : "%2$s a șters %1$s",
"You restored %1$s" : "Ai restaurat %1$s",
"%2$s restored %1$s" : "%2$s a restaurat %1$s",
- "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters",
- "%s could not be renamed" : "%s nu a putut fi redenumit",
"Upload (max. %s)" : "Încarcă (max. %s)",
"File handling" : "Manipulare fișiere",
"Maximum upload size" : "Dimensiune maximă admisă la încărcare",
@@ -95,6 +78,7 @@
"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.",
"Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.",
- "Currently scanning" : "Acum scanează"
+ "Currently scanning" : "Acum scanează",
+ "Text file" : "Fișier text"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 29f46270af6..222184d87af 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Хранилище недоступно",
"Storage invalid" : "Хранилище неисправно",
"Unknown error" : "Неизвестная ошибка",
- "Could not move %s - File with this name already exists" : "Невозможно переместить %s - файл с таким именем уже существует",
- "Could not move %s" : "Невозможно переместить %s",
- "Permission denied" : "В доступе отказано",
- "The target folder has been moved or deleted." : "Целевой каталог был перемещен или удален.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Имя %s уже используется для каталога %s. Укажите другое имя.",
- "Error when creating the file" : "Ошибка при создании файла",
- "Error when creating the folder" : "Ошибка создания каталога",
"Unable to set upload directory." : "Невозможно установить каталог загрузки.",
"Invalid Token" : "Недопустимый маркер",
"No file was uploaded. Unknown error" : "Файл не был загружен. Неизвестная ошибка",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Отсутствует временный каталог",
"Failed to write to disk" : "Ошибка записи на диск",
"Not enough storage available" : "Недостаточно доступного места в хранилище",
+ "The target folder has been moved or deleted." : "Целевой каталог был перемещен или удален.",
"Upload failed. Could not find uploaded file" : "Загрузка не удалась. Невозможно найти загружаемый файл",
"Upload failed. Could not get file info." : "Загрузка не удалась. Невозможно получить информацию о файле",
"Invalid directory." : "Неверный каталог.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Невозможно определить дату",
"This operation is forbidden" : "Операция запрещена",
"This directory is unavailable, please check the logs or contact the administrator" : "Директория недоступна, пожалуйста проверьте журнал сообщений или свяжитесь с администратором",
- "Error moving file." : "Ошибка при перемещении файла.",
- "Error moving file" : "Ошибка при перемещении файла",
- "Error" : "Ошибка",
- "{new_name} already exists" : "{new_name} уже существует",
- "Could not rename file" : "Не удалось переименовать файл",
- "Could not create file" : "Не удалось создать файл",
- "Could not create folder" : "Не удалось создать каталог",
- "Error deleting file." : "Ошибка при удалении файла.",
"No entries in this folder match '{filter}'" : "В данном каталоге нет элементов соответствующих '{filter}'",
"Name" : "Имя",
"Size" : "Размер",
@@ -97,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Изменено %2$s",
"Deleted by %2$s" : "Удалено %2$s",
"Restored by %2$s" : "Восстановлено %2$s",
- "%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.",
- "%s could not be renamed" : "%s не может быть переименован",
"Upload (max. %s)" : "Загрузка (максимум %s)",
"File handling" : "Управление файлами",
"Maximum upload size" : "Максимальный размер загружаемого файла",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 19999734621..f3b318dc100 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -2,13 +2,6 @@
"Storage not available" : "Хранилище недоступно",
"Storage invalid" : "Хранилище неисправно",
"Unknown error" : "Неизвестная ошибка",
- "Could not move %s - File with this name already exists" : "Невозможно переместить %s - файл с таким именем уже существует",
- "Could not move %s" : "Невозможно переместить %s",
- "Permission denied" : "В доступе отказано",
- "The target folder has been moved or deleted." : "Целевой каталог был перемещен или удален.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Имя %s уже используется для каталога %s. Укажите другое имя.",
- "Error when creating the file" : "Ошибка при создании файла",
- "Error when creating the folder" : "Ошибка создания каталога",
"Unable to set upload directory." : "Невозможно установить каталог загрузки.",
"Invalid Token" : "Недопустимый маркер",
"No file was uploaded. Unknown error" : "Файл не был загружен. Неизвестная ошибка",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Отсутствует временный каталог",
"Failed to write to disk" : "Ошибка записи на диск",
"Not enough storage available" : "Недостаточно доступного места в хранилище",
+ "The target folder has been moved or deleted." : "Целевой каталог был перемещен или удален.",
"Upload failed. Could not find uploaded file" : "Загрузка не удалась. Невозможно найти загружаемый файл",
"Upload failed. Could not get file info." : "Загрузка не удалась. Невозможно получить информацию о файле",
"Invalid directory." : "Неверный каталог.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Невозможно определить дату",
"This operation is forbidden" : "Операция запрещена",
"This directory is unavailable, please check the logs or contact the administrator" : "Директория недоступна, пожалуйста проверьте журнал сообщений или свяжитесь с администратором",
- "Error moving file." : "Ошибка при перемещении файла.",
- "Error moving file" : "Ошибка при перемещении файла",
- "Error" : "Ошибка",
- "{new_name} already exists" : "{new_name} уже существует",
- "Could not rename file" : "Не удалось переименовать файл",
- "Could not create file" : "Не удалось создать файл",
- "Could not create folder" : "Не удалось создать каталог",
- "Error deleting file." : "Ошибка при удалении файла.",
"No entries in this folder match '{filter}'" : "В данном каталоге нет элементов соответствующих '{filter}'",
"Name" : "Имя",
"Size" : "Размер",
@@ -95,8 +81,6 @@
"Changed by %2$s" : "Изменено %2$s",
"Deleted by %2$s" : "Удалено %2$s",
"Restored by %2$s" : "Восстановлено %2$s",
- "%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.",
- "%s could not be renamed" : "%s не может быть переименован",
"Upload (max. %s)" : "Загрузка (максимум %s)",
"File handling" : "Управление файлами",
"Maximum upload size" : "Максимальный размер загружаемого файла",
diff --git a/apps/files/l10n/si_LK.js b/apps/files/l10n/si_LK.js
index 9b2696d4530..44e96c49fc6 100644
--- a/apps/files/l10n/si_LK.js
+++ b/apps/files/l10n/si_LK.js
@@ -17,12 +17,10 @@ OC.L10N.register(
"Rename" : "නැවත නම් කරන්න",
"Delete" : "මකා දමන්න",
"Select" : "තෝරන්න",
- "Error" : "දෝෂයක්",
"Name" : "නම",
"Size" : "ප්‍රමාණය",
"Modified" : "වෙනස් කළ",
"New" : "නව",
- "Text file" : "පෙළ ගොනුව",
"Folder" : "ෆෝල්ඩරය",
"Upload" : "උඩුගත කරන්න",
"A new file or folder has been <strong>created</strong>" : "නව ගොනුවක් හෝ බහාලුමක් <strong> නිර්මාණය කර ඇත</ strong> ",
@@ -37,6 +35,7 @@ OC.L10N.register(
"Cancel upload" : "උඩුගත කිරීම අත් හරින්න",
"Upload too large" : "උඩුගත කිරීම විශාල වැඩිය",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය",
- "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න"
+ "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න",
+ "Text file" : "පෙළ ගොනුව"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/si_LK.json b/apps/files/l10n/si_LK.json
index b46144f4881..92bcea71587 100644
--- a/apps/files/l10n/si_LK.json
+++ b/apps/files/l10n/si_LK.json
@@ -15,12 +15,10 @@
"Rename" : "නැවත නම් කරන්න",
"Delete" : "මකා දමන්න",
"Select" : "තෝරන්න",
- "Error" : "දෝෂයක්",
"Name" : "නම",
"Size" : "ප්‍රමාණය",
"Modified" : "වෙනස් කළ",
"New" : "නව",
- "Text file" : "පෙළ ගොනුව",
"Folder" : "ෆෝල්ඩරය",
"Upload" : "උඩුගත කරන්න",
"A new file or folder has been <strong>created</strong>" : "නව ගොනුවක් හෝ බහාලුමක් <strong> නිර්මාණය කර ඇත</ strong> ",
@@ -35,6 +33,7 @@
"Cancel upload" : "උඩුගත කිරීම අත් හරින්න",
"Upload too large" : "උඩුගත කිරීම විශාල වැඩිය",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය",
- "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න"
+ "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න",
+ "Text file" : "පෙළ ගොනුව"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js
index 1736a1f94c1..ca7e107d1ca 100644
--- a/apps/files/l10n/sk_SK.js
+++ b/apps/files/l10n/sk_SK.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Úložisko nie je dostupné",
"Storage invalid" : "Úložisko nie je platné",
"Unknown error" : "Neznáma chyba",
- "Could not move %s - File with this name already exists" : "Nie je možné presunúť %s - súbor s týmto menom už existuje",
- "Could not move %s" : "Nie je možné presunúť %s",
- "Permission denied" : "Prístup bol odmietnutý",
- "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Názov %s už používa priečinok s%. Prosím zvoľte iný názov.",
- "Error when creating the file" : "Chyba pri vytváraní súboru",
- "Error when creating the folder" : "Chyba pri vytváraní priečinka",
"Unable to set upload directory." : "Nemožno nastaviť priečinok pre nahrané súbory.",
"Invalid Token" : "Neplatný token",
"No file was uploaded. Unknown error" : "Žiaden súbor nebol nahraný. Neznáma chyba",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Chýba dočasný priečinok",
"Failed to write to disk" : "Zápis na disk sa nepodaril",
"Not enough storage available" : "Nedostatok dostupného úložného priestoru",
+ "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.",
"Upload failed. Could not find uploaded file" : "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor",
"Upload failed. Could not get file info." : "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore.",
"Invalid directory." : "Neplatný priečinok.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Nemožno určiť dátum",
"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",
- "Error moving file." : "Chyba pri presune súboru.",
- "Error moving file" : "Chyba pri presúvaní súboru",
- "Error" : "Chyba",
- "{new_name} already exists" : "{new_name} už existuje",
- "Could not rename file" : "Nemožno premenovať súbor",
- "Could not create file" : "Nemožno vytvoriť súbor",
- "Could not create folder" : "Nemožno vytvoriť priečinok",
- "Error deleting file." : "Chyba pri mazaní súboru.",
"No entries in this folder match '{filter}'" : "V tomto priečinku nič nezodpovedá '{filter}'",
"Name" : "Názov",
"Size" : "Veľkosť",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov"],
"Favorited" : "Pridané k obľúbeným",
"Favorite" : "Obľúbené",
- "Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt",
"Folder" : "Priečinok",
"New folder" : "Nový priečinok",
"{newname} already exists" : "{newname} už existuje",
@@ -96,8 +80,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s zmazal %1$s",
"You restored %1$s" : "Bol obnovený %1$s",
"%2$s restored %1$s" : "%2$s obnovil %1$s",
- "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný",
- "%s could not be renamed" : "%s nemohol byť premenovaný",
"Upload (max. %s)" : "Nahrať (max. %s)",
"File handling" : "Nastavenie správania sa k súborom",
"Maximum upload size" : "Maximálna veľkosť odosielaného súboru",
@@ -116,6 +98,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Čakajte, súbory sú prehľadávané.",
"Currently scanning" : "Prehľadáva sa",
"No favorites" : "Ž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"
+ "Files and folders you mark as favorite will show up here" : "Súbory a priečinky označené ako obľúbené budú zobrazené tu",
+ "Text file" : "Textový súbor",
+ "New text file.txt" : "Nový text file.txt"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json
index 8936375cade..4d03e18556a 100644
--- a/apps/files/l10n/sk_SK.json
+++ b/apps/files/l10n/sk_SK.json
@@ -2,13 +2,6 @@
"Storage not available" : "Úložisko nie je dostupné",
"Storage invalid" : "Úložisko nie je platné",
"Unknown error" : "Neznáma chyba",
- "Could not move %s - File with this name already exists" : "Nie je možné presunúť %s - súbor s týmto menom už existuje",
- "Could not move %s" : "Nie je možné presunúť %s",
- "Permission denied" : "Prístup bol odmietnutý",
- "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Názov %s už používa priečinok s%. Prosím zvoľte iný názov.",
- "Error when creating the file" : "Chyba pri vytváraní súboru",
- "Error when creating the folder" : "Chyba pri vytváraní priečinka",
"Unable to set upload directory." : "Nemožno nastaviť priečinok pre nahrané súbory.",
"Invalid Token" : "Neplatný token",
"No file was uploaded. Unknown error" : "Žiaden súbor nebol nahraný. Neznáma chyba",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Chýba dočasný priečinok",
"Failed to write to disk" : "Zápis na disk sa nepodaril",
"Not enough storage available" : "Nedostatok dostupného úložného priestoru",
+ "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.",
"Upload failed. Could not find uploaded file" : "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor",
"Upload failed. Could not get file info." : "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore.",
"Invalid directory." : "Neplatný priečinok.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Nemožno určiť dátum",
"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",
- "Error moving file." : "Chyba pri presune súboru.",
- "Error moving file" : "Chyba pri presúvaní súboru",
- "Error" : "Chyba",
- "{new_name} already exists" : "{new_name} už existuje",
- "Could not rename file" : "Nemožno premenovať súbor",
- "Could not create file" : "Nemožno vytvoriť súbor",
- "Could not create folder" : "Nemožno vytvoriť priečinok",
- "Error deleting file." : "Chyba pri mazaní súboru.",
"No entries in this folder match '{filter}'" : "V tomto priečinku nič nezodpovedá '{filter}'",
"Name" : "Názov",
"Size" : "Veľkosť",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov"],
"Favorited" : "Pridané k obľúbeným",
"Favorite" : "Obľúbené",
- "Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt",
"Folder" : "Priečinok",
"New folder" : "Nový priečinok",
"{newname} already exists" : "{newname} už existuje",
@@ -94,8 +78,6 @@
"%2$s deleted %1$s" : "%2$s zmazal %1$s",
"You restored %1$s" : "Bol obnovený %1$s",
"%2$s restored %1$s" : "%2$s obnovil %1$s",
- "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný",
- "%s could not be renamed" : "%s nemohol byť premenovaný",
"Upload (max. %s)" : "Nahrať (max. %s)",
"File handling" : "Nastavenie správania sa k súborom",
"Maximum upload size" : "Maximálna veľkosť odosielaného súboru",
@@ -114,6 +96,8 @@
"Files are being scanned, please wait." : "Čakajte, súbory sú prehľadávané.",
"Currently scanning" : "Prehľadáva sa",
"No favorites" : "Ž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"
+ "Files and folders you mark as favorite will show up here" : "Súbory a priečinky označené ako obľúbené budú zobrazené tu",
+ "Text file" : "Textový súbor",
+ "New text file.txt" : "Nový text file.txt"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index d89d31f6aea..240bce73af1 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Na voljo ni dovolj prostora",
"Storage invalid" : "Določen prostor ni veljaven",
"Unknown error" : "Neznana napaka",
- "Could not move %s - File with this name already exists" : "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.",
- "Could not move %s" : "Datoteke %s ni mogoče premakniti",
- "Permission denied" : "Za to opravilo ni ustreznih dovoljenj.",
- "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.",
- "Error when creating the file" : "Napaka med ustvarjanjem datoteke",
- "Error when creating the folder" : "Napaka med ustvarjanjem mape",
"Unable to set upload directory." : "Mapo, v katero boste prenašali dokumente, ni mogoče določiti",
"Invalid Token" : "Neveljaven žeton",
"No file was uploaded. Unknown error" : "Ni poslane datoteke. Neznana napaka.",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Manjka začasna mapa",
"Failed to write to disk" : "Pisanje na disk je spodletelo",
"Not enough storage available" : "Na voljo ni dovolj prostora",
+ "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.",
"Upload failed. Could not find uploaded file" : "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.",
"Upload failed. Could not get file info." : "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke.",
"Invalid directory." : "Neveljavna mapa.",
@@ -44,14 +38,6 @@ OC.L10N.register(
"Select" : "Izberi",
"Pending" : "V čakanju ...",
"Unable to determine date" : "Ni mogoče določiti datuma",
- "Error moving file." : "Napaka premikanja datoteke.",
- "Error moving file" : "Napaka premikanja datoteke",
- "Error" : "Napaka",
- "{new_name} already exists" : "{new_name} že obstaja",
- "Could not rename file" : "Ni mogoče preimenovati datoteke",
- "Could not create file" : "Ni mogoče ustvariti datoteke",
- "Could not create folder" : "Ni mogoče ustvariti mape",
- "Error deleting file." : "Napaka brisanja datoteke.",
"No entries in this folder match '{filter}'" : "Ni zadetkov, ki bi bili skladni z nizom '{filter}'",
"Name" : "Ime",
"Size" : "Velikost",
@@ -71,7 +57,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["se sklada s filtrom '{filter}'","se skladata s filtrom '{filter}'","se skladajo s filtrom '{filter}'","se skladajo s filtrom '{filter}'"],
"Favorited" : "Označeno kot priljubljeno",
"Favorite" : "Priljubljene",
- "Text file" : "Besedilna datoteka",
"Folder" : "Mapa",
"New folder" : "Nova mapa",
"Upload" : "Pošlji",
@@ -90,8 +75,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s je izbrisal %1$s",
"You restored %1$s" : "Obnovljen je predmet %1$s",
"%2$s restored %1$s" : "Uporabnik %2$s je obnovil predmet %1$s.",
- "%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.",
- "%s could not be renamed" : "%s ni mogoče preimenovati",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"File handling" : "Upravljanje z datotekami",
"Maximum upload size" : "Največja velikost za pošiljanja",
@@ -110,6 +93,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Poteka preučevanje datotek, počakajte ...",
"Currently scanning" : "Poteka preverjanje",
"No favorites" : "Ni priljubljenih",
- "Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo izpisane tukaj."
+ "Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo izpisane tukaj.",
+ "Text file" : "Besedilna datoteka"
},
"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 6dbbd99371a..64ad90f56bd 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -2,13 +2,6 @@
"Storage not available" : "Na voljo ni dovolj prostora",
"Storage invalid" : "Določen prostor ni veljaven",
"Unknown error" : "Neznana napaka",
- "Could not move %s - File with this name already exists" : "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.",
- "Could not move %s" : "Datoteke %s ni mogoče premakniti",
- "Permission denied" : "Za to opravilo ni ustreznih dovoljenj.",
- "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.",
- "Error when creating the file" : "Napaka med ustvarjanjem datoteke",
- "Error when creating the folder" : "Napaka med ustvarjanjem mape",
"Unable to set upload directory." : "Mapo, v katero boste prenašali dokumente, ni mogoče določiti",
"Invalid Token" : "Neveljaven žeton",
"No file was uploaded. Unknown error" : "Ni poslane datoteke. Neznana napaka.",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Manjka začasna mapa",
"Failed to write to disk" : "Pisanje na disk je spodletelo",
"Not enough storage available" : "Na voljo ni dovolj prostora",
+ "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.",
"Upload failed. Could not find uploaded file" : "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.",
"Upload failed. Could not get file info." : "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke.",
"Invalid directory." : "Neveljavna mapa.",
@@ -42,14 +36,6 @@
"Select" : "Izberi",
"Pending" : "V čakanju ...",
"Unable to determine date" : "Ni mogoče določiti datuma",
- "Error moving file." : "Napaka premikanja datoteke.",
- "Error moving file" : "Napaka premikanja datoteke",
- "Error" : "Napaka",
- "{new_name} already exists" : "{new_name} že obstaja",
- "Could not rename file" : "Ni mogoče preimenovati datoteke",
- "Could not create file" : "Ni mogoče ustvariti datoteke",
- "Could not create folder" : "Ni mogoče ustvariti mape",
- "Error deleting file." : "Napaka brisanja datoteke.",
"No entries in this folder match '{filter}'" : "Ni zadetkov, ki bi bili skladni z nizom '{filter}'",
"Name" : "Ime",
"Size" : "Velikost",
@@ -69,7 +55,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["se sklada s filtrom '{filter}'","se skladata s filtrom '{filter}'","se skladajo s filtrom '{filter}'","se skladajo s filtrom '{filter}'"],
"Favorited" : "Označeno kot priljubljeno",
"Favorite" : "Priljubljene",
- "Text file" : "Besedilna datoteka",
"Folder" : "Mapa",
"New folder" : "Nova mapa",
"Upload" : "Pošlji",
@@ -88,8 +73,6 @@
"%2$s deleted %1$s" : "%2$s je izbrisal %1$s",
"You restored %1$s" : "Obnovljen je predmet %1$s",
"%2$s restored %1$s" : "Uporabnik %2$s je obnovil predmet %1$s.",
- "%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.",
- "%s could not be renamed" : "%s ni mogoče preimenovati",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"File handling" : "Upravljanje z datotekami",
"Maximum upload size" : "Največja velikost za pošiljanja",
@@ -108,6 +91,7 @@
"Files are being scanned, please wait." : "Poteka preučevanje datotek, počakajte ...",
"Currently scanning" : "Poteka preverjanje",
"No favorites" : "Ni priljubljenih",
- "Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo izpisane tukaj."
+ "Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo izpisane tukaj.",
+ "Text file" : "Besedilna datoteka"
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 5f0b3a8c936..6811dc5791f 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Pa depozitë gati",
"Storage invalid" : "Depozitë e pavlefshme",
"Unknown error" : "Gabim i panjohur",
- "Could not move %s - File with this name already exists" : "S’u zhvendos dot %s - Ka tashmë kartelë me këtë",
- "Could not move %s" : "S’u zhvendos dot %s",
- "Permission denied" : "Leje e mohuar",
- "The target folder has been moved or deleted." : "Dosja vendmbërritje është zhvendosur ose fshirë.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Emri %s tashmë është i përdorur në dosjen %s. Ju lutemi, zgjidhni një emër tjetër.",
- "Error when creating the file" : "Gabim gjatë krijimit të kartelës",
- "Error when creating the folder" : "Gabim gjatë krijimit të dosjes",
"Unable to set upload directory." : "S’arrihet të caktohet drejtori ngarkimesh",
"Invalid Token" : "Token i pavlefshëm",
"No file was uploaded. Unknown error" : "S’u ngarkua ndonjë kartelë. Gabim i panjohur",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Mungon një dosje e përkohshme",
"Failed to write to disk" : "Dështoi shkrimi në disk",
"Not enough storage available" : "S’ka depozitë të mjaftueshme",
+ "The target folder has been moved or deleted." : "Dosja vendmbërritje është zhvendosur ose fshirë.",
"Upload failed. Could not find uploaded file" : "Ngarkimi dështoi. S’u gjet dot kartela e ngarkuar",
"Upload failed. Could not get file info." : "Ngarkoi dështoi. S’u morën dot të dhëna kartele.",
"Invalid directory." : "Drejtori e pavlefshme.",
@@ -46,14 +40,17 @@ OC.L10N.register(
"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",
- "Error moving file." : "Gabim në lëvizjen e kartelës.",
- "Error moving file" : "Gabim në lëvizjen e kartelës",
- "Error" : "Gabim",
- "{new_name} already exists" : "{new_name} ekziston tashmtë",
- "Could not rename file" : "Kartela s’u riemërtua dot",
- "Could not create file" : "Kartela s’u krijua dot",
- "Could not create folder" : "Dosja s’u krijua dot",
- "Error deleting file." : "Gabim gjatë fshirjes së kartelës.",
+ "Could not move \"{file}\", target exists" : "S’u lëviz dot \"{file}\", objektivi ekziston",
+ "Could not move \"{file}\"" : "S’u lëviz dot \"{file}\"",
+ "{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}\"" : "S’u krijua dot dosja \"{dir}\"",
+ "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 entries in this folder match '{filter}'" : "Në këtë dosje s’ka zëra me përputhje me '{filter}'",
"Name" : "Emër",
"Size" : "Madhësi",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajte"],
"Favorited" : "U kalua e parapëlqyer",
"Favorite" : "E parapëlqyer",
- "Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt",
"Folder" : "Dosje",
"New folder" : "Dosje e re",
"{newname} already exists" : "Ka tashmë një {newname}",
@@ -99,8 +94,6 @@ OC.L10N.register(
"Changed by %2$s" : "Ndryshuar nga %2$s",
"Deleted by %2$s" : "Fshirë nga %2$s",
"Restored by %2$s" : "Rikthyer nga %2$s",
- "%s could not be renamed as it has been deleted" : "%s s’riemërtohet dot, sepse është fshirë",
- "%s could not be renamed" : "%s s’riemërtohet dot",
"Upload (max. %s)" : "Ngarkim (max. %s)",
"File handling" : "Trajtim kartele",
"Maximum upload size" : "Madhësi maksimale ngarkimi",
@@ -121,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Kartelat po kontrollohen, ju lutemi, pritni.",
"Currently scanning" : "Po kontrollohet",
"No favorites" : "Pa të parapëlqyera",
- "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"
+ "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",
+ "Text file" : "Kartelë tekst",
+ "New text file.txt" : "Kartelë e re file.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index fceac2c5376..45b9d6acb61 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -2,13 +2,6 @@
"Storage not available" : "Pa depozitë gati",
"Storage invalid" : "Depozitë e pavlefshme",
"Unknown error" : "Gabim i panjohur",
- "Could not move %s - File with this name already exists" : "S’u zhvendos dot %s - Ka tashmë kartelë me këtë",
- "Could not move %s" : "S’u zhvendos dot %s",
- "Permission denied" : "Leje e mohuar",
- "The target folder has been moved or deleted." : "Dosja vendmbërritje është zhvendosur ose fshirë.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Emri %s tashmë është i përdorur në dosjen %s. Ju lutemi, zgjidhni një emër tjetër.",
- "Error when creating the file" : "Gabim gjatë krijimit të kartelës",
- "Error when creating the folder" : "Gabim gjatë krijimit të dosjes",
"Unable to set upload directory." : "S’arrihet të caktohet drejtori ngarkimesh",
"Invalid Token" : "Token i pavlefshëm",
"No file was uploaded. Unknown error" : "S’u ngarkua ndonjë kartelë. Gabim i panjohur",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Mungon një dosje e përkohshme",
"Failed to write to disk" : "Dështoi shkrimi në disk",
"Not enough storage available" : "S’ka depozitë të mjaftueshme",
+ "The target folder has been moved or deleted." : "Dosja vendmbërritje është zhvendosur ose fshirë.",
"Upload failed. Could not find uploaded file" : "Ngarkimi dështoi. S’u gjet dot kartela e ngarkuar",
"Upload failed. Could not get file info." : "Ngarkoi dështoi. S’u morën dot të dhëna kartele.",
"Invalid directory." : "Drejtori e pavlefshme.",
@@ -44,14 +38,17 @@
"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",
- "Error moving file." : "Gabim në lëvizjen e kartelës.",
- "Error moving file" : "Gabim në lëvizjen e kartelës",
- "Error" : "Gabim",
- "{new_name} already exists" : "{new_name} ekziston tashmtë",
- "Could not rename file" : "Kartela s’u riemërtua dot",
- "Could not create file" : "Kartela s’u krijua dot",
- "Could not create folder" : "Dosja s’u krijua dot",
- "Error deleting file." : "Gabim gjatë fshirjes së kartelës.",
+ "Could not move \"{file}\", target exists" : "S’u lëviz dot \"{file}\", objektivi ekziston",
+ "Could not move \"{file}\"" : "S’u lëviz dot \"{file}\"",
+ "{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}\"" : "S’u krijua dot dosja \"{dir}\"",
+ "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 entries in this folder match '{filter}'" : "Në këtë dosje s’ka zëra me përputhje me '{filter}'",
"Name" : "Emër",
"Size" : "Madhësi",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajte"],
"Favorited" : "U kalua e parapëlqyer",
"Favorite" : "E parapëlqyer",
- "Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt",
"Folder" : "Dosje",
"New folder" : "Dosje e re",
"{newname} already exists" : "Ka tashmë një {newname}",
@@ -97,8 +92,6 @@
"Changed by %2$s" : "Ndryshuar nga %2$s",
"Deleted by %2$s" : "Fshirë nga %2$s",
"Restored by %2$s" : "Rikthyer nga %2$s",
- "%s could not be renamed as it has been deleted" : "%s s’riemërtohet dot, sepse është fshirë",
- "%s could not be renamed" : "%s s’riemërtohet dot",
"Upload (max. %s)" : "Ngarkim (max. %s)",
"File handling" : "Trajtim kartele",
"Maximum upload size" : "Madhësi maksimale ngarkimi",
@@ -119,6 +112,8 @@
"Files are being scanned, please wait." : "Kartelat po kontrollohen, ju lutemi, pritni.",
"Currently scanning" : "Po kontrollohet",
"No favorites" : "Pa të parapëlqyera",
- "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"
+ "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",
+ "Text file" : "Kartelë tekst",
+ "New text file.txt" : "Kartelë e re file.txt"
},"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 289b7dd432c..80f81b1e028 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Складиште није доступно",
"Storage invalid" : "Неисправно складиште",
"Unknown error" : "Непозната грешка",
- "Could not move %s - File with this name already exists" : "Не могу да преместим %s – фајл са овим називом већ постоји",
- "Could not move %s" : "Не могу да преместим %s",
- "Permission denied" : "Приступ одбијен",
- "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Назив %s се већ користи у фасцикли %s. Одредите други назив.",
- "Error when creating the file" : "Грешка при стварању фајла",
- "Error when creating the folder" : "Грешка при стварању фајла",
"Unable to set upload directory." : "Не могу да поставим директоријум за отпремање.",
"Invalid Token" : "Неисправан токен",
"No file was uploaded. Unknown error" : "Ниједан фајл није отпремљен. Непозната грешка",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Недостаје привремена фасцикла",
"Failed to write to disk" : "Не могу да пишем на диск",
"Not enough storage available" : "Нема довољно простора",
+ "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.",
"Upload failed. Could not find uploaded file" : "Неуспешно отпремање. Не могу да нађем отпремљени фајл",
"Upload failed. Could not get file info." : "Неуспешно отпремање. Не могу да добијем податке о фајлу.",
"Invalid directory." : "Неисправна фасцикла.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Не могу да одредим датум",
"This operation is forbidden" : "Ова радња је забрањена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора",
- "Error moving file." : "Грешка при премештању фајла.",
- "Error moving file" : "Грешка при премештању фајла",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} већ постоји",
- "Could not rename file" : "Не могу да преименујем фајл",
- "Could not create file" : "Не могу да створим фајл",
- "Could not create folder" : "Не могу да створим фасциклу",
- "Error deleting file." : "Грешка при брисању фајла.",
"No entries in this folder match '{filter}'" : "У овој фасцикли ништа се не поклапа са '{filter}'",
"Name" : "Назив",
"Size" : "Величина",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајта"],
"Favorited" : "Омиљено",
"Favorite" : "Омиљени",
- "Text file" : "текстуални фајл",
- "New text file.txt" : "Нов текстуални фајл.txt",
"Folder" : "фасцикла",
"New folder" : "Нова фасцикла",
"{newname} already exists" : "{newname} већ постоји",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "Изменио %2$s",
"Deleted by %2$s" : "Обрисао %2$s",
"Restored by %2$s" : "Повратио %2$s",
- "%s could not be renamed as it has been deleted" : "%s се не може преименовати јер је обрисан",
- "%s could not be renamed" : "%s се не може преименовати",
"Upload (max. %s)" : "Отпремање (макс. %s)",
"File handling" : "Руковање фајловима",
"Maximum upload size" : "Највећа величина отпремања",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Скенирам фајлове, сачекајте.",
"Currently scanning" : "Тренутно скенирам",
"No favorites" : "Нема омиљених",
- "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде"
+ "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде",
+ "Text file" : "текстуални фајл",
+ "New text file.txt" : "Нов текстуални фајл.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/sr.json b/apps/files/l10n/sr.json
index 60457925962..f878b9c14d4 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -2,13 +2,6 @@
"Storage not available" : "Складиште није доступно",
"Storage invalid" : "Неисправно складиште",
"Unknown error" : "Непозната грешка",
- "Could not move %s - File with this name already exists" : "Не могу да преместим %s – фајл са овим називом већ постоји",
- "Could not move %s" : "Не могу да преместим %s",
- "Permission denied" : "Приступ одбијен",
- "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Назив %s се већ користи у фасцикли %s. Одредите други назив.",
- "Error when creating the file" : "Грешка при стварању фајла",
- "Error when creating the folder" : "Грешка при стварању фајла",
"Unable to set upload directory." : "Не могу да поставим директоријум за отпремање.",
"Invalid Token" : "Неисправан токен",
"No file was uploaded. Unknown error" : "Ниједан фајл није отпремљен. Непозната грешка",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Недостаје привремена фасцикла",
"Failed to write to disk" : "Не могу да пишем на диск",
"Not enough storage available" : "Нема довољно простора",
+ "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.",
"Upload failed. Could not find uploaded file" : "Неуспешно отпремање. Не могу да нађем отпремљени фајл",
"Upload failed. Could not get file info." : "Неуспешно отпремање. Не могу да добијем податке о фајлу.",
"Invalid directory." : "Неисправна фасцикла.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Не могу да одредим датум",
"This operation is forbidden" : "Ова радња је забрањена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора",
- "Error moving file." : "Грешка при премештању фајла.",
- "Error moving file" : "Грешка при премештању фајла",
- "Error" : "Грешка",
- "{new_name} already exists" : "{new_name} већ постоји",
- "Could not rename file" : "Не могу да преименујем фајл",
- "Could not create file" : "Не могу да створим фајл",
- "Could not create folder" : "Не могу да створим фасциклу",
- "Error deleting file." : "Грешка при брисању фајла.",
"No entries in this folder match '{filter}'" : "У овој фасцикли ништа се не поклапа са '{filter}'",
"Name" : "Назив",
"Size" : "Величина",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајта"],
"Favorited" : "Омиљено",
"Favorite" : "Омиљени",
- "Text file" : "текстуални фајл",
- "New text file.txt" : "Нов текстуални фајл.txt",
"Folder" : "фасцикла",
"New folder" : "Нова фасцикла",
"{newname} already exists" : "{newname} већ постоји",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "Изменио %2$s",
"Deleted by %2$s" : "Обрисао %2$s",
"Restored by %2$s" : "Повратио %2$s",
- "%s could not be renamed as it has been deleted" : "%s се не може преименовати јер је обрисан",
- "%s could not be renamed" : "%s се не може преименовати",
"Upload (max. %s)" : "Отпремање (макс. %s)",
"File handling" : "Руковање фајловима",
"Maximum upload size" : "Највећа величина отпремања",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "Скенирам фајлове, сачекајте.",
"Currently scanning" : "Тренутно скенирам",
"No favorites" : "Нема омиљених",
- "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде"
+ "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде",
+ "Text file" : "текстуални фајл",
+ "New text file.txt" : "Нов текстуални фајл.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/sr@latin.js b/apps/files/l10n/sr@latin.js
index 2907018adfb..d7017005a17 100644
--- a/apps/files/l10n/sr@latin.js
+++ b/apps/files/l10n/sr@latin.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Skladište nije dostupno",
"Storage invalid" : "Neispravno skladište",
"Unknown error" : "Nepoznata greška",
- "Could not move %s - File with this name already exists" : "Ne mogu da premestim %s – fajl sa ovim nazivom već postoji",
- "Could not move %s" : "Ne mogu da premestim %s",
- "Permission denied" : "Pristup odbijen",
- "The target folder has been moved or deleted." : "Odredišna fascikla je premeštena ili obrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s se već koristi u fascikli %s. Odredite drugi naziv.",
- "Error when creating the file" : "Greška pri stvaranju fajla",
- "Error when creating the folder" : "Greška pri stvaranju fajla",
"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",
@@ -22,6 +15,7 @@ OC.L10N.register(
"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.",
@@ -43,14 +37,6 @@ OC.L10N.register(
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Ne mogu da odredim datum",
- "Error moving file." : "Greška pri premeštanju fajla.",
- "Error moving file" : "Greška pri premeštanju fajla",
- "Error" : "Greška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Ne mogu da preimenujem fajl",
- "Could not create file" : "Ne mogu da stvorim fajl",
- "Could not create folder" : "Ne mogu da stvorim fasciklu",
- "Error deleting file." : "Greška pri brisanju fajla.",
"No entries in this folder match '{filter}'" : "U ovoj fascikli ništa se ne poklapa sa '{filter}'",
"Name" : "Naziv",
"Size" : "Veličina",
@@ -68,7 +54,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["se poklapa sa '{filter}'","se poklapaju sa '{filter}'","se poklapa sa '{filter}'"],
"Favorited" : "Omiljeno",
"Favorite" : "Omiljeni",
- "Text file" : "tekstualni fajl",
"Folder" : "fascikla",
"New folder" : "Nova fascikla",
"Upload" : "Otpremi",
@@ -87,8 +72,6 @@ OC.L10N.register(
"%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",
- "%s could not be renamed as it has been deleted" : "%s se ne može preimenovati jer je obrisan",
- "%s could not be renamed" : "%s se ne može preimenovati",
"Upload (max. %s)" : "Otpremanje (maks. %s)",
"File handling" : "Rukovanje fajlovima",
"Maximum upload size" : "Najveća veličina otpremanja",
@@ -107,6 +90,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Skeniram fajlove, sačekajte.",
"Currently scanning" : "Trenutno skeniram",
"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"
+ "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
index 7026569e117..98356e441d6 100644
--- a/apps/files/l10n/sr@latin.json
+++ b/apps/files/l10n/sr@latin.json
@@ -2,13 +2,6 @@
"Storage not available" : "Skladište nije dostupno",
"Storage invalid" : "Neispravno skladište",
"Unknown error" : "Nepoznata greška",
- "Could not move %s - File with this name already exists" : "Ne mogu da premestim %s – fajl sa ovim nazivom već postoji",
- "Could not move %s" : "Ne mogu da premestim %s",
- "Permission denied" : "Pristup odbijen",
- "The target folder has been moved or deleted." : "Odredišna fascikla je premeštena ili obrisana.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s se već koristi u fascikli %s. Odredite drugi naziv.",
- "Error when creating the file" : "Greška pri stvaranju fajla",
- "Error when creating the folder" : "Greška pri stvaranju fajla",
"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",
@@ -20,6 +13,7 @@
"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.",
@@ -41,14 +35,6 @@
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Ne mogu da odredim datum",
- "Error moving file." : "Greška pri premeštanju fajla.",
- "Error moving file" : "Greška pri premeštanju fajla",
- "Error" : "Greška",
- "{new_name} already exists" : "{new_name} već postoji",
- "Could not rename file" : "Ne mogu da preimenujem fajl",
- "Could not create file" : "Ne mogu da stvorim fajl",
- "Could not create folder" : "Ne mogu da stvorim fasciklu",
- "Error deleting file." : "Greška pri brisanju fajla.",
"No entries in this folder match '{filter}'" : "U ovoj fascikli ništa se ne poklapa sa '{filter}'",
"Name" : "Naziv",
"Size" : "Veličina",
@@ -66,7 +52,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["se poklapa sa '{filter}'","se poklapaju sa '{filter}'","se poklapa sa '{filter}'"],
"Favorited" : "Omiljeno",
"Favorite" : "Omiljeni",
- "Text file" : "tekstualni fajl",
"Folder" : "fascikla",
"New folder" : "Nova fascikla",
"Upload" : "Otpremi",
@@ -85,8 +70,6 @@
"%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",
- "%s could not be renamed as it has been deleted" : "%s se ne može preimenovati jer je obrisan",
- "%s could not be renamed" : "%s se ne može preimenovati",
"Upload (max. %s)" : "Otpremanje (maks. %s)",
"File handling" : "Rukovanje fajlovima",
"Maximum upload size" : "Najveća veličina otpremanja",
@@ -105,6 +88,7 @@
"Files are being scanned, please wait." : "Skeniram fajlove, sačekajte.",
"Currently scanning" : "Trenutno skeniram",
"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"
+ "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/sv.js b/apps/files/l10n/sv.js
index 58f6d76c29e..f5e81760b0f 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Lagring inte tillgänglig",
"Storage invalid" : "Lagring ogiltig",
"Unknown error" : "Okänt fel",
- "Could not move %s - File with this name already exists" : "Kunde inte flytta %s - Det finns redan en fil med detta namn",
- "Could not move %s" : "Kan inte flytta %s",
- "Permission denied" : "Behörighet nekad.",
- "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Namnet %s används redan i katalogen %s. Välj ett annat namn.",
- "Error when creating the file" : "Fel under skapande utav filen",
- "Error when creating the folder" : "Fel under skapande utav en katalog",
"Unable to set upload directory." : "Kan inte sätta mapp för uppladdning.",
"Invalid Token" : "Ogiltig token",
"No file was uploaded. Unknown error" : "Ingen fil uppladdad. Okänt fel",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "En temporär mapp saknas",
"Failed to write to disk" : "Misslyckades spara till disk",
"Not enough storage available" : "Inte tillräckligt med lagringsutrymme tillgängligt",
+ "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.",
"Upload failed. Could not find uploaded file" : "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen",
"Upload failed. Could not get file info." : "Uppladdning misslyckades. Gick inte att hämta filinformation.",
"Invalid directory." : "Felaktig mapp.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Misslyckades avgöra datum",
"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",
- "Error moving file." : "Fel vid flytt av fil.",
- "Error moving file" : "Fel uppstod vid flyttning av fil",
- "Error" : "Fel",
- "{new_name} already exists" : "{new_name} finns redan",
- "Could not rename file" : "Kan ej byta filnamn",
- "Could not create file" : "Kunde ej skapa fil",
- "Could not create folder" : "Kunde ej skapa katalog",
- "Error deleting file." : "Kunde inte ta bort filen.",
"No entries in this folder match '{filter}'" : "Inga poster i denna mapp match \"{filter}\"",
"Name" : "Namn",
"Size" : "Storlek",
@@ -73,8 +59,6 @@ OC.L10N.register(
"Path" : "sökväg",
"Favorited" : "Favoritiserad",
"Favorite" : "Favorit",
- "Text file" : "Textfil",
- "New text file.txt" : "nytextfil.txt",
"Folder" : "Mapp",
"New folder" : "Ny mapp",
"{newname} already exists" : "{newname} existerar redan",
@@ -96,8 +80,6 @@ OC.L10N.register(
"Changed by %2$s" : "Ändrad av %2$s",
"Deleted by %2$s" : "Bortagen av %2$s",
"Restored by %2$s" : "Återställd av %2$s",
- "%s could not be renamed as it has been deleted" : "%s kan inte döpas om eftersom den har raderats",
- "%s could not be renamed" : "%s kunde inte namnändras",
"Upload (max. %s)" : "Ladda upp (max. %s)",
"File handling" : "Filhantering",
"Maximum upload size" : "Maximal storlek att ladda upp",
@@ -116,6 +98,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Filer skannas, var god vänta",
"Currently scanning" : "sökning pågår",
"No favorites" : "Inga favoriter",
- "Files and folders you mark as favorite will show up here" : "Filer och mappar du markerat som favoriter kommer visas här"
+ "Files and folders you mark as favorite will show up here" : "Filer och mappar du markerat som favoriter kommer visas här",
+ "Text file" : "Textfil",
+ "New text file.txt" : "nytextfil.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 35faa25d1a0..c624c34029c 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -2,13 +2,6 @@
"Storage not available" : "Lagring inte tillgänglig",
"Storage invalid" : "Lagring ogiltig",
"Unknown error" : "Okänt fel",
- "Could not move %s - File with this name already exists" : "Kunde inte flytta %s - Det finns redan en fil med detta namn",
- "Could not move %s" : "Kan inte flytta %s",
- "Permission denied" : "Behörighet nekad.",
- "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Namnet %s används redan i katalogen %s. Välj ett annat namn.",
- "Error when creating the file" : "Fel under skapande utav filen",
- "Error when creating the folder" : "Fel under skapande utav en katalog",
"Unable to set upload directory." : "Kan inte sätta mapp för uppladdning.",
"Invalid Token" : "Ogiltig token",
"No file was uploaded. Unknown error" : "Ingen fil uppladdad. Okänt fel",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "En temporär mapp saknas",
"Failed to write to disk" : "Misslyckades spara till disk",
"Not enough storage available" : "Inte tillräckligt med lagringsutrymme tillgängligt",
+ "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.",
"Upload failed. Could not find uploaded file" : "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen",
"Upload failed. Could not get file info." : "Uppladdning misslyckades. Gick inte att hämta filinformation.",
"Invalid directory." : "Felaktig mapp.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Misslyckades avgöra datum",
"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",
- "Error moving file." : "Fel vid flytt av fil.",
- "Error moving file" : "Fel uppstod vid flyttning av fil",
- "Error" : "Fel",
- "{new_name} already exists" : "{new_name} finns redan",
- "Could not rename file" : "Kan ej byta filnamn",
- "Could not create file" : "Kunde ej skapa fil",
- "Could not create folder" : "Kunde ej skapa katalog",
- "Error deleting file." : "Kunde inte ta bort filen.",
"No entries in this folder match '{filter}'" : "Inga poster i denna mapp match \"{filter}\"",
"Name" : "Namn",
"Size" : "Storlek",
@@ -71,8 +57,6 @@
"Path" : "sökväg",
"Favorited" : "Favoritiserad",
"Favorite" : "Favorit",
- "Text file" : "Textfil",
- "New text file.txt" : "nytextfil.txt",
"Folder" : "Mapp",
"New folder" : "Ny mapp",
"{newname} already exists" : "{newname} existerar redan",
@@ -94,8 +78,6 @@
"Changed by %2$s" : "Ändrad av %2$s",
"Deleted by %2$s" : "Bortagen av %2$s",
"Restored by %2$s" : "Återställd av %2$s",
- "%s could not be renamed as it has been deleted" : "%s kan inte döpas om eftersom den har raderats",
- "%s could not be renamed" : "%s kunde inte namnändras",
"Upload (max. %s)" : "Ladda upp (max. %s)",
"File handling" : "Filhantering",
"Maximum upload size" : "Maximal storlek att ladda upp",
@@ -114,6 +96,8 @@
"Files are being scanned, please wait." : "Filer skannas, var god vänta",
"Currently scanning" : "sökning pågår",
"No favorites" : "Inga favoriter",
- "Files and folders you mark as favorite will show up here" : "Filer och mappar du markerat som favoriter kommer visas här"
+ "Files and folders you mark as favorite will show up here" : "Filer och mappar du markerat som favoriter kommer visas här",
+ "Text file" : "Textfil",
+ "New text file.txt" : "nytextfil.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ta_LK.js b/apps/files/l10n/ta_LK.js
index 3b287a94725..39a3eda73fe 100644
--- a/apps/files/l10n/ta_LK.js
+++ b/apps/files/l10n/ta_LK.js
@@ -21,14 +21,11 @@ OC.L10N.register(
"Details" : "விவரங்கள்",
"Select" : "தெரிக",
"Pending" : "நிலுவையிலுள்ள",
- "Error" : "வழு",
- "{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
"Name" : "பெயர்",
"Size" : "அளவு",
"Modified" : "மாற்றப்பட்டது",
"New" : "புதிய",
"Favorite" : "விருப்பமான",
- "Text file" : "கோப்பு உரை",
"Folder" : "கோப்புறை",
"Upload" : "பதிவேற்றுக",
"File handling" : "கோப்பு கையாளுதல்",
@@ -39,6 +36,7 @@ OC.L10N.register(
"Cancel upload" : "பதிவேற்றலை இரத்து செய்க",
"Upload too large" : "பதிவேற்றல் மிகப்பெரியது",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.",
- "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்."
+ "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்.",
+ "Text file" : "கோப்பு உரை"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ta_LK.json b/apps/files/l10n/ta_LK.json
index 8da783d48d3..009ef6c7a8e 100644
--- a/apps/files/l10n/ta_LK.json
+++ b/apps/files/l10n/ta_LK.json
@@ -19,14 +19,11 @@
"Details" : "விவரங்கள்",
"Select" : "தெரிக",
"Pending" : "நிலுவையிலுள்ள",
- "Error" : "வழு",
- "{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
"Name" : "பெயர்",
"Size" : "அளவு",
"Modified" : "மாற்றப்பட்டது",
"New" : "புதிய",
"Favorite" : "விருப்பமான",
- "Text file" : "கோப்பு உரை",
"Folder" : "கோப்புறை",
"Upload" : "பதிவேற்றுக",
"File handling" : "கோப்பு கையாளுதல்",
@@ -37,6 +34,7 @@
"Cancel upload" : "பதிவேற்றலை இரத்து செய்க",
"Upload too large" : "பதிவேற்றல் மிகப்பெரியது",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.",
- "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்."
+ "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்.",
+ "Text file" : "கோப்பு உரை"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/te.js b/apps/files/l10n/te.js
index 9badfac3532..a41177c95f0 100644
--- a/apps/files/l10n/te.js
+++ b/apps/files/l10n/te.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Close" : "మూసివేయి",
"Delete" : "తొలగించు",
- "Error" : "పొరపాటు",
"Name" : "పేరు",
"Size" : "పరిమాణం",
"Folder" : "సంచయం",
diff --git a/apps/files/l10n/te.json b/apps/files/l10n/te.json
index 21d09484cd8..6fa2afe050b 100644
--- a/apps/files/l10n/te.json
+++ b/apps/files/l10n/te.json
@@ -1,7 +1,6 @@
{ "translations": {
"Close" : "మూసివేయి",
"Delete" : "తొలగించు",
- "Error" : "పొరపాటు",
"Name" : "పేరు",
"Size" : "పరిమాణం",
"Folder" : "సంచయం",
diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js
index 79747b68ee9..5812df14755 100644
--- a/apps/files/l10n/th_TH.js
+++ b/apps/files/l10n/th_TH.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "ไม่สามารถใช้พื้นที่จัดเก็บข้อมูลได้",
"Storage invalid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
"Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
- "Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว",
- "Could not move %s" : "ไม่สามารถย้าย %s ได้",
- "Permission denied" : "ไม่อนุญาต",
- "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
- "The name %s is already used in the folder %s. Please choose a different name." : "ชื่อ %s ถูกใช้ไปแล้วในโฟลเดอร์ %s โปรดเลือกชื่ออื่นที่แตกต่างกัน",
- "Error when creating the file" : "เกิดข้อผิดพลาดเมื่อมีการสร้างไฟล์",
- "Error when creating the folder" : "เกิดข้อผิดพลาดเมื่อมีการสร้างโฟลเดอร์",
"Unable to set upload directory." : "ไม่สามารถตั้งค่าอัพโหลดไดเรกทอรี",
"Invalid Token" : "โทเค็นไม่ถูกต้อง",
"No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
+ "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
"Upload failed. Could not find uploaded file" : "อัพโหลดล้มเหลว ไม่สามารถหาไฟล์ที่จะอัพโหลด",
"Upload failed. Could not get file info." : "อัพโหลดล้มเหลว ไม่สามารถรับข้อมูลไฟล์",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "ไม่สามารถกำหนดวัน",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
"This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
- "Error moving file." : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
- "Error moving file" : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
- "Error" : "ข้อผิดพลาด",
- "{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
- "Could not rename file" : "ไม่สามารถเปลี่ยนชื่อไฟล์",
- "Could not create file" : "ไม่สามารถสร้างไฟล์",
- "Could not create folder" : "ไม่สามารถสร้างโฟลเดอร์",
- "Error deleting file." : "เกิดข้อผิดพลาดในการลบไฟล์",
"No entries in this folder match '{filter}'" : "ไม่มีรายการในโฟลเดอร์นี้ที่ตรงกับ '{filter}'",
"Name" : "ชื่อ",
"Size" : "ขนาด",
@@ -97,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "เปลี่ยนแปลงโดย %2$s",
"Deleted by %2$s" : "ลบโดย %2$s",
"Restored by %2$s" : "กู้คืนโดย %2$s",
- "%s could not be renamed as it has been deleted" : "%s ไม่สามารถเปลี่ยนชื่อเนื่องจากถูกลบไปแล้ว",
- "%s could not be renamed" : "%s ไม่สามารถเปลี่ยนชื่อ",
"Upload (max. %s)" : "อัพโหลด (สูงสุด %s)",
"File handling" : "การจัดการไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json
index 327e2d9eb82..93f6c5c8d2d 100644
--- a/apps/files/l10n/th_TH.json
+++ b/apps/files/l10n/th_TH.json
@@ -2,13 +2,6 @@
"Storage not available" : "ไม่สามารถใช้พื้นที่จัดเก็บข้อมูลได้",
"Storage invalid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
"Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
- "Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว",
- "Could not move %s" : "ไม่สามารถย้าย %s ได้",
- "Permission denied" : "ไม่อนุญาต",
- "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
- "The name %s is already used in the folder %s. Please choose a different name." : "ชื่อ %s ถูกใช้ไปแล้วในโฟลเดอร์ %s โปรดเลือกชื่ออื่นที่แตกต่างกัน",
- "Error when creating the file" : "เกิดข้อผิดพลาดเมื่อมีการสร้างไฟล์",
- "Error when creating the folder" : "เกิดข้อผิดพลาดเมื่อมีการสร้างโฟลเดอร์",
"Unable to set upload directory." : "ไม่สามารถตั้งค่าอัพโหลดไดเรกทอรี",
"Invalid Token" : "โทเค็นไม่ถูกต้อง",
"No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
+ "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
"Upload failed. Could not find uploaded file" : "อัพโหลดล้มเหลว ไม่สามารถหาไฟล์ที่จะอัพโหลด",
"Upload failed. Could not get file info." : "อัพโหลดล้มเหลว ไม่สามารถรับข้อมูลไฟล์",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
@@ -44,14 +38,6 @@
"Unable to determine date" : "ไม่สามารถกำหนดวัน",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
"This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
- "Error moving file." : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
- "Error moving file" : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
- "Error" : "ข้อผิดพลาด",
- "{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
- "Could not rename file" : "ไม่สามารถเปลี่ยนชื่อไฟล์",
- "Could not create file" : "ไม่สามารถสร้างไฟล์",
- "Could not create folder" : "ไม่สามารถสร้างโฟลเดอร์",
- "Error deleting file." : "เกิดข้อผิดพลาดในการลบไฟล์",
"No entries in this folder match '{filter}'" : "ไม่มีรายการในโฟลเดอร์นี้ที่ตรงกับ '{filter}'",
"Name" : "ชื่อ",
"Size" : "ขนาด",
@@ -95,8 +81,6 @@
"Changed by %2$s" : "เปลี่ยนแปลงโดย %2$s",
"Deleted by %2$s" : "ลบโดย %2$s",
"Restored by %2$s" : "กู้คืนโดย %2$s",
- "%s could not be renamed as it has been deleted" : "%s ไม่สามารถเปลี่ยนชื่อเนื่องจากถูกลบไปแล้ว",
- "%s could not be renamed" : "%s ไม่สามารถเปลี่ยนชื่อ",
"Upload (max. %s)" : "อัพโหลด (สูงสุด %s)",
"File handling" : "การจัดการไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index e95f458b304..d0c68861518 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Depolama mevcut değil",
"Storage invalid" : "Depolama geçersiz",
"Unknown error" : "Bilinmeyen hata",
- "Could not move %s - File with this name already exists" : "%s taşınamadı. Bu isimde dosya zaten mevcut",
- "Could not move %s" : "%s taşınamadı",
- "Permission denied" : "Erişim reddedildi",
- "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.",
- "Error when creating the file" : "Dosya oluşturulurken hata",
- "Error when creating the folder" : "Klasör oluşturulurken hata",
"Unable to set upload directory." : "Yükleme dizini ayarlanamadı.",
"Invalid Token" : "Geçersiz Belirteç",
"No file was uploaded. Unknown error" : "Dosya yüklenmedi. Bilinmeyen hata",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Geçici bir dizin eksik",
"Failed to write to disk" : "Diske yazılamadı",
"Not enough storage available" : "Yeterli disk alanı yok",
+ "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.",
"Upload failed. Could not find uploaded file" : "Yükleme başarısız. Yüklenen dosya bulunamadı",
"Upload failed. Could not get file info." : "Yükleme başarısız. Dosya bilgisi alınamadı.",
"Invalid directory." : "Geçersiz dizin.",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "Tarih tespit edilemedi",
"This operation is forbidden" : "Bu işlem yasak",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
- "Error moving file." : "Dosya taşıma hatası.",
- "Error moving file" : "Dosya taşıma hatası",
- "Error" : "Hata",
- "{new_name} already exists" : "{new_name} zaten mevcut",
- "Could not rename file" : "Dosya adlandırılamadı",
- "Could not create file" : "Dosya oluşturulamadı",
- "Could not create folder" : "Klasör oluşturulamadı",
- "Error deleting file." : "Dosya silinirken hata.",
"No entries in this folder match '{filter}'" : "Bu klasörde hiçbir girdi '{filter}' ile eşleşmiyor",
"Name" : "İsim",
"Size" : "Boyut",
@@ -97,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "%2$s tarafından değiştirildi",
"Deleted by %2$s" : "%2$s tarafından silindi",
"Restored by %2$s" : "%2$s tarafından geri yüklendi",
- "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı",
- "%s could not be renamed" : "%s yeniden adlandırılamadı",
"Upload (max. %s)" : "Yükle (azami: %s)",
"File handling" : "Dosya işlemleri",
"Maximum upload size" : "Azami yükleme boyutu",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 1bcb92501b9..7bc756530dc 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -2,13 +2,6 @@
"Storage not available" : "Depolama mevcut değil",
"Storage invalid" : "Depolama geçersiz",
"Unknown error" : "Bilinmeyen hata",
- "Could not move %s - File with this name already exists" : "%s taşınamadı. Bu isimde dosya zaten mevcut",
- "Could not move %s" : "%s taşınamadı",
- "Permission denied" : "Erişim reddedildi",
- "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.",
- "Error when creating the file" : "Dosya oluşturulurken hata",
- "Error when creating the folder" : "Klasör oluşturulurken hata",
"Unable to set upload directory." : "Yükleme dizini ayarlanamadı.",
"Invalid Token" : "Geçersiz Belirteç",
"No file was uploaded. Unknown error" : "Dosya yüklenmedi. Bilinmeyen hata",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Geçici bir dizin eksik",
"Failed to write to disk" : "Diske yazılamadı",
"Not enough storage available" : "Yeterli disk alanı yok",
+ "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.",
"Upload failed. Could not find uploaded file" : "Yükleme başarısız. Yüklenen dosya bulunamadı",
"Upload failed. Could not get file info." : "Yükleme başarısız. Dosya bilgisi alınamadı.",
"Invalid directory." : "Geçersiz dizin.",
@@ -44,14 +38,6 @@
"Unable to determine date" : "Tarih tespit edilemedi",
"This operation is forbidden" : "Bu işlem yasak",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
- "Error moving file." : "Dosya taşıma hatası.",
- "Error moving file" : "Dosya taşıma hatası",
- "Error" : "Hata",
- "{new_name} already exists" : "{new_name} zaten mevcut",
- "Could not rename file" : "Dosya adlandırılamadı",
- "Could not create file" : "Dosya oluşturulamadı",
- "Could not create folder" : "Klasör oluşturulamadı",
- "Error deleting file." : "Dosya silinirken hata.",
"No entries in this folder match '{filter}'" : "Bu klasörde hiçbir girdi '{filter}' ile eşleşmiyor",
"Name" : "İsim",
"Size" : "Boyut",
@@ -95,8 +81,6 @@
"Changed by %2$s" : "%2$s tarafından değiştirildi",
"Deleted by %2$s" : "%2$s tarafından silindi",
"Restored by %2$s" : "%2$s tarafından geri yüklendi",
- "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı",
- "%s could not be renamed" : "%s yeniden adlandırılamadı",
"Upload (max. %s)" : "Yükle (azami: %s)",
"File handling" : "Dosya işlemleri",
"Maximum upload size" : "Azami yükleme boyutu",
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index 5e179c6e0d1..55985f6a655 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "يوچۇن خاتالىق",
- "Could not move %s" : "%s يۆتكىيەلمەيدۇ",
"No file was uploaded. Unknown error" : "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق",
"No file was uploaded" : "ھېچقانداق ھۆججەت يۈكلەنمىدى",
"Missing a temporary folder" : "ۋاقىتلىق قىسقۇچ كەم.",
@@ -19,14 +18,11 @@ OC.L10N.register(
"Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
"Pending" : "كۈتۈۋاتىدۇ",
- "Error" : "خاتالىق",
- "{new_name} already exists" : "{new_name} مەۋجۇت",
"Name" : "ئاتى",
"Size" : "چوڭلۇقى",
"Modified" : "ئۆزگەرتكەن",
"New" : "يېڭى",
"Favorite" : "يىغقۇچ",
- "Text file" : "تېكىست ھۆججەت",
"Folder" : "قىسقۇچ",
"New folder" : "يېڭى قىسقۇچ",
"Upload" : "يۈكلە",
@@ -34,6 +30,7 @@ OC.L10N.register(
"Settings" : "تەڭشەكلەر",
"WebDAV" : "WebDAV",
"Cancel upload" : "يۈكلەشتىن ۋاز كەچ",
- "Upload too large" : "يۈكلەندىغىنى بەك چوڭ"
+ "Upload too large" : "يۈكلەندىغىنى بەك چوڭ",
+ "Text file" : "تېكىست ھۆججەت"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index 4a4b06b559e..716bf62afb9 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -1,6 +1,5 @@
{ "translations": {
"Unknown error" : "يوچۇن خاتالىق",
- "Could not move %s" : "%s يۆتكىيەلمەيدۇ",
"No file was uploaded. Unknown error" : "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق",
"No file was uploaded" : "ھېچقانداق ھۆججەت يۈكلەنمىدى",
"Missing a temporary folder" : "ۋاقىتلىق قىسقۇچ كەم.",
@@ -17,14 +16,11 @@
"Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
"Pending" : "كۈتۈۋاتىدۇ",
- "Error" : "خاتالىق",
- "{new_name} already exists" : "{new_name} مەۋجۇت",
"Name" : "ئاتى",
"Size" : "چوڭلۇقى",
"Modified" : "ئۆزگەرتكەن",
"New" : "يېڭى",
"Favorite" : "يىغقۇچ",
- "Text file" : "تېكىست ھۆججەت",
"Folder" : "قىسقۇچ",
"New folder" : "يېڭى قىسقۇچ",
"Upload" : "يۈكلە",
@@ -32,6 +28,7 @@
"Settings" : "تەڭشەكلەر",
"WebDAV" : "WebDAV",
"Cancel upload" : "يۈكلەشتىن ۋاز كەچ",
- "Upload too large" : "يۈكلەندىغىنى بەك چوڭ"
+ "Upload too large" : "يۈكلەندىغىنى بەك چوڭ",
+ "Text file" : "تېكىست ھۆججەت"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index fc071f58279..8d43949d8ff 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "Сховище не доступне",
"Storage invalid" : "Неправильне сховище",
"Unknown error" : "Невідома помилка",
- "Could not move %s - File with this name already exists" : "Не вдалося перемістити %s - файл з таким ім'ям вже існує",
- "Could not move %s" : "Не вдалося перемістити %s",
- "Permission denied" : "Доступ заборонено",
- "The target folder has been moved or deleted." : "Теку призначення було переміщено або видалено.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Файл з ім'ям %s вже є у теці %s. Оберіть інше ім'я.",
- "Error when creating the file" : "Помилка створення файлу",
- "Error when creating the folder" : "Помилка створення теки",
"Unable to set upload directory." : "Не вдалося встановити каталог вивантаження.",
"Invalid Token" : "Неприпустимий маркер",
"No file was uploaded. Unknown error" : "Файл не був вивантажений. Невідома помилка",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Відсутній тимчасовий каталог",
"Failed to write to disk" : "Помилка запису на диск",
"Not enough storage available" : "Місця більше немає",
+ "The target folder has been moved or deleted." : "Теку призначення було переміщено або видалено.",
"Upload failed. Could not find uploaded file" : "Вивантаження не вдалося. Неможливо знайти вивантажений файл.",
"Upload failed. Could not get file info." : "Вивантаження не вдалося. Неможливо отримати інформацію про файл.",
"Invalid directory." : "Невірний каталог.",
@@ -45,14 +39,6 @@ OC.L10N.register(
"Pending" : "Очікування",
"Unable to determine date" : "Неможливо визначити дату",
"This operation is forbidden" : "Ця операція заборонена",
- "Error moving file." : "Помилка переміщення файлу.",
- "Error moving file" : "Помилка переміщення файлу",
- "Error" : "Помилка",
- "{new_name} already exists" : "{new_name} вже існує",
- "Could not rename file" : "Неможливо перейменувати файл",
- "Could not create file" : "Не вдалося створити файл",
- "Could not create folder" : "Не вдалося створити теку",
- "Error deleting file." : "Помилка видалення файлу.",
"No entries in this folder match '{filter}'" : "Нічого не знайдено в цій теці '{filter}'",
"Name" : "Ім'я",
"Size" : "Розмір",
@@ -70,7 +56,6 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"Favorited" : "Улюблений",
"Favorite" : "Улюблений",
- "Text file" : "Текстовий файл",
"Folder" : "Тека",
"New folder" : "Нова тека",
"Upload" : "Вивантажити",
@@ -89,8 +74,6 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s видалено %1$s",
"You restored %1$s" : "Вами відновлено %1$s",
"%2$s restored %1$s" : "%2$s відновлено %1$s",
- "%s could not be renamed as it has been deleted" : "%s не можна перейменувати, оскільки його видалено",
- "%s could not be renamed" : "%s не можна перейменувати",
"Upload (max. %s)" : "Вивантаження (макс. %s)",
"File handling" : "Робота з файлами",
"Maximum upload size" : "Максимальний розмір вивантажень",
@@ -109,6 +92,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Файли перевіряються, зачекайте, будь-ласка.",
"Currently scanning" : "Триває перевірка",
"No favorites" : "Немає улюблених",
- "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви позначили як улюблені, з’являться тут"
+ "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви позначили як улюблені, з’являться тут",
+ "Text 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/files/l10n/uk.json b/apps/files/l10n/uk.json
index 651b65df99c..d7381e0cfa7 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -2,13 +2,6 @@
"Storage not available" : "Сховище не доступне",
"Storage invalid" : "Неправильне сховище",
"Unknown error" : "Невідома помилка",
- "Could not move %s - File with this name already exists" : "Не вдалося перемістити %s - файл з таким ім'ям вже існує",
- "Could not move %s" : "Не вдалося перемістити %s",
- "Permission denied" : "Доступ заборонено",
- "The target folder has been moved or deleted." : "Теку призначення було переміщено або видалено.",
- "The name %s is already used in the folder %s. Please choose a different name." : "Файл з ім'ям %s вже є у теці %s. Оберіть інше ім'я.",
- "Error when creating the file" : "Помилка створення файлу",
- "Error when creating the folder" : "Помилка створення теки",
"Unable to set upload directory." : "Не вдалося встановити каталог вивантаження.",
"Invalid Token" : "Неприпустимий маркер",
"No file was uploaded. Unknown error" : "Файл не був вивантажений. Невідома помилка",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "Відсутній тимчасовий каталог",
"Failed to write to disk" : "Помилка запису на диск",
"Not enough storage available" : "Місця більше немає",
+ "The target folder has been moved or deleted." : "Теку призначення було переміщено або видалено.",
"Upload failed. Could not find uploaded file" : "Вивантаження не вдалося. Неможливо знайти вивантажений файл.",
"Upload failed. Could not get file info." : "Вивантаження не вдалося. Неможливо отримати інформацію про файл.",
"Invalid directory." : "Невірний каталог.",
@@ -43,14 +37,6 @@
"Pending" : "Очікування",
"Unable to determine date" : "Неможливо визначити дату",
"This operation is forbidden" : "Ця операція заборонена",
- "Error moving file." : "Помилка переміщення файлу.",
- "Error moving file" : "Помилка переміщення файлу",
- "Error" : "Помилка",
- "{new_name} already exists" : "{new_name} вже існує",
- "Could not rename file" : "Неможливо перейменувати файл",
- "Could not create file" : "Не вдалося створити файл",
- "Could not create folder" : "Не вдалося створити теку",
- "Error deleting file." : "Помилка видалення файлу.",
"No entries in this folder match '{filter}'" : "Нічого не знайдено в цій теці '{filter}'",
"Name" : "Ім'я",
"Size" : "Розмір",
@@ -68,7 +54,6 @@
"_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"Favorited" : "Улюблений",
"Favorite" : "Улюблений",
- "Text file" : "Текстовий файл",
"Folder" : "Тека",
"New folder" : "Нова тека",
"Upload" : "Вивантажити",
@@ -87,8 +72,6 @@
"%2$s deleted %1$s" : "%2$s видалено %1$s",
"You restored %1$s" : "Вами відновлено %1$s",
"%2$s restored %1$s" : "%2$s відновлено %1$s",
- "%s could not be renamed as it has been deleted" : "%s не можна перейменувати, оскільки його видалено",
- "%s could not be renamed" : "%s не можна перейменувати",
"Upload (max. %s)" : "Вивантаження (макс. %s)",
"File handling" : "Робота з файлами",
"Maximum upload size" : "Максимальний розмір вивантажень",
@@ -107,6 +90,7 @@
"Files are being scanned, please wait." : "Файли перевіряються, зачекайте, будь-ласка.",
"Currently scanning" : "Триває перевірка",
"No favorites" : "Немає улюблених",
- "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви позначили як улюблені, з’являться тут"
+ "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви позначили як улюблені, з’являться тут",
+ "Text 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/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js
index 2265e52d771..bac2c3b614b 100644
--- a/apps/files/l10n/ur_PK.js
+++ b/apps/files/l10n/ur_PK.js
@@ -5,7 +5,6 @@ OC.L10N.register(
"Close" : "بند ",
"Download" : "ڈاؤن لوڈ،",
"Delete" : "حذف کریں",
- "Error" : "ایرر",
"Name" : "اسم",
"Save" : "حفظ",
"Settings" : "ترتیبات"
diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json
index e8eb736811c..be36293b913 100644
--- a/apps/files/l10n/ur_PK.json
+++ b/apps/files/l10n/ur_PK.json
@@ -3,7 +3,6 @@
"Close" : "بند ",
"Download" : "ڈاؤن لوڈ،",
"Delete" : "حذف کریں",
- "Error" : "ایرر",
"Name" : "اسم",
"Save" : "حفظ",
"Settings" : "ترتیبات"
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index e51ae0b46f3..4af893ab66a 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -4,11 +4,6 @@ OC.L10N.register(
"Storage not available" : "Lưu trữ không có sẵn",
"Storage invalid" : "Lưu trữ không hợp lệ",
"Unknown error" : "Lỗi chưa biết",
- "Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống",
- "Could not move %s" : "Không thể di chuyển %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "Tên %s đã được sử dụng trong thư mục %s. Hãy chọn tên khác.",
- "Error when creating the file" : "Lỗi khi tạo file",
- "Error when creating the folder" : "Lỗi khi tạo thư mục",
"Unable to set upload directory." : "Không thể thiết lập thư mục tải lên.",
"Invalid Token" : "Xác thực không hợp lệ",
"No file was uploaded. Unknown error" : "Không có tập tin nào được tải lên. Lỗi không xác định",
@@ -38,13 +33,6 @@ OC.L10N.register(
"Details" : "Chi tiết",
"Select" : "Chọn",
"Pending" : "Đang chờ",
- "Error moving file" : "Lỗi di chuyển tập tin",
- "Error" : "Lỗi",
- "{new_name} already exists" : "{new_name} đã tồn tại",
- "Could not rename file" : "Không thể đổi tên file",
- "Could not create file" : "Không thể tạo file",
- "Could not create folder" : "Không thể tạo thư mục",
- "Error deleting file." : "Lỗi xóa file,",
"Name" : "Tên",
"Size" : "Kích cỡ",
"Modified" : "Thay đổi",
@@ -58,11 +46,9 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!",
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"Favorite" : "Ưu thích",
- "Text file" : "Tập tin văn bản",
"Folder" : "Thư mục",
"New folder" : "Tạo thư mục",
"Upload" : "Tải lên",
- "%s could not be renamed" : "%s không thể đổi tên",
"File handling" : "Xử lý tập tin",
"Maximum upload size" : "Kích thước tối đa ",
"max. possible: " : "tối đa cho phép:",
@@ -74,6 +60,7 @@ OC.L10N.register(
"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ủ .",
- "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ."
+ "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ.",
+ "Text file" : "Tập tin văn bản"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index bd6250322de..ebffb827525 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -2,11 +2,6 @@
"Storage not available" : "Lưu trữ không có sẵn",
"Storage invalid" : "Lưu trữ không hợp lệ",
"Unknown error" : "Lỗi chưa biết",
- "Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống",
- "Could not move %s" : "Không thể di chuyển %s",
- "The name %s is already used in the folder %s. Please choose a different name." : "Tên %s đã được sử dụng trong thư mục %s. Hãy chọn tên khác.",
- "Error when creating the file" : "Lỗi khi tạo file",
- "Error when creating the folder" : "Lỗi khi tạo thư mục",
"Unable to set upload directory." : "Không thể thiết lập thư mục tải lên.",
"Invalid Token" : "Xác thực không hợp lệ",
"No file was uploaded. Unknown error" : "Không có tập tin nào được tải lên. Lỗi không xác định",
@@ -36,13 +31,6 @@
"Details" : "Chi tiết",
"Select" : "Chọn",
"Pending" : "Đang chờ",
- "Error moving file" : "Lỗi di chuyển tập tin",
- "Error" : "Lỗi",
- "{new_name} already exists" : "{new_name} đã tồn tại",
- "Could not rename file" : "Không thể đổi tên file",
- "Could not create file" : "Không thể tạo file",
- "Could not create folder" : "Không thể tạo thư mục",
- "Error deleting file." : "Lỗi xóa file,",
"Name" : "Tên",
"Size" : "Kích cỡ",
"Modified" : "Thay đổi",
@@ -56,11 +44,9 @@
"Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!",
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"Favorite" : "Ưu thích",
- "Text file" : "Tập tin văn bản",
"Folder" : "Thư mục",
"New folder" : "Tạo thư mục",
"Upload" : "Tải lên",
- "%s could not be renamed" : "%s không thể đổi tên",
"File handling" : "Xử lý tập tin",
"Maximum upload size" : "Kích thước tối đa ",
"max. possible: " : "tối đa cho phép:",
@@ -72,6 +58,7 @@
"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ủ .",
- "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ."
+ "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ.",
+ "Text file" : "Tập tin văn bản"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index e3f113d82fa..cadbeee3fc3 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "存储空间不可用",
"Storage invalid" : "存储空间无效",
"Unknown error" : "未知错误",
- "Could not move %s - File with this name already exists" : "无法移动 %s - 同名文件已存在",
- "Could not move %s" : "无法移动 %s",
- "Permission denied" : "拒绝访问",
- "The target folder has been moved or deleted." : "目标文件夹已经被移动或删除。",
- "The name %s is already used in the folder %s. Please choose a different name." : "文件名 %s 是已经在 %s 中存在的名称。请使用其他名称。",
- "Error when creating the file" : "创建文件时出错",
- "Error when creating the folder" : "创建文件夹出错",
"Unable to set upload directory." : "无法设置上传文件夹。",
"Invalid Token" : "无效密匙",
"No file was uploaded. Unknown error" : "没有文件被上传。未知错误",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "缺少临时目录",
"Failed to write to disk" : "写入磁盘失败",
"Not enough storage available" : "没有足够的存储空间",
+ "The target folder has been moved or deleted." : "目标文件夹已经被移动或删除。",
"Upload failed. Could not find uploaded file" : "上传失败。未发现上传的文件",
"Upload failed. Could not get file info." : "上传失败。无法获取文件信息。",
"Invalid directory." : "无效文件夹。",
@@ -46,14 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "无法确定日期",
"This operation is forbidden" : "操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
- "Error moving file." : "移动文件出错。",
- "Error moving file" : "移动文件错误",
- "Error" : "错误",
- "{new_name} already exists" : "{new_name} 已存在",
- "Could not rename file" : "不能重命名文件",
- "Could not create file" : "不能创建文件",
- "Could not create folder" : "不能创建文件夹",
- "Error deleting file." : "删除文件出错。",
+ "Could not move \"{file}\", target exists" : "不能移动 \"{file}\",目标已存在。",
+ "Could not move \"{file}\"" : "不能移动 \"{file}\"",
+ "{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}\"" : "不能创建文件夹 \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "不能创建文件夹 \"{dir}\" ,因为它已经存在",
+ "Error deleting file \"{fileName}\"." : "删除文件 \"{fileName}\" 时出错。",
"No entries in this folder match '{filter}'" : "此文件夹中无项目匹配“{filter}”",
"Name" : "名称",
"Size" : "大小",
@@ -75,8 +72,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n 字节"],
"Favorited" : "已收藏",
"Favorite" : "收藏",
- "Text file" : "文本文件",
- "New text file.txt" : "创建文本文件 .txt",
"Folder" : "文件夹",
"New folder" : "增加文件夹",
"{newname} already exists" : "{newname} 已经存在",
@@ -99,13 +94,13 @@ OC.L10N.register(
"Changed by %2$s" : "被 %2$s 更改",
"Deleted by %2$s" : "被 %2$s 删除",
"Restored by %2$s" : "被 %2$s 恢复",
- "%s could not be renamed as it has been deleted" : "%s 已经被删除,无法重命名 ",
- "%s could not be renamed" : "%s 不能被重命名",
"Upload (max. %s)" : "上传 (最大 %s)",
"File handling" : "文件处理",
"Maximum upload size" : "最大上传大小",
"max. possible: " : "最大允许: ",
"Save" : "保存",
+ "With PHP-FPM it might take 5 minutes for changes to be applied." : "对于 PHP-FPM 这个值改变后可能需要 5 分钟才会生效。",
+ "Missing permissions to edit from here." : "没有从这里进行编辑的权限",
"Settings" : "设置",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\">通过 WebDAV 访问您的文件</a>",
@@ -119,6 +114,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "文件正在被扫描,请稍候。",
"Currently scanning" : "正在扫描",
"No favorites" : "无收藏",
- "Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示"
+ "Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示",
+ "Text file" : "文本文件",
+ "New text file.txt" : "创建文本文件 .txt"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index 177be39683c..b2883e5ea1d 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -2,13 +2,6 @@
"Storage not available" : "存储空间不可用",
"Storage invalid" : "存储空间无效",
"Unknown error" : "未知错误",
- "Could not move %s - File with this name already exists" : "无法移动 %s - 同名文件已存在",
- "Could not move %s" : "无法移动 %s",
- "Permission denied" : "拒绝访问",
- "The target folder has been moved or deleted." : "目标文件夹已经被移动或删除。",
- "The name %s is already used in the folder %s. Please choose a different name." : "文件名 %s 是已经在 %s 中存在的名称。请使用其他名称。",
- "Error when creating the file" : "创建文件时出错",
- "Error when creating the folder" : "创建文件夹出错",
"Unable to set upload directory." : "无法设置上传文件夹。",
"Invalid Token" : "无效密匙",
"No file was uploaded. Unknown error" : "没有文件被上传。未知错误",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "缺少临时目录",
"Failed to write to disk" : "写入磁盘失败",
"Not enough storage available" : "没有足够的存储空间",
+ "The target folder has been moved or deleted." : "目标文件夹已经被移动或删除。",
"Upload failed. Could not find uploaded file" : "上传失败。未发现上传的文件",
"Upload failed. Could not get file info." : "上传失败。无法获取文件信息。",
"Invalid directory." : "无效文件夹。",
@@ -44,14 +38,17 @@
"Unable to determine date" : "无法确定日期",
"This operation is forbidden" : "操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
- "Error moving file." : "移动文件出错。",
- "Error moving file" : "移动文件错误",
- "Error" : "错误",
- "{new_name} already exists" : "{new_name} 已存在",
- "Could not rename file" : "不能重命名文件",
- "Could not create file" : "不能创建文件",
- "Could not create folder" : "不能创建文件夹",
- "Error deleting file." : "删除文件出错。",
+ "Could not move \"{file}\", target exists" : "不能移动 \"{file}\",目标已存在。",
+ "Could not move \"{file}\"" : "不能移动 \"{file}\"",
+ "{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}\"" : "不能创建文件夹 \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "不能创建文件夹 \"{dir}\" ,因为它已经存在",
+ "Error deleting file \"{fileName}\"." : "删除文件 \"{fileName}\" 时出错。",
"No entries in this folder match '{filter}'" : "此文件夹中无项目匹配“{filter}”",
"Name" : "名称",
"Size" : "大小",
@@ -73,8 +70,6 @@
"_%n byte_::_%n bytes_" : ["%n 字节"],
"Favorited" : "已收藏",
"Favorite" : "收藏",
- "Text file" : "文本文件",
- "New text file.txt" : "创建文本文件 .txt",
"Folder" : "文件夹",
"New folder" : "增加文件夹",
"{newname} already exists" : "{newname} 已经存在",
@@ -97,13 +92,13 @@
"Changed by %2$s" : "被 %2$s 更改",
"Deleted by %2$s" : "被 %2$s 删除",
"Restored by %2$s" : "被 %2$s 恢复",
- "%s could not be renamed as it has been deleted" : "%s 已经被删除,无法重命名 ",
- "%s could not be renamed" : "%s 不能被重命名",
"Upload (max. %s)" : "上传 (最大 %s)",
"File handling" : "文件处理",
"Maximum upload size" : "最大上传大小",
"max. possible: " : "最大允许: ",
"Save" : "保存",
+ "With PHP-FPM it might take 5 minutes for changes to be applied." : "对于 PHP-FPM 这个值改变后可能需要 5 分钟才会生效。",
+ "Missing permissions to edit from here." : "没有从这里进行编辑的权限",
"Settings" : "设置",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\">通过 WebDAV 访问您的文件</a>",
@@ -117,6 +112,8 @@
"Files are being scanned, please wait." : "文件正在被扫描,请稍候。",
"Currently scanning" : "正在扫描",
"No favorites" : "无收藏",
- "Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示"
+ "Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示",
+ "Text file" : "文本文件",
+ "New text file.txt" : "创建文本文件 .txt"
},"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 3a984b345ce..30b7e75a732 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -9,7 +9,6 @@ OC.L10N.register(
"Download" : "下載",
"Rename" : "重新命名",
"Delete" : "刪除",
- "Error" : "錯誤",
"Name" : "名稱",
"Size" : "大小",
"{dirs} and {files}" : "{dirs} 和 {files}",
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index 8b6572bc376..213997044af 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -7,7 +7,6 @@
"Download" : "下載",
"Rename" : "重新命名",
"Delete" : "刪除",
- "Error" : "錯誤",
"Name" : "名稱",
"Size" : "大小",
"{dirs} and {files}" : "{dirs} 和 {files}",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index c38488d3087..09829db3bcc 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -4,13 +4,6 @@ OC.L10N.register(
"Storage not available" : "無法存取儲存空間",
"Storage invalid" : "無效的儲存空間",
"Unknown error" : "未知的錯誤",
- "Could not move %s - File with this name already exists" : "無法移動 %s ,同名的檔案已經存在",
- "Could not move %s" : "無法移動 %s",
- "Permission denied" : "存取被拒",
- "The target folder has been moved or deleted." : "目標資料夾已經被搬移或刪除",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s 已經被使用於資料夾 %s ,請換一個名字",
- "Error when creating the file" : "建立檔案失敗",
- "Error when creating the folder" : "建立資料夾失敗",
"Unable to set upload directory." : "無法設定上傳目錄",
"Invalid Token" : "無效的 token",
"No file was uploaded. Unknown error" : "沒有檔案被上傳,原因未知",
@@ -22,6 +15,7 @@ OC.L10N.register(
"Missing a temporary folder" : "找不到暫存資料夾",
"Failed to write to disk" : "寫入硬碟失敗",
"Not enough storage available" : "儲存空間不足",
+ "The target folder has been moved or deleted." : "目標資料夾已經被搬移或刪除",
"Upload failed. Could not find uploaded file" : "上傳失敗,找不到上傳的檔案",
"Upload failed. Could not get file info." : "上傳失敗,無法取得檔案資訊",
"Invalid directory." : "無效的資料夾",
@@ -46,14 +40,6 @@ OC.L10N.register(
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此動作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
- "Error moving file." : "移動檔案發生錯誤",
- "Error moving file" : "移動檔案失敗",
- "Error" : "錯誤",
- "{new_name} already exists" : "{new_name} 已經存在",
- "Could not rename file" : "無法重新命名",
- "Could not create file" : "無法建立檔案",
- "Could not create folder" : "無法建立資料夾",
- "Error deleting file." : "刪除檔案發生錯誤",
"No entries in this folder match '{filter}'" : "在此資料夾中沒有項目與 '{filter}' 相符",
"Name" : "名稱",
"Size" : "大小",
@@ -75,8 +61,6 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n 位元組"],
"Favorited" : "已加入最愛",
"Favorite" : "我的最愛",
- "Text file" : "文字檔",
- "New text file.txt" : "新文字檔.txt",
"Folder" : "資料夾",
"New folder" : "新資料夾",
"{newname} already exists" : "{newname} 已經存在",
@@ -99,8 +83,6 @@ OC.L10N.register(
"Changed by %2$s" : "由 %2$s 改動",
"Deleted by %2$s" : "由 %2$s 刪除",
"Restored by %2$s" : "由 %2$s 還原",
- "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名",
- "%s could not be renamed" : "無法重新命名 %s",
"Upload (max. %s)" : "上傳(至多 %s)",
"File handling" : "檔案處理",
"Maximum upload size" : "上傳限制",
@@ -119,6 +101,8 @@ OC.L10N.register(
"Files are being scanned, please wait." : "正在掃描檔案,請稍等",
"Currently scanning" : "正在掃描",
"No favorites" : "沒有最愛",
- "Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡"
+ "Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡",
+ "Text file" : "文字檔",
+ "New text file.txt" : "新文字檔.txt"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 8a408b5ffad..6f2c396ad18 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -2,13 +2,6 @@
"Storage not available" : "無法存取儲存空間",
"Storage invalid" : "無效的儲存空間",
"Unknown error" : "未知的錯誤",
- "Could not move %s - File with this name already exists" : "無法移動 %s ,同名的檔案已經存在",
- "Could not move %s" : "無法移動 %s",
- "Permission denied" : "存取被拒",
- "The target folder has been moved or deleted." : "目標資料夾已經被搬移或刪除",
- "The name %s is already used in the folder %s. Please choose a different name." : "%s 已經被使用於資料夾 %s ,請換一個名字",
- "Error when creating the file" : "建立檔案失敗",
- "Error when creating the folder" : "建立資料夾失敗",
"Unable to set upload directory." : "無法設定上傳目錄",
"Invalid Token" : "無效的 token",
"No file was uploaded. Unknown error" : "沒有檔案被上傳,原因未知",
@@ -20,6 +13,7 @@
"Missing a temporary folder" : "找不到暫存資料夾",
"Failed to write to disk" : "寫入硬碟失敗",
"Not enough storage available" : "儲存空間不足",
+ "The target folder has been moved or deleted." : "目標資料夾已經被搬移或刪除",
"Upload failed. Could not find uploaded file" : "上傳失敗,找不到上傳的檔案",
"Upload failed. Could not get file info." : "上傳失敗,無法取得檔案資訊",
"Invalid directory." : "無效的資料夾",
@@ -44,14 +38,6 @@
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此動作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
- "Error moving file." : "移動檔案發生錯誤",
- "Error moving file" : "移動檔案失敗",
- "Error" : "錯誤",
- "{new_name} already exists" : "{new_name} 已經存在",
- "Could not rename file" : "無法重新命名",
- "Could not create file" : "無法建立檔案",
- "Could not create folder" : "無法建立資料夾",
- "Error deleting file." : "刪除檔案發生錯誤",
"No entries in this folder match '{filter}'" : "在此資料夾中沒有項目與 '{filter}' 相符",
"Name" : "名稱",
"Size" : "大小",
@@ -73,8 +59,6 @@
"_%n byte_::_%n bytes_" : ["%n 位元組"],
"Favorited" : "已加入最愛",
"Favorite" : "我的最愛",
- "Text file" : "文字檔",
- "New text file.txt" : "新文字檔.txt",
"Folder" : "資料夾",
"New folder" : "新資料夾",
"{newname} already exists" : "{newname} 已經存在",
@@ -97,8 +81,6 @@
"Changed by %2$s" : "由 %2$s 改動",
"Deleted by %2$s" : "由 %2$s 刪除",
"Restored by %2$s" : "由 %2$s 還原",
- "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名",
- "%s could not be renamed" : "無法重新命名 %s",
"Upload (max. %s)" : "上傳(至多 %s)",
"File handling" : "檔案處理",
"Maximum upload size" : "上傳限制",
@@ -117,6 +99,8 @@
"Files are being scanned, please wait." : "正在掃描檔案,請稍等",
"Currently scanning" : "正在掃描",
"No favorites" : "沒有最愛",
- "Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡"
+ "Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡",
+ "Text file" : "文字檔",
+ "New text file.txt" : "新文字檔.txt"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/appinfo/register_command.php b/apps/files_external/appinfo/register_command.php
new file mode 100644
index 00000000000..a436dc95005
--- /dev/null
+++ b/apps/files_external/appinfo/register_command.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+
+use OCA\Files_External\Command\ListCommand;
+
+$userManager = OC::$server->getUserManager();
+$userSession = OC::$server->getUserSession();
+
+$app = \OC_Mount_Config::$app;
+
+$globalStorageService = $app->getContainer()->query('\OCA\Files_external\Service\GlobalStoragesService');
+$userStorageService = $app->getContainer()->query('\OCA\Files_external\Service\UserStoragesService');
+
+/** @var Symfony\Component\Console\Application $application */
+$application->add(new ListCommand($globalStorageService, $userStorageService, $userSession, $userManager));
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php
index 39ded1dc2ec..e66c010a8cf 100644
--- a/apps/files_external/appinfo/routes.php
+++ b/apps/files_external/appinfo/routes.php
@@ -36,6 +36,7 @@ namespace OCA\Files_External\AppInfo;
'resources' => array(
'global_storages' => array('url' => '/globalstorages'),
'user_storages' => array('url' => '/userstorages'),
+ 'user_global_storages' => array('url' => '/userglobalstorages'),
),
'routes' => array(
array(
diff --git a/apps/files_external/command/listcommand.php b/apps/files_external/command/listcommand.php
new file mode 100644
index 00000000000..4c027ffcb8e
--- /dev/null
+++ b/apps/files_external/command/listcommand.php
@@ -0,0 +1,231 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_External\Command;
+
+use OC\Core\Command\Base;
+use OCA\Files_external\Lib\StorageConfig;
+use OCA\Files_external\Service\GlobalStoragesService;
+use OCA\Files_external\Service\UserStoragesService;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\Table;
+use Symfony\Component\Console\Helper\TableHelper;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class ListCommand extends Base {
+ /**
+ * @var GlobalStoragesService
+ */
+ private $globalService;
+
+ /**
+ * @var UserStoragesService
+ */
+ private $userService;
+
+ /**
+ * @var IUserSession
+ */
+ private $userSession;
+
+ /**
+ * @var IUserManager
+ */
+ private $userManager;
+
+ function __construct(GlobalStoragesService $globalService, UserStoragesService $userService, IUserSession $userSession, IUserManager $userManager) {
+ parent::__construct();
+ $this->globalService = $globalService;
+ $this->userService = $userService;
+ $this->userSession = $userSession;
+ $this->userManager = $userManager;
+ }
+
+ protected function configure() {
+ $this
+ ->setName('files_external:list')
+ ->setDescription('List configured mounts')
+ ->addArgument(
+ 'user_id',
+ InputArgument::OPTIONAL,
+ 'user id to list the personal mounts for, if no user is provided admin mounts will be listed'
+ )->addOption(
+ 'show-password',
+ null,
+ InputOption::VALUE_NONE,
+ 'show passwords and secrets'
+ )->addOption(
+ 'full',
+ null,
+ InputOption::VALUE_NONE,
+ 'don\'t truncate long values in table output'
+ );
+ parent::configure();
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $userId = $input->getArgument('user_id');
+ if (!empty($userId)) {
+ $user = $this->userManager->get($userId);
+ if (is_null($user)) {
+ $output->writeln("<error>user $userId not found</error>");
+ return;
+ }
+ $this->userSession->setUser($user);
+ $storageService = $this->userService;
+ } else {
+ $storageService = $this->globalService;
+ }
+
+ /** @var $mounts StorageConfig[] */
+ $mounts = $storageService->getAllStorages();
+
+ if (count($mounts) === 0) {
+ if ($userId) {
+ $output->writeln("<info>No mounts configured by $userId</info>");
+ } else {
+ $output->writeln("<info>No admin mounts configured</info>");
+ }
+ return;
+ }
+
+ $headers = ['Mount ID', 'Mount Point', 'Storage', 'Authentication Type', 'Configuration', 'Options'];
+
+ if (!$userId) {
+ $headers[] = 'Applicable Users';
+ $headers[] = 'Applicable Groups';
+ }
+
+ if (!$input->getOption('show-password')) {
+ $hideKeys = ['password', 'refresh_token', 'token', 'client_secret', 'public_key', 'private_key'];
+ foreach ($mounts as $mount) {
+ $config = $mount->getBackendOptions();
+ foreach ($config as $key => $value) {
+ if (in_array($key, $hideKeys)) {
+ $mount->setBackendOption($key, '***');
+ }
+ }
+ }
+ }
+
+ $outputType = $input->getOption('output');
+ if ($outputType === self::OUTPUT_FORMAT_JSON || $outputType === self::OUTPUT_FORMAT_JSON_PRETTY) {
+ $keys = array_map(function ($header) {
+ return strtolower(str_replace(' ', '_', $header));
+ }, $headers);
+
+ $pairs = array_map(function (StorageConfig $config) use ($keys, $userId) {
+ $values = [
+ $config->getId(),
+ $config->getMountPoint(),
+ $config->getBackend()->getStorageClass(),
+ $config->getAuthMechanism()->getScheme(),
+ $config->getBackendOptions(),
+ $config->getMountOptions()
+ ];
+ if (!$userId) {
+ $values[] = $config->getApplicableUsers();
+ $values[] = $config->getApplicableGroups();
+ }
+
+ return array_combine($keys, $values);
+ }, $mounts);
+ if ($outputType === self::OUTPUT_FORMAT_JSON) {
+ $output->writeln(json_encode(array_values($pairs)));
+ } else {
+ $output->writeln(json_encode(array_values($pairs), JSON_PRETTY_PRINT));
+ }
+ } else {
+ $full = $input->getOption('full');
+ $defaultMountOptions = [
+ 'encrypt' => true,
+ 'previews' => true,
+ 'filesystem_check_changes' => 1
+ ];
+ $rows = array_map(function (StorageConfig $config) use ($userId, $defaultMountOptions, $full) {
+ $storageConfig = $config->getBackendOptions();
+ $keys = array_keys($storageConfig);
+ $values = array_values($storageConfig);
+
+ if (!$full) {
+ $values = array_map(function ($value) {
+ if (is_string($value) && strlen($value) > 32) {
+ return substr($value, 0, 6) . '...' . substr($value, -6, 6);
+ } else {
+ return $value;
+ }
+ }, $values);
+ }
+
+ $configStrings = array_map(function ($key, $value) {
+ return $key . ': ' . json_encode($value);
+ }, $keys, $values);
+ $configString = implode(', ', $configStrings);
+
+ $mountOptions = $config->getMountOptions();
+ // hide defaults
+ foreach ($mountOptions as $key => $value) {
+ if ($value === $defaultMountOptions[$key]) {
+ unset($mountOptions[$key]);
+ }
+ }
+ $keys = array_keys($mountOptions);
+ $values = array_values($mountOptions);
+
+ $optionsStrings = array_map(function ($key, $value) {
+ return $key . ': ' . json_encode($value);
+ }, $keys, $values);
+ $optionsString = implode(', ', $optionsStrings);
+
+ $values = [
+ $config->getId(),
+ $config->getMountPoint(),
+ $config->getBackend()->getText(),
+ $config->getAuthMechanism()->getText(),
+ $configString,
+ $optionsString
+ ];
+
+ if (!$userId) {
+ $applicableUsers = implode(', ', $config->getApplicableUsers());
+ $applicableGroups = implode(', ', $config->getApplicableGroups());
+ if ($applicableUsers === '' && $applicableGroups === '') {
+ $applicableUsers = 'All';
+ }
+ $values[] = $applicableUsers;
+ $values[] = $applicableGroups;
+ }
+
+ return $values;
+ }, $mounts);
+
+ $table = new Table($output);
+ $table->setHeaders($headers);
+ $table->setRows($rows);
+ $table->render();
+ }
+ }
+}
diff --git a/apps/files_external/controller/storagescontroller.php b/apps/files_external/controller/storagescontroller.php
index 048f3588ed7..c66bd902d8d 100644
--- a/apps/files_external/controller/storagescontroller.php
+++ b/apps/files_external/controller/storagescontroller.php
@@ -256,6 +256,20 @@ abstract class StoragesController extends Controller {
}
/**
+ * Get all storage entries
+ *
+ * @return DataResponse
+ */
+ public function index() {
+ $storages = $this->service->getAllStorages();
+
+ return new DataResponse(
+ $storages,
+ Http::STATUS_OK
+ );
+ }
+
+ /**
* Get an external storage entry.
*
* @param int $id storage id
diff --git a/apps/files_external/controller/userglobalstoragescontroller.php b/apps/files_external/controller/userglobalstoragescontroller.php
new file mode 100644
index 00000000000..c6f777763e8
--- /dev/null
+++ b/apps/files_external/controller/userglobalstoragescontroller.php
@@ -0,0 +1,121 @@
+<?php
+/**
+ * @author Robin McCorkell <rmccorkell@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_External\Controller;
+
+use \OCP\IRequest;
+use \OCP\IL10N;
+use \OCP\AppFramework\Http\DataResponse;
+use \OCP\AppFramework\Controller;
+use \OCP\AppFramework\Http;
+use \OCA\Files_external\Service\UserGlobalStoragesService;
+use \OCA\Files_external\NotFoundException;
+use \OCA\Files_external\Lib\StorageConfig;
+use \OCA\Files_External\Lib\Backend\Backend;
+
+/**
+ * User global storages controller
+ */
+class UserGlobalStoragesController extends StoragesController {
+ /**
+ * Creates a new user global storages controller.
+ *
+ * @param string $AppName application name
+ * @param IRequest $request request object
+ * @param IL10N $l10n l10n service
+ * @param UserGlobalStoragesService $userGlobalStoragesService storage service
+ */
+ public function __construct(
+ $AppName,
+ IRequest $request,
+ IL10N $l10n,
+ UserGlobalStoragesService $userGlobalStoragesService
+ ) {
+ parent::__construct(
+ $AppName,
+ $request,
+ $l10n,
+ $userGlobalStoragesService
+ );
+ }
+
+ /**
+ * Get all storage entries
+ *
+ * @return DataResponse
+ *
+ * @NoAdminRequired
+ */
+ public function index() {
+ $storages = $this->service->getUniqueStorages();
+
+ // remove configuration data, this must be kept private
+ foreach ($storages as $storage) {
+ $this->sanitizeStorage($storage);
+ }
+
+ return new DataResponse(
+ $storages,
+ Http::STATUS_OK
+ );
+ }
+
+ /**
+ * Get an external storage entry.
+ *
+ * @param int $id storage id
+ * @return DataResponse
+ *
+ * @NoAdminRequired
+ */
+ public function show($id) {
+ try {
+ $storage = $this->service->getStorage($id);
+
+ $this->updateStorageStatus($storage);
+ } catch (NotFoundException $e) {
+ return new DataResponse(
+ [
+ 'message' => (string)$this->l10n->t('Storage with id "%i" not found', array($id))
+ ],
+ Http::STATUS_NOT_FOUND
+ );
+ }
+
+ $this->sanitizeStorage($storage);
+
+ return new DataResponse(
+ $storage,
+ Http::STATUS_OK
+ );
+ }
+
+ /**
+ * Remove sensitive data from a StorageConfig before returning it to the user
+ *
+ * @param StorageConfig $storage
+ */
+ protected function sanitizeStorage(StorageConfig $storage) {
+ $storage->setBackendOptions([]);
+ $storage->setMountOptions([]);
+ }
+
+}
diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css
index 35c7a395c58..c96c0cb97b9 100644
--- a/apps/files_external/css/settings.css
+++ b/apps/files_external/css/settings.css
@@ -1,4 +1,10 @@
-td.status > span {
+#externalStorage td.status {
+ /* overwrite conflicting core styles */
+ display: table-cell;
+ vertical-align: middle;
+}
+
+#externalStorage td.status > span {
display: inline-block;
height: 16px;
width: 16px;
diff --git a/apps/files_external/js/public_key.js b/apps/files_external/js/public_key.js
index a8546067452..5f9658381f0 100644
--- a/apps/files_external/js/public_key.js
+++ b/apps/files_external/js/public_key.js
@@ -1,10 +1,16 @@
$(document).ready(function() {
- OCA.External.Settings.mountConfig.whenSelectAuthMechanism(function($tr, authMechanism, scheme) {
+ OCA.External.Settings.mountConfig.whenSelectAuthMechanism(function($tr, authMechanism, scheme, onCompletion) {
if (scheme === 'publickey') {
var config = $tr.find('.configuration');
if ($(config).find('[name="public_key_generate"]').length === 0) {
setupTableRow($tr, config);
+ onCompletion.then(function() {
+ // If there's no private key, build one
+ if (0 === $(config).find('[data-parameter="private_key"]').val().length) {
+ generateKeys($tr);
+ }
+ });
}
}
});
@@ -22,10 +28,6 @@ $(document).ready(function() {
.attr('value', t('files_external', 'Generate keys'))
.attr('name', 'public_key_generate')
);
- // If there's no private key, build one
- if (0 === $(config).find('[data-parameter="private_key"]').val().length) {
- generateKeys(tr);
- }
}
function generateKeys(tr) {
@@ -33,7 +35,7 @@ $(document).ready(function() {
$.post(OC.filePath('files_external', 'ajax', 'public_key.php'), {}, function(result) {
if (result && result.status === 'success') {
- $(config).find('[data-parameter="public_key"]').val(result.data.public_key);
+ $(config).find('[data-parameter="public_key"]').val(result.data.public_key).keyup();
$(config).find('[data-parameter="private_key"]').val(result.data.private_key);
OCA.External.Settings.mountConfig.saveStorageConfig(tr, function() {
// Nothing to do
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index a839f396b9b..f712ecf4328 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -623,36 +623,7 @@ MountConfigListView.prototype = _.extend({
this._allBackends = this.$el.find('.selectBackend').data('configurations');
this._allAuthMechanisms = this.$el.find('#addMountPoint .authentication').data('mechanisms');
- //initialize hidden input field with list of users and groups
- this.$el.find('tr:not(#addMountPoint)').each(function(i,tr) {
- var $tr = $(tr);
- var $applicable = $tr.find('.applicable');
- if ($applicable.length > 0) {
- var groups = $applicable.data('applicable-groups');
- var groupsId = [];
- $.each(groups, function () {
- groupsId.push(this + '(group)');
- });
- var users = $applicable.data('applicable-users');
- if (users.indexOf('all') > -1 || users === '') {
- $tr.find('.applicableUsers').val('');
- } else {
- $tr.find('.applicableUsers').val(groupsId.concat(users).join(','));
- }
- }
- });
-
- addSelect2(this.$el.find('tr:not(#addMountPoint) .applicableUsers'), this._userListLimit);
- this.$el.tooltip({
- selector: '.status span',
- container: 'body'
- });
-
this._initEvents();
-
- this.$el.find('tbody tr:not(#addMountPoint)').each(function(i, tr) {
- self.recheckStorageConfig($(tr));
- });
},
/**
@@ -661,7 +632,7 @@ MountConfigListView.prototype = _.extend({
*/
whenSelectBackend: function(callback) {
this.$el.find('tbody tr:not(#addMountPoint)').each(function(i, tr) {
- var backend = $(tr).find('.backend').data('class');
+ var backend = $(tr).find('.backend').data('identifier');
callback($(tr), backend);
});
this.on('selectBackend', callback);
@@ -725,65 +696,41 @@ MountConfigListView.prototype = _.extend({
_onSelectBackend: function(event) {
var $target = $(event.target);
- var $el = this.$el;
var $tr = $target.closest('tr');
- $el.find('tbody').append($tr.clone());
- $el.find('tbody tr').last().find('.mountPoint input').val('');
- $tr.data('constructing', true);
- var selected = $target.find('option:selected').text();
- var backend = $target.val();
- $tr.find('.backend').text(selected);
- if ($tr.find('.mountPoint input').val() === '') {
- $tr.find('.mountPoint input').val(this._suggestMountPoint(selected));
- }
- $tr.addClass(backend);
- $tr.find('.backend').data('class', backend);
- var backendConfiguration = this._allBackends[backend];
- var selectAuthMechanism = $('<select class="selectAuthMechanism"></select>');
- $.each(this._allAuthMechanisms, function(authClass, authMechanism) {
- if (backendConfiguration['authSchemes'][authMechanism['scheme']]) {
- selectAuthMechanism.append(
- $('<option value="'+authClass+'" data-scheme="'+authMechanism['scheme']+'">'+authMechanism['name']+'</option>')
- );
- }
- });
- $tr.find('td.authentication').append(selectAuthMechanism);
+ var storageConfig = new this._storageConfigClass();
+ storageConfig.mountPoint = $tr.find('.mountPoint input').val();
+ storageConfig.backend = $target.val();
+ $tr.find('.mountPoint input').val('');
- var $td = $tr.find('td.configuration');
- $.each(backendConfiguration['configuration'], _.partial(this.writeParameterInput, $td));
+ var onCompletion = jQuery.Deferred();
+ $tr = this.newStorage(storageConfig, onCompletion);
+ onCompletion.resolve();
- this.trigger('selectBackend', $tr, backend);
-
- selectAuthMechanism.trigger('change'); // generate configuration parameters for auth mechanism
-
- var priorityEl = $('<input type="hidden" class="priority" value="' + backendConfiguration['priority'] + '" />');
- $tr.append(priorityEl);
- $td.children().not('[type=hidden]').first().focus();
-
- // FIXME default backend mount options
- $tr.find('input.mountOptions').val(JSON.stringify({
- 'encrypt': true,
- 'previews': true,
- 'filesystem_check_changes': 1
- }));
-
- $tr.find('td').last().attr('class', 'remove');
- $tr.find('td.mountOptionsToggle').removeClass('hidden');
- $tr.find('td').last().removeAttr('style');
- $tr.removeAttr('id');
- $target.remove();
- addSelect2($tr.find('.applicableUsers'), this._userListLimit);
-
- $tr.removeData('constructing');
+ $tr.find('td.configuration').children().not('[type=hidden]').first().focus();
this.saveStorageConfig($tr);
},
_onSelectAuthMechanism: function(event) {
var $target = $(event.target);
var $tr = $target.closest('tr');
-
var authMechanism = $target.val();
+
+ var onCompletion = jQuery.Deferred();
+ this.configureAuthMechanism($tr, authMechanism, onCompletion);
+ onCompletion.resolve();
+
+ this.saveStorageConfig($tr);
+ },
+
+ /**
+ * Configure the storage config with a new authentication mechanism
+ *
+ * @param {jQuery} $tr config row
+ * @param {string} authMechanism
+ * @param {jQuery.Deferred} onCompletion
+ */
+ configureAuthMechanism: function($tr, authMechanism, onCompletion) {
var authMechanismConfiguration = this._allAuthMechanisms[authMechanism];
var $td = $tr.find('td.configuration');
$td.find('.auth-param').remove();
@@ -793,15 +740,172 @@ MountConfigListView.prototype = _.extend({
));
this.trigger('selectAuthMechanism',
- $tr, authMechanism, authMechanismConfiguration['scheme']
+ $tr, authMechanism, authMechanismConfiguration['scheme'], onCompletion
);
+ },
+
+ /**
+ * Create a config row for a new storage
+ *
+ * @param {StorageConfig} storageConfig storage config to pull values from
+ * @param {jQuery.Deferred} onCompletion
+ * @return {jQuery} created row
+ */
+ newStorage: function(storageConfig, onCompletion) {
+ var mountPoint = storageConfig.mountPoint;
+ var backend = this._allBackends[storageConfig.backend];
+
+ // FIXME: Replace with a proper Handlebar template
+ var $tr = this.$el.find('tr#addMountPoint');
+ this.$el.find('tbody').append($tr.clone());
+
+ $tr.find('td').last().attr('class', 'remove');
+ $tr.find('td.mountOptionsToggle').removeClass('hidden');
+ $tr.find('td').last().removeAttr('style');
+ $tr.removeAttr('id');
+ $tr.find('select#selectBackend');
+ addSelect2($tr.find('.applicableUsers'), this._userListLimit);
+
+ if (storageConfig.id) {
+ $tr.data('id', storageConfig.id);
+ }
+
+ $tr.find('.backend').text(backend.name);
+ if (mountPoint === '') {
+ mountPoint = this._suggestMountPoint(backend.name);
+ }
+ $tr.find('.mountPoint input').val(mountPoint);
+ $tr.addClass(backend.identifier);
+ $tr.find('.backend').data('identifier', backend.identifier);
+
+ var selectAuthMechanism = $('<select class="selectAuthMechanism"></select>');
+ $.each(this._allAuthMechanisms, function(authIdentifier, authMechanism) {
+ if (backend.authSchemes[authMechanism.scheme]) {
+ selectAuthMechanism.append(
+ $('<option value="'+authMechanism.identifier+'" data-scheme="'+authMechanism.scheme+'">'+authMechanism.name+'</option>')
+ );
+ }
+ });
+ if (storageConfig.authMechanism) {
+ selectAuthMechanism.val(storageConfig.authMechanism);
+ } else {
+ storageConfig.authMechanism = selectAuthMechanism.val();
+ }
+ $tr.find('td.authentication').append(selectAuthMechanism);
- if ($tr.data('constructing') !== true) {
- // row is ready, trigger recheck
- this.saveStorageConfig($tr);
+ var $td = $tr.find('td.configuration');
+ $.each(backend.configuration, _.partial(this.writeParameterInput, $td));
+
+ this.trigger('selectBackend', $tr, backend.identifier, onCompletion);
+ this.configureAuthMechanism($tr, storageConfig.authMechanism, onCompletion);
+
+ if (storageConfig.backendOptions) {
+ $td.children().each(function() {
+ var input = $(this);
+ var val = storageConfig.backendOptions[input.data('parameter')];
+ if (val !== undefined) {
+ input.val(storageConfig.backendOptions[input.data('parameter')]);
+ highlightInput(input);
+ }
+ });
+ }
+
+ var applicable = [];
+ if (storageConfig.applicableUsers) {
+ applicable = applicable.concat(storageConfig.applicableUsers);
+ }
+ if (storageConfig.applicableGroups) {
+ applicable = applicable.concat(
+ _.map(storageConfig.applicableGroups, function(group) {
+ return group+'(group)';
+ })
+ );
}
+ $tr.find('.applicableUsers').val(applicable).trigger('change');
+
+ var priorityEl = $('<input type="hidden" class="priority" value="' + backend.priority + '" />');
+ $tr.append(priorityEl);
+
+ if (storageConfig.mountOptions) {
+ $tr.find('input.mountOptions').val(JSON.stringify(storageConfig.mountOptions));
+ } else {
+ // FIXME default backend mount options
+ $tr.find('input.mountOptions').val(JSON.stringify({
+ 'encrypt': true,
+ 'previews': true,
+ 'filesystem_check_changes': 1
+ }));
+ }
+
+ return $tr;
},
+ /**
+ * Load storages into config rows
+ */
+ loadStorages: function() {
+ var self = this;
+
+ if (this._isPersonal) {
+ // load userglobal storages
+ $.ajax({
+ type: 'GET',
+ url: OC.generateUrl('apps/files_external/userglobalstorages'),
+ contentType: 'application/json',
+ success: function(result) {
+ var onCompletion = jQuery.Deferred();
+ $.each(result, function(i, storageParams) {
+ storageParams.mountPoint = storageParams.mountPoint.substr(1); // trim leading slash
+ var storageConfig = new self._storageConfigClass();
+ _.extend(storageConfig, storageParams);
+ var $tr = self.newStorage(storageConfig, onCompletion);
+
+ // userglobal storages must be at the top of the list
+ $tr.detach();
+ self.$el.prepend($tr);
+
+ var $authentication = $tr.find('.authentication');
+ $authentication.text($authentication.find('select option:selected').text());
+
+ // userglobal storages do not expose configuration data
+ $tr.find('.configuration').text(t('files_external', 'Admin defined'));
+
+ // disable any other inputs
+ $tr.find('.mountOptionsToggle, .remove').empty();
+ $tr.find('input, select, button').attr('disabled', 'disabled');
+ });
+ onCompletion.resolve();
+ }
+ });
+ }
+
+ var url = this._storageConfigClass.prototype._url;
+
+ $.ajax({
+ type: 'GET',
+ url: OC.generateUrl(url),
+ contentType: 'application/json',
+ success: function(result) {
+ var onCompletion = jQuery.Deferred();
+ $.each(result, function(i, storageParams) {
+ storageParams.mountPoint = storageParams.mountPoint.substr(1); // trim leading slash
+ var storageConfig = new self._storageConfigClass();
+ _.extend(storageConfig, storageParams);
+ var $tr = self.newStorage(storageConfig, onCompletion);
+ self.recheckStorageConfig($tr);
+ });
+ onCompletion.resolve();
+ }
+ });
+ },
+
+ /**
+ * @param {jQuery} $td
+ * @param {string} parameter
+ * @param {string} placeholder
+ * @param {Array} classes
+ * @return {jQuery} newly created input
+ */
writeParameterInput: function($td, parameter, placeholder, classes) {
classes = $.isArray(classes) ? classes : [];
classes.push('added');
@@ -822,6 +926,7 @@ MountConfigListView.prototype = _.extend({
}
highlightInput(newElement);
$td.append(newElement);
+ return newElement;
},
/**
@@ -831,14 +936,14 @@ MountConfigListView.prototype = _.extend({
* @return {OCA.External.StorageConfig} storage model instance
*/
getStorageConfig: function($tr) {
- var storageId = parseInt($tr.attr('data-id'), 10);
+ var storageId = $tr.data('id');
if (!storageId) {
// new entry
storageId = null;
}
var storage = new this._storageConfigClass(storageId);
storage.mountPoint = $tr.find('.mountPoint input').val();
- storage.backend = $tr.find('.backend').data('class');
+ storage.backend = $tr.find('.backend').data('identifier');
storage.authMechanism = $tr.find('.selectAuthMechanism').val();
var classOptions = {};
@@ -951,8 +1056,8 @@ MountConfigListView.prototype = _.extend({
if (concurrentTimer === undefined
|| $tr.data('save-timer') === concurrentTimer
) {
- self.updateStatus($tr, result.status, result.statusMessage);
- $tr.attr('data-id', result.id);
+ self.updateStatus($tr, result.status);
+ $tr.data('id', result.id);
if (_.isFunction(callback)) {
callback(storage);
@@ -1054,12 +1159,12 @@ MountConfigListView.prototype = _.extend({
}
return defaultMountPoint + append;
},
-
+
/**
* Toggles the mount options dropdown
*
* @param {Object} $tr configuration row
- */
+ */
_showMountOptionsDropdown: function($tr) {
if (this._preventNextDropdown) {
// prevented because the click was on the toggle
@@ -1106,6 +1211,7 @@ $(document).ready(function() {
var mountConfigListView = new MountConfigListView($('#externalStorage'), {
encryptionEnabled: encryptionEnabled
});
+ mountConfigListView.loadStorages();
$('#sslCertificate').on('click', 'td.remove>img', function() {
var $tr = $(this).closest('tr');
diff --git a/apps/files_external/l10n/ast.js b/apps/files_external/l10n/ast.js
index b663657e029..f67309631e8 100644
--- a/apps/files_external/l10n/ast.js
+++ b/apps/files_external/l10n/ast.js
@@ -53,8 +53,8 @@ OC.L10N.register(
"Folder name" : "Nome de la carpeta",
"Configuration" : "Configuración",
"Available for" : "Disponible pa",
- "Delete" : "Desaniciar",
"Add storage" : "Amestar almacenamientu",
+ "Delete" : "Desaniciar",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamientu esternu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/ast.json b/apps/files_external/l10n/ast.json
index 0e98fe5a24a..b4bc4355bc4 100644
--- a/apps/files_external/l10n/ast.json
+++ b/apps/files_external/l10n/ast.json
@@ -51,8 +51,8 @@
"Folder name" : "Nome de la carpeta",
"Configuration" : "Configuración",
"Available for" : "Disponible pa",
- "Delete" : "Desaniciar",
"Add storage" : "Amestar almacenamientu",
+ "Delete" : "Desaniciar",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamientu esternu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/az.js b/apps/files_external/l10n/az.js
index 700e36a4aef..42c9a496185 100644
--- a/apps/files_external/l10n/az.js
+++ b/apps/files_external/l10n/az.js
@@ -57,9 +57,9 @@ OC.L10N.register(
"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",
- "Add storage" : "Deponu əlavə et",
"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
index 6cccabb2dd6..4e01cdf954c 100644
--- a/apps/files_external/l10n/az.json
+++ b/apps/files_external/l10n/az.json
@@ -55,9 +55,9 @@
"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",
- "Add storage" : "Deponu əlavə et",
"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_BG.js b/apps/files_external/l10n/bg_BG.js
index f14b13d2a0e..cc52682f956 100644
--- a/apps/files_external/l10n/bg_BG.js
+++ b/apps/files_external/l10n/bg_BG.js
@@ -59,9 +59,9 @@ OC.L10N.register(
"Folder name" : "Име на папката",
"Configuration" : "Настройки",
"Available for" : "Достъпно за",
+ "Add storage" : "Добави дисково пространство",
"Advanced settings" : "Разширени настройки",
"Delete" : "Изтрий",
- "Add storage" : "Добави дисково пространство",
"Allow users to mount the following external storage" : "Разреши на потребителите да прикачват следното външно дисково пространство"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/bg_BG.json b/apps/files_external/l10n/bg_BG.json
index 6cce8fd5cfa..df3fe1c20e8 100644
--- a/apps/files_external/l10n/bg_BG.json
+++ b/apps/files_external/l10n/bg_BG.json
@@ -57,9 +57,9 @@
"Folder name" : "Име на папката",
"Configuration" : "Настройки",
"Available for" : "Достъпно за",
+ "Add storage" : "Добави дисково пространство",
"Advanced settings" : "Разширени настройки",
"Delete" : "Изтрий",
- "Add storage" : "Добави дисково пространство",
"Allow users to mount the following external storage" : "Разреши на потребителите да прикачват следното външно дисково пространство"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js
index b14057ea420..56c5f72abf9 100644
--- a/apps/files_external/l10n/ca.js
+++ b/apps/files_external/l10n/ca.js
@@ -66,9 +66,9 @@ OC.L10N.register(
"Folder name" : "Nom de la carpeta",
"Configuration" : "Configuració",
"Available for" : "Disponible per",
+ "Add storage" : "Afegeix emmagatzemament",
"Advanced settings" : "Configuració avançada",
"Delete" : "Esborra",
- "Add storage" : "Afegeix emmagatzemament",
"Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json
index cce51970c18..7a166c3c011 100644
--- a/apps/files_external/l10n/ca.json
+++ b/apps/files_external/l10n/ca.json
@@ -64,9 +64,9 @@
"Folder name" : "Nom de la carpeta",
"Configuration" : "Configuració",
"Available for" : "Disponible per",
+ "Add storage" : "Afegeix emmagatzemament",
"Advanced settings" : "Configuració avançada",
"Delete" : "Esborra",
- "Add storage" : "Afegeix emmagatzemament",
"Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js
index 3e9a14f9998..408d942a1c9 100644
--- a/apps/files_external/l10n/cs_CZ.js
+++ b/apps/files_external/l10n/cs_CZ.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Every time the filesystem is used" : "Pokaždé když je použit souborový systém",
"All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.",
"(group)" : "(skupina)",
+ "Admin defined" : "Nastaveno administrátorem",
"Saved" : "Uloženo",
"Access key" : "Přístupový klíč",
"Secret key" : "Tajný klíč",
@@ -99,9 +100,9 @@ OC.L10N.register(
"Authentication" : "Ověření",
"Configuration" : "Nastavení",
"Available for" : "Dostupné pro",
+ "Add storage" : "Přidat úložiště",
"Advanced settings" : "Pokročilá nastavení",
"Delete" : "Smazat",
- "Add storage" : "Přidat úložiště",
"Allow users to mount external storage" : "Povolit uživatelům připojení externího úložiště",
"Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště"
},
diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json
index 4c6f940666e..746d5b5c2e6 100644
--- a/apps/files_external/l10n/cs_CZ.json
+++ b/apps/files_external/l10n/cs_CZ.json
@@ -31,6 +31,7 @@
"Every time the filesystem is used" : "Pokaždé když je použit souborový systém",
"All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.",
"(group)" : "(skupina)",
+ "Admin defined" : "Nastaveno administrátorem",
"Saved" : "Uloženo",
"Access key" : "Přístupový klíč",
"Secret key" : "Tajný klíč",
@@ -97,9 +98,9 @@
"Authentication" : "Ověření",
"Configuration" : "Nastavení",
"Available for" : "Dostupné pro",
+ "Add storage" : "Přidat úložiště",
"Advanced settings" : "Pokročilá nastavení",
"Delete" : "Smazat",
- "Add storage" : "Přidat úložiště",
"Allow users to mount external storage" : "Povolit uživatelům připojení externího úložiště",
"Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js
index ba5d572a206..dc86b6f1c06 100644
--- a/apps/files_external/l10n/da.js
+++ b/apps/files_external/l10n/da.js
@@ -98,9 +98,9 @@ OC.L10N.register(
"Authentication" : "Godkendelse",
"Configuration" : "Opsætning",
"Available for" : "Tilgængelig for",
+ "Add storage" : "Tilføj lager",
"Advanced settings" : "Avancerede indstillinger",
"Delete" : "Slet",
- "Add storage" : "Tilføj lager",
"Allow users to mount the following external storage" : "Tillad brugere at montere følgende som eksternt lager"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json
index c819040bc74..bb7961fbb2b 100644
--- a/apps/files_external/l10n/da.json
+++ b/apps/files_external/l10n/da.json
@@ -96,9 +96,9 @@
"Authentication" : "Godkendelse",
"Configuration" : "Opsætning",
"Available for" : "Tilgængelig for",
+ "Add storage" : "Tilføj lager",
"Advanced settings" : "Avancerede indstillinger",
"Delete" : "Slet",
- "Add storage" : "Tilføj lager",
"Allow users to mount the following external storage" : "Tillad brugere at montere følgende som eksternt lager"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index a51cc52a247..8fbbee567a7 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login",
"Username as share" : "Benutzername als Freigabe",
"OpenStack Object Storage" : "Openstack-Objektspeicher",
+ "Service name" : "Service Name",
"<b>Note:</b> " : "<b>Hinweis:</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>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.",
"<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>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
@@ -84,9 +85,10 @@ OC.L10N.register(
"Authentication" : "Authentifizierung",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
+ "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden",
"Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index 41ecaad2594..02e495251a8 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -68,6 +68,7 @@
"SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login",
"Username as share" : "Benutzername als Freigabe",
"OpenStack Object Storage" : "Openstack-Objektspeicher",
+ "Service name" : "Service Name",
"<b>Note:</b> " : "<b>Hinweis:</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>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.",
"<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>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
@@ -82,9 +83,10 @@
"Authentication" : "Authentifizierung",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
+ "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden",
"Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index 610f737a4a8..7187e4d97d4 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Folder name" : "Ordnername",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
"Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index fa21fea8f4a..c91d78eb0d2 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -65,9 +65,9 @@
"Folder name" : "Ordnername",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
"Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js
index a83c241af7a..294ec9da6ff 100644
--- a/apps/files_external/l10n/el.js
+++ b/apps/files_external/l10n/el.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Πιστοποίηση",
"Configuration" : "Ρυθμίσεις",
"Available for" : "Διαθέσιμο για",
+ "Add storage" : "Προσθηκη αποθηκευσης",
"Advanced settings" : "Ρυθμίσεις για προχωρημένους",
"Delete" : "Διαγραφή",
- "Add storage" : "Προσθηκη αποθηκευσης",
"Allow users to mount external storage" : "Να επιτρέπεται στους χρήστες η σύνδεση εξωτερικού χώρου",
"Allow users to mount the following external storage" : "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης"
},
diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json
index 32f223cf8c0..431e81c3d7a 100644
--- a/apps/files_external/l10n/el.json
+++ b/apps/files_external/l10n/el.json
@@ -97,9 +97,9 @@
"Authentication" : "Πιστοποίηση",
"Configuration" : "Ρυθμίσεις",
"Available for" : "Διαθέσιμο για",
+ "Add storage" : "Προσθηκη αποθηκευσης",
"Advanced settings" : "Ρυθμίσεις για προχωρημένους",
"Delete" : "Διαγραφή",
- "Add storage" : "Προσθηκη αποθηκευσης",
"Allow users to mount external storage" : "Να επιτρέπεται στους χρήστες η σύνδεση εξωτερικού χώρου",
"Allow users to mount the following external storage" : "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index 9829bd3e8c7..9efc720eb18 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Folder name" : "Folder name",
"Configuration" : "Configuration",
"Available for" : "Available for",
+ "Add storage" : "Add storage",
"Advanced settings" : "Advanced settings",
"Delete" : "Delete",
- "Add storage" : "Add storage",
"Allow users to mount the following external storage" : "Allow users to mount the following external storage"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index 88467528431..87deeec5989 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -65,9 +65,9 @@
"Folder name" : "Folder name",
"Configuration" : "Configuration",
"Available for" : "Available for",
+ "Add storage" : "Add storage",
"Advanced settings" : "Advanced settings",
"Delete" : "Delete",
- "Add storage" : "Add storage",
"Allow users to mount the following external storage" : "Allow users to mount the following external storage"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/eo.js b/apps/files_external/l10n/eo.js
index ce3dd21c012..ddab2360a6d 100644
--- a/apps/files_external/l10n/eo.js
+++ b/apps/files_external/l10n/eo.js
@@ -38,8 +38,8 @@ OC.L10N.register(
"Folder name" : "Dosierujnomo",
"Configuration" : "Agordo",
"Available for" : "Disponebla por",
- "Delete" : "Forigi",
"Add storage" : "Aldoni memorilon",
+ "Delete" : "Forigi",
"Allow users to mount the following external storage" : "Permesi uzantojn munti la jenajn malenajn memorilojn"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/eo.json b/apps/files_external/l10n/eo.json
index d8c620d24c2..ec91f40abac 100644
--- a/apps/files_external/l10n/eo.json
+++ b/apps/files_external/l10n/eo.json
@@ -36,8 +36,8 @@
"Folder name" : "Dosierujnomo",
"Configuration" : "Agordo",
"Available for" : "Disponebla por",
- "Delete" : "Forigi",
"Add storage" : "Aldoni memorilon",
+ "Delete" : "Forigi",
"Allow users to mount the following external storage" : "Permesi uzantojn munti la jenajn malenajn memorilojn"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js
index 5415e8963cd..46de520f55e 100644
--- a/apps/files_external/l10n/es.js
+++ b/apps/files_external/l10n/es.js
@@ -85,9 +85,9 @@ OC.L10N.register(
"Authentication" : "Autenticación",
"Configuration" : "Configuración",
"Available for" : "Disponible para",
+ "Add storage" : "Añadir almacenamiento",
"Advanced settings" : "Configuración avanzada",
"Delete" : "Eliminar",
- "Add storage" : "Añadir almacenamiento",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json
index 10cbf0c974a..3748040fdd4 100644
--- a/apps/files_external/l10n/es.json
+++ b/apps/files_external/l10n/es.json
@@ -83,9 +83,9 @@
"Authentication" : "Autenticación",
"Configuration" : "Configuración",
"Available for" : "Disponible para",
+ "Add storage" : "Añadir almacenamiento",
"Advanced settings" : "Configuración avanzada",
"Delete" : "Eliminar",
- "Add storage" : "Añadir almacenamiento",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/es_AR.js b/apps/files_external/l10n/es_AR.js
index fd242104c8c..7fb87f1a1d3 100644
--- a/apps/files_external/l10n/es_AR.js
+++ b/apps/files_external/l10n/es_AR.js
@@ -22,7 +22,7 @@ OC.L10N.register(
"External Storage" : "Almacenamiento externo",
"Folder name" : "Nombre de la carpeta",
"Configuration" : "Configuración",
- "Delete" : "Borrar",
- "Add storage" : "Añadir almacenamiento"
+ "Add storage" : "Añadir almacenamiento",
+ "Delete" : "Borrar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/es_AR.json b/apps/files_external/l10n/es_AR.json
index d9e91a3af47..9fb735f7a3a 100644
--- a/apps/files_external/l10n/es_AR.json
+++ b/apps/files_external/l10n/es_AR.json
@@ -20,7 +20,7 @@
"External Storage" : "Almacenamiento externo",
"Folder name" : "Nombre de la carpeta",
"Configuration" : "Configuración",
- "Delete" : "Borrar",
- "Add storage" : "Añadir almacenamiento"
+ "Add storage" : "Añadir almacenamiento",
+ "Delete" : "Borrar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js
index 9682e360a58..c805ce16662 100644
--- a/apps/files_external/l10n/es_MX.js
+++ b/apps/files_external/l10n/es_MX.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"External Storage" : "Almacenamiento externo",
"Folder name" : "Nombre de la carpeta",
"Configuration" : "Configuración",
- "Delete" : "Eliminar",
- "Add storage" : "Añadir almacenamiento"
+ "Add storage" : "Añadir almacenamiento",
+ "Delete" : "Eliminar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json
index 81b2f408d11..1df9bf70436 100644
--- a/apps/files_external/l10n/es_MX.json
+++ b/apps/files_external/l10n/es_MX.json
@@ -19,7 +19,7 @@
"External Storage" : "Almacenamiento externo",
"Folder name" : "Nombre de la carpeta",
"Configuration" : "Configuración",
- "Delete" : "Eliminar",
- "Add storage" : "Añadir almacenamiento"
+ "Add storage" : "Añadir almacenamiento",
+ "Delete" : "Eliminar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/et_EE.js b/apps/files_external/l10n/et_EE.js
index ae66daa37a6..fa22b4c6591 100644
--- a/apps/files_external/l10n/et_EE.js
+++ b/apps/files_external/l10n/et_EE.js
@@ -77,9 +77,9 @@ OC.L10N.register(
"Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
+ "Add storage" : "Lisa andmehoidla",
"Advanced settings" : "Lisavalikud",
"Delete" : "Kustuta",
- "Add storage" : "Lisa andmehoidla",
"Allow users to mount the following external storage" : "Võimalda kasutajatel ühendada järgmist välist andmehoidlat"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/et_EE.json b/apps/files_external/l10n/et_EE.json
index f2cc31e46e1..37e7cc282ce 100644
--- a/apps/files_external/l10n/et_EE.json
+++ b/apps/files_external/l10n/et_EE.json
@@ -75,9 +75,9 @@
"Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
+ "Add storage" : "Lisa andmehoidla",
"Advanced settings" : "Lisavalikud",
"Delete" : "Kustuta",
- "Add storage" : "Lisa andmehoidla",
"Allow users to mount the following external storage" : "Võimalda kasutajatel ühendada järgmist välist andmehoidlat"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/eu.js b/apps/files_external/l10n/eu.js
index 599229a92b3..58742552e76 100644
--- a/apps/files_external/l10n/eu.js
+++ b/apps/files_external/l10n/eu.js
@@ -52,8 +52,8 @@ OC.L10N.register(
"Folder name" : "Karpetaren izena",
"Configuration" : "Konfigurazioa",
"Available for" : "Hauentzat eskuragarri",
- "Delete" : "Ezabatu",
"Add storage" : "Gehitu biltegiratzea",
+ "Delete" : "Ezabatu",
"Allow users to mount the following external storage" : "Baimendu erabiltzaileak hurrengo kanpo biltegiratzeak muntatzen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/eu.json b/apps/files_external/l10n/eu.json
index 5a568893060..f039441b464 100644
--- a/apps/files_external/l10n/eu.json
+++ b/apps/files_external/l10n/eu.json
@@ -50,8 +50,8 @@
"Folder name" : "Karpetaren izena",
"Configuration" : "Konfigurazioa",
"Available for" : "Hauentzat eskuragarri",
- "Delete" : "Ezabatu",
"Add storage" : "Gehitu biltegiratzea",
+ "Delete" : "Ezabatu",
"Allow users to mount the following external storage" : "Baimendu erabiltzaileak hurrengo kanpo biltegiratzeak muntatzen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/fa.js b/apps/files_external/l10n/fa.js
index a18f7cdcf5c..0c1076fc994 100644
--- a/apps/files_external/l10n/fa.js
+++ b/apps/files_external/l10n/fa.js
@@ -57,8 +57,8 @@ OC.L10N.register(
"Authentication" : "احراز هویت",
"Configuration" : "پیکربندی",
"Available for" : "در دسترس برای",
+ "Add storage" : "اضافه کردن حافظه",
"Advanced settings" : "تنظیمات پیشرفته",
- "Delete" : "حذف",
- "Add storage" : "اضافه کردن حافظه"
+ "Delete" : "حذف"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/fa.json b/apps/files_external/l10n/fa.json
index 4bc16f72f54..056bad259a6 100644
--- a/apps/files_external/l10n/fa.json
+++ b/apps/files_external/l10n/fa.json
@@ -55,8 +55,8 @@
"Authentication" : "احراز هویت",
"Configuration" : "پیکربندی",
"Available for" : "در دسترس برای",
+ "Add storage" : "اضافه کردن حافظه",
"Advanced settings" : "تنظیمات پیشرفته",
- "Delete" : "حذف",
- "Add storage" : "اضافه کردن حافظه"
+ "Delete" : "حذف"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js
index f91dec93310..5a2c3a9aa66 100644
--- a/apps/files_external/l10n/fi_FI.js
+++ b/apps/files_external/l10n/fi_FI.js
@@ -76,9 +76,9 @@ OC.L10N.register(
"Authentication" : "Tunnistautuminen",
"Configuration" : "Asetukset",
"Available for" : "Saatavuus",
+ "Add storage" : "Lisää tallennustila",
"Advanced settings" : "Lisäasetukset",
"Delete" : "Poista",
- "Add storage" : "Lisää tallennustila",
"Allow users to mount external storage" : "Salli käyttäjien liittää erillisiä tallennustiloja",
"Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet"
},
diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json
index a2033b4c578..d2a8cf16278 100644
--- a/apps/files_external/l10n/fi_FI.json
+++ b/apps/files_external/l10n/fi_FI.json
@@ -74,9 +74,9 @@
"Authentication" : "Tunnistautuminen",
"Configuration" : "Asetukset",
"Available for" : "Saatavuus",
+ "Add storage" : "Lisää tallennustila",
"Advanced settings" : "Lisäasetukset",
"Delete" : "Poista",
- "Add storage" : "Lisää tallennustila",
"Allow users to mount external storage" : "Salli käyttäjien liittää erillisiä tallennustiloja",
"Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 1389cd1233b..7126864a9e7 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Authentification",
"Configuration" : "Configuration",
"Available for" : "Disponible pour",
+ "Add storage" : "Ajouter un support de stockage",
"Advanced settings" : "Paramètres avancés",
"Delete" : "Supprimer",
- "Add storage" : "Ajouter un support de stockage",
"Allow users to mount external storage" : "Autoriser les utilisateurs à monter des espaces de stockage externes",
"Allow users to mount the following external storage" : "Autoriser les utilisateurs à monter les stockages externes suivants"
},
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 9d078bf13fc..f6cdce79c67 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -97,9 +97,9 @@
"Authentication" : "Authentification",
"Configuration" : "Configuration",
"Available for" : "Disponible pour",
+ "Add storage" : "Ajouter un support de stockage",
"Advanced settings" : "Paramètres avancés",
"Delete" : "Supprimer",
- "Add storage" : "Ajouter un support de stockage",
"Allow users to mount external storage" : "Autoriser les utilisateurs à monter des espaces de stockage externes",
"Allow users to mount the following external storage" : "Autoriser les utilisateurs à monter les stockages externes suivants"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/apps/files_external/l10n/gl.js b/apps/files_external/l10n/gl.js
index 5827a6ab57f..044b7c34df1 100644
--- a/apps/files_external/l10n/gl.js
+++ b/apps/files_external/l10n/gl.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Folder name" : "Nome do cartafol",
"Configuration" : "Configuración",
"Available for" : "Dispoñíbel para",
+ "Add storage" : "Engadir almacenamento",
"Advanced settings" : "Axustes avanzados",
"Delete" : "Eliminar",
- "Add storage" : "Engadir almacenamento",
"Allow users to mount the following external storage" : "Permitirlle aos usuarios montar o seguinte almacenamento externo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/gl.json b/apps/files_external/l10n/gl.json
index 29dde23c329..143b9a53b43 100644
--- a/apps/files_external/l10n/gl.json
+++ b/apps/files_external/l10n/gl.json
@@ -65,9 +65,9 @@
"Folder name" : "Nome do cartafol",
"Configuration" : "Configuración",
"Available for" : "Dispoñíbel para",
+ "Add storage" : "Engadir almacenamento",
"Advanced settings" : "Axustes avanzados",
"Delete" : "Eliminar",
- "Add storage" : "Engadir almacenamento",
"Allow users to mount the following external storage" : "Permitirlle aos usuarios montar o seguinte almacenamento externo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/hr.js b/apps/files_external/l10n/hr.js
index 4ab71f76ffb..8c632eba518 100644
--- a/apps/files_external/l10n/hr.js
+++ b/apps/files_external/l10n/hr.js
@@ -50,8 +50,8 @@ OC.L10N.register(
"Folder name" : "Naziv mape",
"Configuration" : "Konfiguracija",
"Available for" : "Dostupno za",
- "Delete" : "Izbrišite",
"Add storage" : "Dodajte spremište",
+ "Delete" : "Izbrišite",
"Allow users to mount the following external storage" : "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta"
},
"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/hr.json b/apps/files_external/l10n/hr.json
index e8b8dcd3f61..610a42d46e2 100644
--- a/apps/files_external/l10n/hr.json
+++ b/apps/files_external/l10n/hr.json
@@ -48,8 +48,8 @@
"Folder name" : "Naziv mape",
"Configuration" : "Konfiguracija",
"Available for" : "Dostupno za",
- "Delete" : "Izbrišite",
"Add storage" : "Dodajte spremište",
+ "Delete" : "Izbrišite",
"Allow users to mount the following external storage" : "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta"
},"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/hu_HU.js b/apps/files_external/l10n/hu_HU.js
index 0a307f8a609..964c28285fd 100644
--- a/apps/files_external/l10n/hu_HU.js
+++ b/apps/files_external/l10n/hu_HU.js
@@ -39,7 +39,7 @@ OC.L10N.register(
"Folder name" : "Mappanév",
"Configuration" : "Beállítások",
"Available for" : "Elérhető számukra",
- "Delete" : "Törlés",
- "Add storage" : "Tároló becsatolása"
+ "Add storage" : "Tároló becsatolása",
+ "Delete" : "Törlés"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/hu_HU.json b/apps/files_external/l10n/hu_HU.json
index 4012c0eb490..7942028d038 100644
--- a/apps/files_external/l10n/hu_HU.json
+++ b/apps/files_external/l10n/hu_HU.json
@@ -37,7 +37,7 @@
"Folder name" : "Mappanév",
"Configuration" : "Beállítások",
"Available for" : "Elérhető számukra",
- "Delete" : "Törlés",
- "Add storage" : "Tároló becsatolása"
+ "Add storage" : "Tároló becsatolása",
+ "Delete" : "Törlés"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index b01e13e6085..1029ff8e3c7 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -98,9 +98,9 @@ OC.L10N.register(
"Authentication" : "Otentikasi",
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
+ "Add storage" : "Tambahkan penyimpanan",
"Advanced settings" : "Pengaturan Lanjutan",
"Delete" : "Hapus",
- "Add storage" : "Tambahkan penyimpanan",
"Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index 383850199ac..acaf37381bc 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -96,9 +96,9 @@
"Authentication" : "Otentikasi",
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
+ "Add storage" : "Tambahkan penyimpanan",
"Advanced settings" : "Pengaturan Lanjutan",
"Delete" : "Hapus",
- "Add storage" : "Tambahkan penyimpanan",
"Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index 8e126abe93b..2bc1d6db3c8 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Every time the filesystem is used" : "Ogni volta che il filesystem viene utilizzato",
"All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.",
"(group)" : "(gruppo)",
+ "Admin defined" : "Definito dall'amministratore",
"Saved" : "Salvato",
"Access key" : "Chiave di accesso",
"Secret key" : "Chiave segreta",
@@ -99,9 +100,9 @@ OC.L10N.register(
"Authentication" : "Autenticazione",
"Configuration" : "Configurazione",
"Available for" : "Disponibile per",
+ "Add storage" : "Aggiungi archiviazione",
"Advanced settings" : "Impostazioni avanzate",
"Delete" : "Elimina",
- "Add storage" : "Aggiungi archiviazione",
"Allow users to mount external storage" : "Consenti agli utenti di montare archiviazioni esterne",
"Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente archiviazione esterna"
},
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index e21cf5973d2..e719f29dcd4 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -31,6 +31,7 @@
"Every time the filesystem is used" : "Ogni volta che il filesystem viene utilizzato",
"All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.",
"(group)" : "(gruppo)",
+ "Admin defined" : "Definito dall'amministratore",
"Saved" : "Salvato",
"Access key" : "Chiave di accesso",
"Secret key" : "Chiave segreta",
@@ -97,9 +98,9 @@
"Authentication" : "Autenticazione",
"Configuration" : "Configurazione",
"Available for" : "Disponibile per",
+ "Add storage" : "Aggiungi archiviazione",
"Advanced settings" : "Impostazioni avanzate",
"Delete" : "Elimina",
- "Add storage" : "Aggiungi archiviazione",
"Allow users to mount external storage" : "Consenti agli utenti di montare archiviazioni esterne",
"Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente archiviazione esterna"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js
index 4481c7fdd2e..3dcae3f8afc 100644
--- a/apps/files_external/l10n/ja.js
+++ b/apps/files_external/l10n/ja.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "認証",
"Configuration" : "設定",
"Available for" : "利用可能",
+ "Add storage" : "ストレージを追加",
"Advanced settings" : "詳細設定",
"Delete" : "削除",
- "Add storage" : "ストレージを追加",
"Allow users to mount external storage" : "ユーザーに外部ストレージの接続を許可する",
"Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する"
},
diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json
index 5573c11fe84..4aaaac43a5a 100644
--- a/apps/files_external/l10n/ja.json
+++ b/apps/files_external/l10n/ja.json
@@ -97,9 +97,9 @@
"Authentication" : "認証",
"Configuration" : "設定",
"Available for" : "利用可能",
+ "Add storage" : "ストレージを追加",
"Advanced settings" : "詳細設定",
"Delete" : "削除",
- "Add storage" : "ストレージを追加",
"Allow users to mount external storage" : "ユーザーに外部ストレージの接続を許可する",
"Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_external/l10n/ka_GE.js b/apps/files_external/l10n/ka_GE.js
index 824295cb93d..e82c778862e 100644
--- a/apps/files_external/l10n/ka_GE.js
+++ b/apps/files_external/l10n/ka_GE.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"External Storage" : "ექსტერნალ საცავი",
"Folder name" : "ფოლდერის სახელი",
"Configuration" : "კონფიგურაცია",
- "Delete" : "წაშლა",
- "Add storage" : "საცავის დამატება"
+ "Add storage" : "საცავის დამატება",
+ "Delete" : "წაშლა"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/ka_GE.json b/apps/files_external/l10n/ka_GE.json
index 73ad2cfd0c5..a706d42225b 100644
--- a/apps/files_external/l10n/ka_GE.json
+++ b/apps/files_external/l10n/ka_GE.json
@@ -19,7 +19,7 @@
"External Storage" : "ექსტერნალ საცავი",
"Folder name" : "ფოლდერის სახელი",
"Configuration" : "კონფიგურაცია",
- "Delete" : "წაშლა",
- "Add storage" : "საცავის დამატება"
+ "Add storage" : "საცავის დამატება",
+ "Delete" : "წაშლა"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/km.js b/apps/files_external/l10n/km.js
index 7a5c6cb86c8..e5aad9697ae 100644
--- a/apps/files_external/l10n/km.js
+++ b/apps/files_external/l10n/km.js
@@ -19,7 +19,7 @@ OC.L10N.register(
"External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
"Folder name" : "ឈ្មោះ​ថត",
"Configuration" : "ការ​កំណត់​សណ្ឋាន",
- "Delete" : "លុប",
- "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក"
+ "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក",
+ "Delete" : "លុប"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/km.json b/apps/files_external/l10n/km.json
index 0375b5bfee2..71213394d53 100644
--- a/apps/files_external/l10n/km.json
+++ b/apps/files_external/l10n/km.json
@@ -17,7 +17,7 @@
"External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
"Folder name" : "ឈ្មោះ​ថត",
"Configuration" : "ការ​កំណត់​សណ្ឋាន",
- "Delete" : "លុប",
- "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក"
+ "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក",
+ "Delete" : "លុប"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js
index 9028a3e2986..0eaac8aee4d 100644
--- a/apps/files_external/l10n/ko.js
+++ b/apps/files_external/l10n/ko.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "인증",
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
+ "Add storage" : "저장소 추가",
"Advanced settings" : "고급 설정",
"Delete" : "삭제",
- "Add storage" : "저장소 추가",
"Allow users to mount external storage" : "사용자가 외부 저장소를 마운트하도록 허용",
"Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용"
},
diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json
index d27fdfcae30..7f63ba793e7 100644
--- a/apps/files_external/l10n/ko.json
+++ b/apps/files_external/l10n/ko.json
@@ -97,9 +97,9 @@
"Authentication" : "인증",
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
+ "Add storage" : "저장소 추가",
"Advanced settings" : "고급 설정",
"Delete" : "삭제",
- "Add storage" : "저장소 추가",
"Allow users to mount external storage" : "사용자가 외부 저장소를 마운트하도록 허용",
"Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_external/l10n/lt_LT.js b/apps/files_external/l10n/lt_LT.js
index 78d03a865f2..0efbfa333b8 100644
--- a/apps/files_external/l10n/lt_LT.js
+++ b/apps/files_external/l10n/lt_LT.js
@@ -23,7 +23,7 @@ OC.L10N.register(
"External Storage" : "Išorinės saugyklos",
"Folder name" : "Katalogo pavadinimas",
"Configuration" : "Konfigūracija",
- "Delete" : "Ištrinti",
- "Add storage" : "Pridėti saugyklą"
+ "Add storage" : "Pridėti saugyklą",
+ "Delete" : "Ištrinti"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/lt_LT.json b/apps/files_external/l10n/lt_LT.json
index fcb1f1f39bd..13c1543748f 100644
--- a/apps/files_external/l10n/lt_LT.json
+++ b/apps/files_external/l10n/lt_LT.json
@@ -21,7 +21,7 @@
"External Storage" : "Išorinės saugyklos",
"Folder name" : "Katalogo pavadinimas",
"Configuration" : "Konfigūracija",
- "Delete" : "Ištrinti",
- "Add storage" : "Pridėti saugyklą"
+ "Add storage" : "Pridėti saugyklą",
+ "Delete" : "Ištrinti"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/lv.js b/apps/files_external/l10n/lv.js
index 6590706fa2a..d6733a1d9c0 100644
--- a/apps/files_external/l10n/lv.js
+++ b/apps/files_external/l10n/lv.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"External Storage" : "Ārējā krātuve",
"Folder name" : "Mapes nosaukums",
"Configuration" : "Konfigurācija",
- "Delete" : "Dzēst",
- "Add storage" : "Pievienot krātuvi"
+ "Add storage" : "Pievienot krātuvi",
+ "Delete" : "Dzēst"
},
"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
index 4e27db77737..57fe7cbc048 100644
--- a/apps/files_external/l10n/lv.json
+++ b/apps/files_external/l10n/lv.json
@@ -19,7 +19,7 @@
"External Storage" : "Ārējā krātuve",
"Folder name" : "Mapes nosaukums",
"Configuration" : "Konfigurācija",
- "Delete" : "Dzēst",
- "Add storage" : "Pievienot krātuvi"
+ "Add storage" : "Pievienot krātuvi",
+ "Delete" : "Dzēst"
},"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/nb_NO.js b/apps/files_external/l10n/nb_NO.js
index ecafac048c0..0e9e2dd24ce 100644
--- a/apps/files_external/l10n/nb_NO.js
+++ b/apps/files_external/l10n/nb_NO.js
@@ -98,9 +98,9 @@ OC.L10N.register(
"Authentication" : "Autentisering",
"Configuration" : "Konfigurasjon",
"Available for" : "Tilgjengelig for",
+ "Add storage" : "Legg til lagringsplass",
"Advanced settings" : "Avanserte innstillinger",
"Delete" : "Slett",
- "Add storage" : "Legg til lagringsplass",
"Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json
index 9a7a2ae6287..ddf5221e955 100644
--- a/apps/files_external/l10n/nb_NO.json
+++ b/apps/files_external/l10n/nb_NO.json
@@ -96,9 +96,9 @@
"Authentication" : "Autentisering",
"Configuration" : "Konfigurasjon",
"Available for" : "Tilgjengelig for",
+ "Add storage" : "Legg til lagringsplass",
"Advanced settings" : "Avanserte innstillinger",
"Delete" : "Slett",
- "Add storage" : "Legg til lagringsplass",
"Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/nds.js b/apps/files_external/l10n/nds.js
index f7f1da30c60..b9417b4a4d5 100644
--- a/apps/files_external/l10n/nds.js
+++ b/apps/files_external/l10n/nds.js
@@ -93,9 +93,9 @@ OC.L10N.register(
"Authentication" : "Authentifizierung",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
"Allow users to mount the following external storage" : "Erlaube Benutzern folgenden externen Speicher einzuhängen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/nds.json b/apps/files_external/l10n/nds.json
index bfadfc0c123..dd1ca770ebd 100644
--- a/apps/files_external/l10n/nds.json
+++ b/apps/files_external/l10n/nds.json
@@ -91,9 +91,9 @@
"Authentication" : "Authentifizierung",
"Configuration" : "Konfiguration",
"Available for" : "Verfügbar für",
+ "Add storage" : "Speicher hinzufügen",
"Advanced settings" : "Erweiterte Einstellungen",
"Delete" : "Löschen",
- "Add storage" : "Speicher hinzufügen",
"Allow users to mount the following external storage" : "Erlaube Benutzern folgenden externen Speicher einzuhängen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 57481ce4176..cb015b104cb 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Authenticatie",
"Configuration" : "Configuratie",
"Available for" : "Beschikbaar voor",
+ "Add storage" : "Toevoegen opslag",
"Advanced settings" : "Geavanceerde instellingen",
"Delete" : "Verwijder",
- "Add storage" : "Toevoegen opslag",
"Allow users to mount external storage" : "Sta gebruikers toe om een externe opslag aan te koppelen",
"Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen"
},
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index fc80c3bbb2c..1a80aa31e30 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -97,9 +97,9 @@
"Authentication" : "Authenticatie",
"Configuration" : "Configuratie",
"Available for" : "Beschikbaar voor",
+ "Add storage" : "Toevoegen opslag",
"Advanced settings" : "Geavanceerde instellingen",
"Delete" : "Verwijder",
- "Add storage" : "Toevoegen opslag",
"Allow users to mount external storage" : "Sta gebruikers toe om een externe opslag aan te koppelen",
"Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/oc.js b/apps/files_external/l10n/oc.js
index a45aebf81ba..a212c9a5179 100644
--- a/apps/files_external/l10n/oc.js
+++ b/apps/files_external/l10n/oc.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Autentificacion",
"Configuration" : "Configuracion",
"Available for" : "Disponible per",
+ "Add storage" : "Apondre un supòrt d'emmagazinatge",
"Advanced settings" : "Paramètres avançats",
"Delete" : "Suprimir",
- "Add storage" : "Apondre un supòrt d'emmagazinatge",
"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"
},
diff --git a/apps/files_external/l10n/oc.json b/apps/files_external/l10n/oc.json
index c49326a955f..a7d51dd8ad0 100644
--- a/apps/files_external/l10n/oc.json
+++ b/apps/files_external/l10n/oc.json
@@ -97,9 +97,9 @@
"Authentication" : "Autentificacion",
"Configuration" : "Configuracion",
"Available for" : "Disponible per",
+ "Add storage" : "Apondre un supòrt d'emmagazinatge",
"Advanced settings" : "Paramètres avançats",
"Delete" : "Suprimir",
- "Add storage" : "Apondre un supòrt d'emmagazinatge",
"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);"
diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js
index 1f7cc6b1979..99de2703433 100644
--- a/apps/files_external/l10n/pl.js
+++ b/apps/files_external/l10n/pl.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Folder name" : "Nazwa folderu",
"Configuration" : "Konfiguracja",
"Available for" : "Dostępne przez",
+ "Add storage" : "Dodaj zasoby dyskowe",
"Advanced settings" : "Ustawienia zaawansowane",
"Delete" : "Usuń",
- "Add storage" : "Dodaj zasoby dyskowe",
"Allow users to mount the following external storage" : "Pozwól użytkownikom montować następujące zewnętrzne zasoby dyskowe"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/pl.json b/apps/files_external/l10n/pl.json
index 5b5059a5d18..258811f2d81 100644
--- a/apps/files_external/l10n/pl.json
+++ b/apps/files_external/l10n/pl.json
@@ -65,9 +65,9 @@
"Folder name" : "Nazwa folderu",
"Configuration" : "Konfiguracja",
"Available for" : "Dostępne przez",
+ "Add storage" : "Dodaj zasoby dyskowe",
"Advanced settings" : "Ustawienia zaawansowane",
"Delete" : "Usuń",
- "Add storage" : "Dodaj zasoby dyskowe",
"Allow users to mount the following external storage" : "Pozwól użytkownikom montować następujące zewnętrzne zasoby dyskowe"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index 92bc16355d3..0d4f04ae226 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Every time the filesystem is used" : "Toda vez que o sistema de arquivos é usado",
"All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.",
"(group)" : "(grupo)",
+ "Admin defined" : "Definido pelo administrador",
"Saved" : "Salvo",
"Access key" : "Chave da acesso",
"Secret key" : "Chave secreta",
@@ -99,9 +100,9 @@ OC.L10N.register(
"Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para",
+ "Add storage" : "Adicionar Armazenamento",
"Advanced settings" : "Configurações avançadas",
"Delete" : "Excluir",
- "Add storage" : "Adicionar Armazenamento",
"Allow users to mount external storage" : "Permitir que usuários montem armazenamento externo",
"Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo"
},
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index bb6e0a96cff..d49e818ea0f 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -31,6 +31,7 @@
"Every time the filesystem is used" : "Toda vez que o sistema de arquivos é usado",
"All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.",
"(group)" : "(grupo)",
+ "Admin defined" : "Definido pelo administrador",
"Saved" : "Salvo",
"Access key" : "Chave da acesso",
"Secret key" : "Chave secreta",
@@ -97,9 +98,9 @@
"Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para",
+ "Add storage" : "Adicionar Armazenamento",
"Advanced settings" : "Configurações avançadas",
"Delete" : "Excluir",
- "Add storage" : "Adicionar Armazenamento",
"Allow users to mount external storage" : "Permitir que usuários montem armazenamento externo",
"Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js
index 4e8b3245e66..f6c3254de0b 100644
--- a/apps/files_external/l10n/pt_PT.js
+++ b/apps/files_external/l10n/pt_PT.js
@@ -92,9 +92,9 @@ OC.L10N.register(
"Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para ",
+ "Add storage" : "Adicionar armazenamento",
"Advanced settings" : "Definições avançadas",
"Delete" : "Apagar",
- "Add storage" : "Adicionar armazenamento",
"Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json
index 51333429106..ec22394470e 100644
--- a/apps/files_external/l10n/pt_PT.json
+++ b/apps/files_external/l10n/pt_PT.json
@@ -90,9 +90,9 @@
"Authentication" : "Autenticação",
"Configuration" : "Configuração",
"Available for" : "Disponível para ",
+ "Add storage" : "Adicionar armazenamento",
"Advanced settings" : "Definições avançadas",
"Delete" : "Apagar",
- "Add storage" : "Adicionar armazenamento",
"Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ro.js b/apps/files_external/l10n/ro.js
index d8ba040824c..cc3a065a21d 100644
--- a/apps/files_external/l10n/ro.js
+++ b/apps/files_external/l10n/ro.js
@@ -29,8 +29,8 @@ OC.L10N.register(
"External Storage" : "Stocare externă",
"Folder name" : "Denumire director",
"Configuration" : "Configurație",
- "Delete" : "Șterge",
"Add storage" : "Adauga stocare",
+ "Delete" : "Șterge",
"Allow users to mount the following external storage" : "Permite utilizatorilor să monteze următoarea unitate de stocare"
},
"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
index cbe2826def4..2f1f8e32883 100644
--- a/apps/files_external/l10n/ro.json
+++ b/apps/files_external/l10n/ro.json
@@ -27,8 +27,8 @@
"External Storage" : "Stocare externă",
"Folder name" : "Denumire director",
"Configuration" : "Configurație",
- "Delete" : "Șterge",
"Add storage" : "Adauga stocare",
+ "Delete" : "Șterge",
"Allow users to mount the following external storage" : "Permite utilizatorilor să monteze următoarea unitate de stocare"
},"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 5550ea780ab..edcfc6af6c0 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -98,9 +98,9 @@ OC.L10N.register(
"Authentication" : "Авторизация",
"Configuration" : "Конфигурация",
"Available for" : "Доступно для",
+ "Add storage" : "Добавить хранилище",
"Advanced settings" : "Расширенные настройки",
"Delete" : "Удалить",
- "Add storage" : "Добавить хранилище",
"Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index 52792a3f09a..b85e04d3667 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -96,9 +96,9 @@
"Authentication" : "Авторизация",
"Configuration" : "Конфигурация",
"Available for" : "Доступно для",
+ "Add storage" : "Добавить хранилище",
"Advanced settings" : "Расширенные настройки",
"Delete" : "Удалить",
- "Add storage" : "Добавить хранилище",
"Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/sk_SK.js b/apps/files_external/l10n/sk_SK.js
index 41f9c866196..7485625455c 100644
--- a/apps/files_external/l10n/sk_SK.js
+++ b/apps/files_external/l10n/sk_SK.js
@@ -97,9 +97,9 @@ OC.L10N.register(
"Authentication" : "Autentifikácia",
"Configuration" : "Nastavenia",
"Available for" : "K dispozícii pre",
+ "Add storage" : "Pridať úložisko",
"Advanced settings" : "Rozšírené nastavenia",
"Delete" : "Zmazať",
- "Add storage" : "Pridať úložisko",
"Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/files_external/l10n/sk_SK.json b/apps/files_external/l10n/sk_SK.json
index 4072136fa53..9ed60285b2d 100644
--- a/apps/files_external/l10n/sk_SK.json
+++ b/apps/files_external/l10n/sk_SK.json
@@ -95,9 +95,9 @@
"Authentication" : "Autentifikácia",
"Configuration" : "Nastavenia",
"Available for" : "K dispozícii pre",
+ "Add storage" : "Pridať úložisko",
"Advanced settings" : "Rozšírené nastavenia",
"Delete" : "Zmazať",
- "Add storage" : "Pridať úložisko",
"Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/sl.js b/apps/files_external/l10n/sl.js
index f9513a5f11c..846f1d0095a 100644
--- a/apps/files_external/l10n/sl.js
+++ b/apps/files_external/l10n/sl.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Folder name" : "Ime mape",
"Configuration" : "Nastavitve",
"Available for" : "Na voljo za",
+ "Add storage" : "Dodaj shrambo",
"Advanced settings" : "Napredne nastavitve",
"Delete" : "Izbriši",
- "Add storage" : "Dodaj shrambo",
"Allow users to mount the following external storage" : "Dovoli uporabnikom priklapljanje navedenih zunanjih shramb."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files_external/l10n/sl.json b/apps/files_external/l10n/sl.json
index ca97f27b234..aa7145180e4 100644
--- a/apps/files_external/l10n/sl.json
+++ b/apps/files_external/l10n/sl.json
@@ -65,9 +65,9 @@
"Folder name" : "Ime mape",
"Configuration" : "Nastavitve",
"Available for" : "Na voljo za",
+ "Add storage" : "Dodaj shrambo",
"Advanced settings" : "Napredne nastavitve",
"Delete" : "Izbriši",
- "Add storage" : "Dodaj shrambo",
"Allow users to mount the following external storage" : "Dovoli uporabnikom priklapljanje navedenih zunanjih shramb."
},"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_external/l10n/sq.js b/apps/files_external/l10n/sq.js
index f8e5c5a27dc..535831268b9 100644
--- a/apps/files_external/l10n/sq.js
+++ b/apps/files_external/l10n/sq.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Every time the filesystem is used" : "Sa herë që përdoret sistemi i kartelave",
"All users. Type to select user or group." : "Krejt përdoruesit. Shtypni që të përzgjidhet përdorues ose grup.",
"(group)" : "(grup)",
+ "Admin defined" : "Përcaktuar nga përgjegjësi",
"Saved" : "U ruajt",
"Access key" : "Kyç hyrjesh",
"Secret key" : "Kyç i fshehtë",
@@ -47,6 +48,7 @@ OC.L10N.register(
"OpenStack" : "OpenStack",
"Username" : "Emër përdoruesi",
"Password" : "Fjalëkalim",
+ "Tenant name" : "Emër qiraxhiu",
"Rackspace" : "Rackspace",
"API key" : "Kyç API",
"Username and password" : "Emër përdoruesi dhe fjalëkalim",
@@ -97,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Mirëfilltësim",
"Configuration" : "Formësim",
"Available for" : "E gatshme për",
+ "Add storage" : "Shtoni depozitë",
"Advanced settings" : "Rregullime të mëtejshme",
"Delete" : "Fshije",
- "Add storage" : "Shtoni depozitë",
"Allow users to mount external storage" : "Lejoju përdoruesve të montojnë depozita të jashtme",
"Allow users to mount the following external storage" : "Lejoju përdoruesve të montojnë depozitën e jashtme vijuese"
},
diff --git a/apps/files_external/l10n/sq.json b/apps/files_external/l10n/sq.json
index 0da8e9406bb..2acb3cbc606 100644
--- a/apps/files_external/l10n/sq.json
+++ b/apps/files_external/l10n/sq.json
@@ -31,6 +31,7 @@
"Every time the filesystem is used" : "Sa herë që përdoret sistemi i kartelave",
"All users. Type to select user or group." : "Krejt përdoruesit. Shtypni që të përzgjidhet përdorues ose grup.",
"(group)" : "(grup)",
+ "Admin defined" : "Përcaktuar nga përgjegjësi",
"Saved" : "U ruajt",
"Access key" : "Kyç hyrjesh",
"Secret key" : "Kyç i fshehtë",
@@ -45,6 +46,7 @@
"OpenStack" : "OpenStack",
"Username" : "Emër përdoruesi",
"Password" : "Fjalëkalim",
+ "Tenant name" : "Emër qiraxhiu",
"Rackspace" : "Rackspace",
"API key" : "Kyç API",
"Username and password" : "Emër përdoruesi dhe fjalëkalim",
@@ -95,9 +97,9 @@
"Authentication" : "Mirëfilltësim",
"Configuration" : "Formësim",
"Available for" : "E gatshme për",
+ "Add storage" : "Shtoni depozitë",
"Advanced settings" : "Rregullime të mëtejshme",
"Delete" : "Fshije",
- "Add storage" : "Shtoni depozitë",
"Allow users to mount external storage" : "Lejoju përdoruesve të montojnë depozita të jashtme",
"Allow users to mount the following external storage" : "Lejoju përdoruesve të montojnë depozitën e jashtme vijuese"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js
index 02596d8ab22..add0cc4dab7 100644
--- a/apps/files_external/l10n/sr.js
+++ b/apps/files_external/l10n/sr.js
@@ -66,9 +66,9 @@ OC.L10N.register(
"Folder name" : "Назив фасцикле",
"Configuration" : "Подешавање",
"Available for" : "Доступно за",
+ "Add storage" : "Додај складиште",
"Advanced settings" : "Напредне поставке",
"Delete" : "Обриши",
- "Add storage" : "Додај складиште",
"Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/sr.json b/apps/files_external/l10n/sr.json
index f1c12eeb0f7..3e7ac487280 100644
--- a/apps/files_external/l10n/sr.json
+++ b/apps/files_external/l10n/sr.json
@@ -64,9 +64,9 @@
"Folder name" : "Назив фасцикле",
"Configuration" : "Подешавање",
"Available for" : "Доступно за",
+ "Add storage" : "Додај складиште",
"Advanced settings" : "Напредне поставке",
"Delete" : "Обриши",
- "Add storage" : "Додај складиште",
"Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/sr@latin.js b/apps/files_external/l10n/sr@latin.js
index 880a33c1614..0420189571c 100644
--- a/apps/files_external/l10n/sr@latin.js
+++ b/apps/files_external/l10n/sr@latin.js
@@ -48,8 +48,8 @@ OC.L10N.register(
"Folder name" : "Ime fascikle",
"Configuration" : "Podešavanje",
"Available for" : "Dostupno za",
- "Delete" : "Obriši",
"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
index 760100867eb..3320ab2c863 100644
--- a/apps/files_external/l10n/sr@latin.json
+++ b/apps/files_external/l10n/sr@latin.json
@@ -46,8 +46,8 @@
"Folder name" : "Ime fascikle",
"Configuration" : "Podešavanje",
"Available for" : "Dostupno za",
- "Delete" : "Obriši",
"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/sv.js b/apps/files_external/l10n/sv.js
index 09786533e87..f20b96caed8 100644
--- a/apps/files_external/l10n/sv.js
+++ b/apps/files_external/l10n/sv.js
@@ -53,8 +53,8 @@ OC.L10N.register(
"Folder name" : "Mappnamn",
"Configuration" : "Konfiguration",
"Available for" : "Tillgänglig för",
- "Delete" : "Radera",
"Add storage" : "Lägg till lagring",
+ "Delete" : "Radera",
"Allow users to mount the following external storage" : "Tillåt användare att montera följande extern lagring"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json
index ddb7439cb8d..cd3dc13296d 100644
--- a/apps/files_external/l10n/sv.json
+++ b/apps/files_external/l10n/sv.json
@@ -51,8 +51,8 @@
"Folder name" : "Mappnamn",
"Configuration" : "Konfiguration",
"Available for" : "Tillgänglig för",
- "Delete" : "Radera",
"Add storage" : "Lägg till lagring",
+ "Delete" : "Radera",
"Allow users to mount the following external storage" : "Tillåt användare att montera följande extern lagring"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/th_TH.js b/apps/files_external/l10n/th_TH.js
index 55611a5531d..022fb9b55e3 100644
--- a/apps/files_external/l10n/th_TH.js
+++ b/apps/files_external/l10n/th_TH.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "รับรองความถูกต้อง",
"Configuration" : "การกำหนดค่า",
"Available for" : "สามารถใช้ได้สำหรับ",
+ "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
"Advanced settings" : "ตั้งค่าขั้นสูง",
"Delete" : "ลบ",
- "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
"Allow users to mount external storage" : "อนุญาตให้ผู้ใช้ติดตั้งการจัดเก็บข้อมูลภายนอก",
"Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้"
},
diff --git a/apps/files_external/l10n/th_TH.json b/apps/files_external/l10n/th_TH.json
index 2db63df9df2..5b3713f0ed1 100644
--- a/apps/files_external/l10n/th_TH.json
+++ b/apps/files_external/l10n/th_TH.json
@@ -97,9 +97,9 @@
"Authentication" : "รับรองความถูกต้อง",
"Configuration" : "การกำหนดค่า",
"Available for" : "สามารถใช้ได้สำหรับ",
+ "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
"Advanced settings" : "ตั้งค่าขั้นสูง",
"Delete" : "ลบ",
- "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
"Allow users to mount external storage" : "อนุญาตให้ผู้ใช้ติดตั้งการจัดเก็บข้อมูลภายนอก",
"Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js
index 9d46012454b..78f9df04ec6 100644
--- a/apps/files_external/l10n/tr.js
+++ b/apps/files_external/l10n/tr.js
@@ -99,9 +99,9 @@ OC.L10N.register(
"Authentication" : "Kimlik Doğrulama",
"Configuration" : "Yapılandırma",
"Available for" : "Kullanabilenler",
+ "Add storage" : "Depo ekle",
"Advanced settings" : "Gelişmiş ayarlar",
"Delete" : "Sil",
- "Add storage" : "Depo ekle",
"Allow users to mount external storage" : "Kullanıcılara harici depolama bağlama izin ver",
"Allow users to mount the following external storage" : "Kullanıcıların aşağıdaki harici depolamayı bağlamalarına izin ver"
},
diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json
index 17c76b1916e..a798f4a7427 100644
--- a/apps/files_external/l10n/tr.json
+++ b/apps/files_external/l10n/tr.json
@@ -97,9 +97,9 @@
"Authentication" : "Kimlik Doğrulama",
"Configuration" : "Yapılandırma",
"Available for" : "Kullanabilenler",
+ "Add storage" : "Depo ekle",
"Advanced settings" : "Gelişmiş ayarlar",
"Delete" : "Sil",
- "Add storage" : "Depo ekle",
"Allow users to mount external storage" : "Kullanıcılara harici depolama bağlama izin ver",
"Allow users to mount the following external storage" : "Kullanıcıların aşağıdaki harici depolamayı bağlamalarına izin ver"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index f8ca8dc360c..702b3e328ce 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -61,9 +61,9 @@ OC.L10N.register(
"Folder name" : "Ім'я теки",
"Configuration" : "Налаштування",
"Available for" : "Доступний для",
+ "Add storage" : "Додати сховище",
"Advanced settings" : "Розширені налаштування",
"Delete" : "Видалити",
- "Add storage" : "Додати сховище",
"Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index c34d0d2c82f..cddda62118f 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -59,9 +59,9 @@
"Folder name" : "Ім'я теки",
"Configuration" : "Налаштування",
"Available for" : "Доступний для",
+ "Add storage" : "Додати сховище",
"Advanced settings" : "Розширені налаштування",
"Delete" : "Видалити",
- "Add storage" : "Додати сховище",
"Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/vi.js b/apps/files_external/l10n/vi.js
index f3fdb39136c..65b3d492429 100644
--- a/apps/files_external/l10n/vi.js
+++ b/apps/files_external/l10n/vi.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"External Storage" : "Lưu trữ ngoài",
"Folder name" : "Tên thư mục",
"Configuration" : "Cấu hình",
- "Delete" : "Xóa",
- "Add storage" : "Thêm bộ 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
index fdba39fc95e..031dddee8e3 100644
--- a/apps/files_external/l10n/vi.json
+++ b/apps/files_external/l10n/vi.json
@@ -19,7 +19,7 @@
"External Storage" : "Lưu trữ ngoài",
"Folder name" : "Tên thư mục",
"Configuration" : "Cấu hình",
- "Delete" : "Xóa",
- "Add storage" : "Thêm bộ 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/l10n/zh_CN.js b/apps/files_external/l10n/zh_CN.js
index 4b99fc170a2..ca35a97bb53 100644
--- a/apps/files_external/l10n/zh_CN.js
+++ b/apps/files_external/l10n/zh_CN.js
@@ -40,8 +40,8 @@ OC.L10N.register(
"Folder name" : "目录名称",
"Configuration" : "配置",
"Available for" : "可用于",
- "Delete" : "删除",
"Add storage" : "增加存储",
+ "Delete" : "删除",
"Allow users to mount the following external storage" : "允许用户挂载以下外部存储"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/zh_CN.json b/apps/files_external/l10n/zh_CN.json
index fddc688c5c2..53c1df78899 100644
--- a/apps/files_external/l10n/zh_CN.json
+++ b/apps/files_external/l10n/zh_CN.json
@@ -38,8 +38,8 @@
"Folder name" : "目录名称",
"Configuration" : "配置",
"Available for" : "可用于",
- "Delete" : "删除",
"Add storage" : "增加存储",
+ "Delete" : "删除",
"Allow users to mount the following external storage" : "允许用户挂载以下外部存储"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js
index 61f224e4ffe..56182dc68c2 100644
--- a/apps/files_external/l10n/zh_TW.js
+++ b/apps/files_external/l10n/zh_TW.js
@@ -93,9 +93,9 @@ OC.L10N.register(
"Authentication" : "驗證",
"Configuration" : "設定",
"Available for" : "可用的",
+ "Add storage" : "增加儲存區",
"Advanced settings" : "進階設定",
"Delete" : "刪除",
- "Add storage" : "增加儲存區",
"Allow users to mount external storage" : "允許使用者能自行掛載外部儲存",
"Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存"
},
diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json
index b9aa234e89e..629544bdaaf 100644
--- a/apps/files_external/l10n/zh_TW.json
+++ b/apps/files_external/l10n/zh_TW.json
@@ -91,9 +91,9 @@
"Authentication" : "驗證",
"Configuration" : "設定",
"Available for" : "可用的",
+ "Add storage" : "增加儲存區",
"Advanced settings" : "進階設定",
"Delete" : "刪除",
- "Add storage" : "增加儲存區",
"Allow users to mount external storage" : "允許使用者能自行掛載外部儲存",
"Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_external/personal.php b/apps/files_external/personal.php
index df15c3bd258..05196a58905 100644
--- a/apps/files_external/personal.php
+++ b/apps/files_external/personal.php
@@ -32,31 +32,11 @@ $appContainer = \OC_Mount_Config::$app->getContainer();
$backendService = $appContainer->query('OCA\Files_External\Service\BackendService');
$userStoragesService = $appContainer->query('OCA\Files_external\Service\UserStoragesService');
-OCP\Util::addScript('files_external', 'settings');
-OCP\Util::addStyle('files_external', 'settings');
-
-$backends = array_filter($backendService->getAvailableBackends(), function($backend) {
- return $backend->isVisibleFor(BackendService::VISIBILITY_PERSONAL);
-});
-$authMechanisms = array_filter($backendService->getAuthMechanisms(), function($authMechanism) {
- return $authMechanism->isVisibleFor(BackendService::VISIBILITY_PERSONAL);
-});
-foreach ($backends as $backend) {
- if ($backend->getCustomJs()) {
- \OCP\Util::addScript('files_external', $backend->getCustomJs());
- }
-}
-foreach ($authMechanisms as $authMechanism) {
- if ($authMechanism->getCustomJs()) {
- \OCP\Util::addScript('files_external', $authMechanism->getCustomJs());
- }
-}
-
$tmpl = new OCP\Template('files_external', 'settings');
$tmpl->assign('encryptionEnabled', \OC::$server->getEncryptionManager()->isEnabled());
-$tmpl->assign('isAdminPage', false);
+$tmpl->assign('visibilityType', BackendService::VISIBILITY_PERSONAL);
$tmpl->assign('storages', $userStoragesService->getStorages());
$tmpl->assign('dependencies', OC_Mount_Config::dependencyMessage($backendService->getBackends()));
-$tmpl->assign('backends', $backends);
-$tmpl->assign('authMechanisms', $authMechanisms);
+$tmpl->assign('backends', $backendService->getAvailableBackends());
+$tmpl->assign('authMechanisms', $backendService->getAuthMechanisms());
return $tmpl->fetchPage();
diff --git a/apps/files_external/settings.php b/apps/files_external/settings.php
index 03ed363bdb2..50d47d667fd 100644
--- a/apps/files_external/settings.php
+++ b/apps/files_external/settings.php
@@ -35,40 +35,15 @@ $appContainer = \OC_Mount_Config::$app->getContainer();
$backendService = $appContainer->query('OCA\Files_External\Service\BackendService');
$globalStoragesService = $appContainer->query('OCA\Files_external\Service\GlobalStoragesService');
-OCP\Util::addScript('files_external', 'settings');
-OCP\Util::addStyle('files_external', 'settings');
-
\OC_Util::addVendorScript('select2/select2');
\OC_Util::addVendorStyle('select2/select2');
-$backends = array_filter($backendService->getAvailableBackends(), function($backend) {
- return $backend->isVisibleFor(BackendService::VISIBILITY_ADMIN);
-});
-$authMechanisms = array_filter($backendService->getAuthMechanisms(), function($authMechanism) {
- return $authMechanism->isVisibleFor(BackendService::VISIBILITY_ADMIN);
-});
-foreach ($backends as $backend) {
- if ($backend->getCustomJs()) {
- \OCP\Util::addScript('files_external', $backend->getCustomJs());
- }
-}
-foreach ($authMechanisms as $authMechanism) {
- if ($authMechanism->getCustomJs()) {
- \OCP\Util::addScript('files_external', $authMechanism->getCustomJs());
- }
-}
-
-$userBackends = array_filter($backendService->getAvailableBackends(), function($backend) {
- return $backend->isAllowedVisibleFor(BackendService::VISIBILITY_PERSONAL);
-});
-
$tmpl = new OCP\Template('files_external', 'settings');
$tmpl->assign('encryptionEnabled', \OC::$server->getEncryptionManager()->isEnabled());
-$tmpl->assign('isAdminPage', true);
+$tmpl->assign('visibilityType', BackendService::VISIBILITY_ADMIN);
$tmpl->assign('storages', $globalStoragesService->getStorages());
-$tmpl->assign('backends', $backends);
-$tmpl->assign('authMechanisms', $authMechanisms);
-$tmpl->assign('userBackends', $userBackends);
+$tmpl->assign('backends', $backendService->getAvailableBackends());
+$tmpl->assign('authMechanisms', $backendService->getAuthMechanisms());
$tmpl->assign('dependencies', OC_Mount_Config::dependencyMessage($backendService->getBackends()));
$tmpl->assign('allowUserMounting', $backendService->isUserMountingAllowed());
return $tmpl->fetchPage();
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index cebf6cc4de0..f7caf3d2caa 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -3,6 +3,21 @@
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Service\BackendService;
+ script('files_external', 'settings');
+ style('files_external', 'settings');
+
+ // load custom JS
+ foreach ($_['backends'] as $backend) {
+ if ($backend->getCustomJs()) {
+ script('files_external', $backend->getCustomJs());
+ }
+ }
+ foreach ($_['authMechanisms'] as $authMechanism) {
+ if ($authMechanism->getCustomJs()) {
+ script('files_external', $authMechanism->getCustomJs());
+ }
+ }
+
function writeParameterInput($parameter, $options, $classes = []) {
$value = '';
if (isset($options[$parameter->getName()])) {
@@ -56,7 +71,7 @@
<form id="files_external" class="section" data-encryption-enabled="<?php echo $_['encryptionEnabled']?'true': 'false'; ?>">
<h2><?php p($l->t('External Storage')); ?></h2>
<?php if (isset($_['dependencies']) and ($_['dependencies']<>'')) print_unescaped(''.$_['dependencies'].''); ?>
- <table id="externalStorage" class="grid" data-admin='<?php print_unescaped(json_encode($_['isAdminPage'])); ?>'>
+ <table id="externalStorage" class="grid" data-admin='<?php print_unescaped(json_encode($_['visibilityType'] === BackendService::VISIBILITY_ADMIN)); ?>'>
<thead>
<tr>
<th></th>
@@ -64,79 +79,12 @@
<th><?php p($l->t('External storage')); ?></th>
<th><?php p($l->t('Authentication')); ?></th>
<th><?php p($l->t('Configuration')); ?></th>
- <?php if ($_['isAdminPage']) print_unescaped('<th>'.$l->t('Available for').'</th>'); ?>
+ <?php if ($_['visibilityType'] === BackendService::VISIBILITY_ADMIN) print_unescaped('<th>'.$l->t('Available for').'</th>'); ?>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
- <?php foreach ($_['storages'] as $storage): ?>
- <tr class="<?php p($storage->getBackend()->getIdentifier()); ?>" data-id="<?php p($storage->getId()); ?>">
- <td class="status">
- <span></span>
- </td>
- <td class="mountPoint"><input type="text" name="mountPoint"
- value="<?php p(ltrim($storage->getMountPoint(), '/')); ?>"
- data-mountpoint="<?php p(ltrim($storage->getMountPoint(), '/')); ?>"
- placeholder="<?php p($l->t('Folder name')); ?>" />
- </td>
- <td class="backend" data-class="<?php p($storage->getBackend()->getIdentifier()); ?>"><?php p($storage->getBackend()->getText()); ?>
- </td>
- <td class="authentication">
- <select class="selectAuthMechanism">
- <?php
- $authSchemes = $storage->getBackend()->getAuthSchemes();
- $authMechanisms = array_filter($_['authMechanisms'], function($mech) use ($authSchemes) {
- return isset($authSchemes[$mech->getScheme()]);
- });
- ?>
- <?php foreach ($authMechanisms as $mech): ?>
- <option value="<?php p($mech->getIdentifier()); ?>" data-scheme="<?php p($mech->getScheme());?>"
- <?php if ($mech->getIdentifier() === $storage->getAuthMechanism()->getIdentifier()): ?>selected<?php endif; ?>
- ><?php p($mech->getText()); ?></option>
- <?php endforeach; ?>
- </select>
- </td>
- <td class="configuration">
- <?php
- $options = $storage->getBackendOptions();
- foreach ($storage->getBackend()->getParameters() as $parameter) {
- writeParameterInput($parameter, $options);
- }
- foreach ($storage->getAuthMechanism()->getParameters() as $parameter) {
- writeParameterInput($parameter, $options, ['auth-param']);
- }
- ?>
- </td>
- <?php if ($_['isAdminPage']): ?>
- <td class="applicable"
- align="right"
- data-applicable-groups='<?php print_unescaped(json_encode($storage->getApplicableGroups())); ?>'
- data-applicable-users='<?php print_unescaped(json_encode($storage->getApplicableUsers())); ?>'>
- <input type="hidden" class="applicableUsers" style="width:20em;" value=""/>
- </td>
- <?php endif; ?>
- <td class="mountOptionsToggle">
- <img
- class="svg action"
- title="<?php p($l->t('Advanced settings')); ?>"
- alt="<?php p($l->t('Advanced settings')); ?>"
- src="<?php print_unescaped(image_path('core', 'actions/settings.svg')); ?>"
- />
- <input type="hidden" class="mountOptions" value="<?php p(json_encode($storage->getMountOptions())); ?>" />
- <?php if ($_['isAdminPage']): ?>
- <input type="hidden" class="priority" value="<?php p($storage->getPriority()); ?>" />
- <?php endif; ?>
- </td>
- <td class="remove">
- <img alt="<?php p($l->t('Delete')); ?>"
- title="<?php p($l->t('Delete')); ?>"
- class="svg action"
- src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>"
- />
- </td>
- </tr>
- <?php endforeach; ?>
<tr id="addMountPoint">
<td class="status">
<span></span>
@@ -151,7 +99,9 @@
<?php p($l->t('Add storage')); ?>
</option>
<?php
- $sortedBackends = $_['backends'];
+ $sortedBackends = array_filter($_['backends'], function($backend) use ($_) {
+ return $backend->isVisibleFor($_['visibilityType']);
+ });
uasort($sortedBackends, function($a, $b) {
return strcasecmp($a->getText(), $b->getText());
});
@@ -164,7 +114,7 @@
</td>
<td class="authentication" data-mechanisms='<?php p(json_encode($_['authMechanisms'])); ?>'></td>
<td class="configuration"></td>
- <?php if ($_['isAdminPage']): ?>
+ <?php if ($_['visibilityType'] === BackendService::VISIBILITY_ADMIN): ?>
<td class="applicable" align="right">
<input type="hidden" class="applicableUsers" style="width:20em;" value="" />
</td>
@@ -189,7 +139,7 @@
</table>
<br />
- <?php if ($_['isAdminPage']): ?>
+ <?php if ($_['visibilityType'] === BackendService::VISIBILITY_ADMIN): ?>
<br />
<input type="checkbox" name="allowUserMounting" id="allowUserMounting" class="checkbox"
value="1" <?php if ($_['allowUserMounting'] == 'yes') print_unescaped(' checked="checked"'); ?> />
@@ -197,7 +147,12 @@
<p id="userMountingBackends"<?php if ($_['allowUserMounting'] != 'yes'): ?> class="hidden"<?php endif; ?>>
<?php p($l->t('Allow users to mount the following external storage')); ?><br />
- <?php $i = 0; foreach ($_['userBackends'] as $backend): ?>
+ <?php
+ $userBackends = array_filter($_['backends'], function($backend) {
+ return $backend->isAllowedVisibleFor(BackendService::VISIBILITY_PERSONAL);
+ });
+ ?>
+ <?php $i = 0; foreach ($userBackends as $backend): ?>
<?php if ($deprecateTo = $backend->getDeprecateTo()): ?>
<input type="hidden" id="allowUserMountingBackends<?php p($i); ?>" name="allowUserMountingBackends[]" value="<?php p($backend->getIdentifier()); ?>" data-deprecate-to="<?php p($deprecateTo->getIdentifier()); ?>" />
<?php else: ?>
diff --git a/apps/files_external/tests/env/start-amazons3-ceph.sh b/apps/files_external/tests/env/start-amazons3-ceph.sh
index b40d28f1ec6..20fa7e7bb2b 100755
--- a/apps/files_external/tests/env/start-amazons3-ceph.sh
+++ b/apps/files_external/tests/env/start-amazons3-ceph.sh
@@ -50,19 +50,10 @@ echo "${docker_image} container: $container"
echo $container >> $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.amazons3
echo -n "Waiting for ceph initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} ${port} </dev/null >&/dev/null \
- || nc -w 1 ${host} ${port} </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
+if ! "$thisFolder"/env/wait-for-connection ${host} ${port} 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
sleep 1
echo "Create ceph user"
diff --git a/apps/files_external/tests/env/start-ftp-morrisjobke.sh b/apps/files_external/tests/env/start-ftp-morrisjobke.sh
index 3c6cc62bce8..3a5f6ffcb67 100755
--- a/apps/files_external/tests/env/start-ftp-morrisjobke.sh
+++ b/apps/files_external/tests/env/start-ftp-morrisjobke.sh
@@ -55,19 +55,10 @@ echo "ftp container: $container"
echo $container >> $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.ftp
echo -n "Waiting for ftp initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 21 </dev/null >&/dev/null \
- || nc -w 1 ${host} 21 </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
+if ! "$thisFolder"/env/wait-for-connection ${host} 21 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
sleep 1
if [ -n "$DEBUG" ]; then
diff --git a/apps/files_external/tests/env/start-sftp-atmoz.sh b/apps/files_external/tests/env/start-sftp-atmoz.sh
index 3e0616f03d2..0fc0c5c427f 100755
--- a/apps/files_external/tests/env/start-sftp-atmoz.sh
+++ b/apps/files_external/tests/env/start-sftp-atmoz.sh
@@ -55,19 +55,10 @@ echo "sftp container: $container"
echo $container >> $thisFolder/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp
echo -n "Waiting for sftp initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 22 </dev/null >&/dev/null \
- || nc -w 1 ${host} 22 </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
+if ! "$thisFolder"/env/wait-for-connection ${host} 22 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
sleep 1
if [ -n "$DEBUG" ]; then
diff --git a/apps/files_external/tests/env/start-smb-silvershell.sh b/apps/files_external/tests/env/start-smb-silvershell.sh
index 31e3da44646..a7ff3f71eb1 100755
--- a/apps/files_external/tests/env/start-smb-silvershell.sh
+++ b/apps/files_external/tests/env/start-smb-silvershell.sh
@@ -53,19 +53,10 @@ echo "samba container: $container"
echo $container >> $thisFolder/dockerContainerSilvershell.$EXECUTOR_NUMBER.smb
echo -n "Waiting for samba initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 445 </dev/null >&/dev/null \
- || nc -w 1 ${host} 445 </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
+if ! "$thisFolder"/env/wait-for-connection ${host} 445 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
sleep 1
if [ -n "$DEBUG" ]; then
diff --git a/apps/files_external/tests/env/start-smb-windows.sh b/apps/files_external/tests/env/start-smb-windows.sh
index 6779cdb2d56..9453b4eb3e7 100755
--- a/apps/files_external/tests/env/start-smb-windows.sh
+++ b/apps/files_external/tests/env/start-smb-windows.sh
@@ -19,8 +19,7 @@ user=smb-test
password=!owncloud123
host=WIN-9GTFAS08C15
-if ! (nc -c -w 1 ${host} 445 </dev/null >&/dev/null \
- || nc -w 1 ${host} 445 </dev/null >&/dev/null); then
+if ! "$thisFolder"/env/wait-for-connection ${host} 445 0; then
echo "[ERROR] Server not reachable" >&2
exit 1
fi
diff --git a/apps/files_external/tests/env/start-swift-ceph.sh b/apps/files_external/tests/env/start-swift-ceph.sh
index ea16e167af9..936bb667e94 100755
--- a/apps/files_external/tests/env/start-swift-ceph.sh
+++ b/apps/files_external/tests/env/start-swift-ceph.sh
@@ -57,19 +57,10 @@ echo "${docker_image} container: $container"
echo $container >> $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
echo -n "Waiting for ceph initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 80 </dev/null >&/dev/null \
- || nc -w 1 ${host} 80 </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
+if ! "$thisFolder"/env/wait-for-connection ${host} 80 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
sleep 1
cat > $thisFolder/config.swift.php <<DELIM
diff --git a/apps/files_external/tests/env/start-webdav-ownCloud.sh b/apps/files_external/tests/env/start-webdav-ownCloud.sh
index 6e3904f2bad..d992516d7b1 100755
--- a/apps/files_external/tests/env/start-webdav-ownCloud.sh
+++ b/apps/files_external/tests/env/start-webdav-ownCloud.sh
@@ -46,23 +46,16 @@ fi
container=`docker run -P $parameter -d -e ADMINLOGIN=test -e ADMINPWD=test morrisjobke/owncloud`
-host=`docker inspect $container | grep IPAddress | cut -d '"' -f 4`
+host=`docker inspect --format="{{.NetworkSettings.IPAddress}}" $container`
echo -n "Waiting for ownCloud initialization"
-starttime=$(date +%s)
-# support for GNU netcat and BSD netcat
-while ! (nc -c -w 1 ${host} 80 </dev/null >&/dev/null \
- || nc -w 1 ${host} 80 </dev/null >&/dev/null); do
- sleep 1
- echo -n '.'
- if (( $(date +%s) > starttime + 60 )); then
- echo
- echo "[ERROR] Waited 60 seconds, no response" >&2
- exit 1
- fi
-done
-echo
-sleep 1
+if ! "$thisFolder"/env/wait-for-connection ${host} 80 60; then
+ echo "[ERROR] Waited 60 seconds, no response" >&2
+ exit 1
+fi
+
+# wait at least 5 more seconds - sometimes the webserver still needs some additional time
+sleep 5
cat > $thisFolder/config.webdav.php <<DELIM
<?php
diff --git a/apps/files_external/tests/env/wait-for-connection b/apps/files_external/tests/env/wait-for-connection
new file mode 100755
index 00000000000..2c480fb733e
--- /dev/null
+++ b/apps/files_external/tests/env/wait-for-connection
@@ -0,0 +1,45 @@
+#!/usr/bin/php
+<?php
+
+$timeout = 60;
+
+switch ($argc) {
+case 4:
+ $timeout = (float)$argv[3];
+case 3:
+ $host = $argv[1];
+ $port = (int)$argv[2];
+ break;
+default:
+ fwrite(STDERR, 'Usage: '.$argv[0].' host port [timeout]'."\n");
+ exit(2);
+}
+
+if ($timeout < 0) {
+ fwrite(STDERR, 'Timeout must be greater than zero'."\n");
+ exit(2);
+}
+if ($port < 1) {
+ fwrite(STDERR, 'Port must be an integer greater than zero'."\n");
+ exit(2);
+}
+
+$socketTimeout = (float)ini_get('default_socket_timeout');
+if ($socketTimeout > $timeout) {
+ $socketTimeout = $timeout;
+}
+
+$stopTime = time() + $timeout;
+do {
+ $sock = @fsockopen($host, $port, $errno, $errstr, $socketTimeout);
+ if ($sock !== false) {
+ fclose($sock);
+ fwrite(STDOUT, "\n");
+ exit(0);
+ }
+ sleep(1);
+ fwrite(STDOUT, '.');
+} while (time() < $stopTime);
+
+fwrite(STDOUT, "\n");
+exit(1);
diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js
index 67a81277124..3d0168898ca 100644
--- a/apps/files_external/tests/js/settingsSpec.js
+++ b/apps/files_external/tests/js/settingsSpec.js
@@ -54,7 +54,8 @@ describe('OCA.External.Settings tests', function() {
// within the DOM by the server template
$('#externalStorage .selectBackend:first').data('configurations', {
'\\OC\\TestBackend': {
- 'backend': 'Test Backend Name',
+ 'identifier': '\\OC\\TestBackend',
+ 'name': 'Test Backend',
'configuration': {
'field1': 'Display Name 1',
'field2': '&Display Name 2'
@@ -65,7 +66,8 @@ describe('OCA.External.Settings tests', function() {
'priority': 11
},
'\\OC\\AnotherTestBackend': {
- 'backend': 'Another Test Backend Name',
+ 'identifier': '\\OC\\AnotherTestBackend',
+ 'name': 'Another Test Backend',
'configuration': {
'field1': 'Display Name 1',
'field2': '&Display Name 2'
@@ -80,6 +82,7 @@ describe('OCA.External.Settings tests', function() {
$('#externalStorage #addMountPoint .authentication:first').data('mechanisms', {
'mechanism1': {
+ 'identifier': 'mechanism1',
'name': 'Mechanism 1',
'configuration': {
},
diff --git a/apps/files_sharing/api/ocssharewrapper.php b/apps/files_sharing/api/ocssharewrapper.php
index 3ce2901dfb4..ca04c656c28 100644
--- a/apps/files_sharing/api/ocssharewrapper.php
+++ b/apps/files_sharing/api/ocssharewrapper.php
@@ -26,25 +26,23 @@ class OCSShareWrapper {
* @return Share20OCS
*/
private function getShare20OCS() {
- return new Share20OCS(new \OC\Share20\Manager(
- \OC::$server->getUserSession()->getUser(),
- \OC::$server->getUserManager(),
- \OC::$server->getGroupManager(),
- \OC::$server->getLogger(),
- \OC::$server->getAppConfig(),
- \OC::$server->getUserFolder(),
- new \OC\Share20\DefaultShareProvider(
- \OC::$server->getDatabaseConnection(),
- \OC::$server->getUserManager(),
- \OC::$server->getGroupManager(),
- \OC::$server->getUserFolder()
- )
- ),
- \OC::$server->getGroupManager(),
- \OC::$server->getUserManager(),
- \OC::$server->getRequest(),
- \OC::$server->getUserFolder(),
- \OC::$server->getURLGenerator());
+ return new Share20OCS(
+ new \OC\Share20\Manager(
+ \OC::$server->getLogger(),
+ \OC::$server->getAppConfig(),
+ new \OC\Share20\DefaultShareProvider(
+ \OC::$server->getDatabaseConnection(),
+ \OC::$server->getUserManager(),
+ \OC::$server->getGroupManager(),
+ \OC::$server->getRootFolder()
+ )
+ ),
+ \OC::$server->getGroupManager(),
+ \OC::$server->getUserManager(),
+ \OC::$server->getRequest(),
+ \OC::$server->getRootFolder(),
+ \OC::$server->getURLGenerator(),
+ \OC::$server->getUserSession()->getUser());
}
public function getAllShares($params) {
diff --git a/apps/files_sharing/api/share20ocs.php b/apps/files_sharing/api/share20ocs.php
index aaf5a3c72b6..6c25b4a4426 100644
--- a/apps/files_sharing/api/share20ocs.php
+++ b/apps/files_sharing/api/share20ocs.php
@@ -22,35 +22,53 @@ namespace OCA\Files_Sharing\API;
use OC\Share20\IShare;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\IRequest;
+use OCP\Files\Folder;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\Files\IRootFolder;
+
class Share20OCS {
/** @var \OC\Share20\Manager */
private $shareManager;
- /** @var \OCP\IGroupManager */
+ /** @var IGroupManager */
private $groupManager;
- /** @var \OCP\IUserManager */
+ /** @var IUserManager */
private $userManager;
- /** @var \OCP\IRequest */
+ /** @var IRequest */
private $request;
- /** @var \OCP\Files\Folder */
- private $userFolder;
+ /** @var IRootFolder */
+ private $rootFolder;
+
+ /** @var IUrlGenerator */
+ private $urlGenerator;
+
+ /** @var IUser */
+ private $currentUser;
- public function __construct(\OC\Share20\Manager $shareManager,
- \OCP\IGroupManager $groupManager,
- \OCP\IUserManager $userManager,
- \OCP\IRequest $request,
- \OCP\Files\Folder $userFolder,
- \OCP\IURLGenerator $urlGenerator) {
+ public function __construct(
+ \OC\Share20\Manager $shareManager,
+ IGroupManager $groupManager,
+ IUserManager $userManager,
+ IRequest $request,
+ IRootFolder $rootFolder,
+ IURLGenerator $urlGenerator,
+ IUser $currentUser
+ ) {
$this->shareManager = $shareManager;
$this->userManager = $userManager;
$this->groupManager = $groupManager;
$this->request = $request;
- $this->userFolder = $userFolder;
+ $this->rootFolder = $rootFolder;
$this->urlGenerator = $urlGenerator;
+ $this->currentUser = $currentUser;
}
/**
@@ -73,7 +91,7 @@ class Share20OCS {
];
$path = $share->getPath();
- $result['path'] = $this->userFolder->getRelativePath($path->getPath());
+ $result['path'] = $this->rootFolder->getUserFolder($share->getShareOwner()->getUID())->getRelativePath($path->getPath());
if ($path instanceOf \OCP\Files\Folder) {
$result['item_type'] = 'folder';
} else {
@@ -131,8 +149,12 @@ class Share20OCS {
return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.');
}
- $share = $this->formatShare($share);
- return new \OC_OCS_Result($share);
+ if ($this->canAccessShare($share)) {
+ $share = $this->formatShare($share);
+ return new \OC_OCS_Result($share);
+ } else {
+ return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.');
+ }
}
/**
@@ -156,6 +178,10 @@ class Share20OCS {
\OCA\Files_Sharing\API\Local::deleteShare(['id' => $id]);
}
+ if (!$this->canAccessShare($share)) {
+ return new \OC_OCS_Result(null, 404, 'could not delete share');
+ }
+
try {
$this->shareManager->deleteShare($share);
} catch (\OC\Share20\Exception\BackendError $e) {
@@ -164,4 +190,30 @@ class Share20OCS {
return new \OC_OCS_Result();
}
+
+ /**
+ * @param IShare $share
+ * @return bool
+ */
+ protected function canAccessShare(IShare $share) {
+ // Owner of the file and the sharer of the file can always get share
+ if ($share->getShareOwner() === $this->currentUser ||
+ $share->getSharedBy() === $this->currentUser
+ ) {
+ return true;
+ }
+
+ // If the share is shared with you (or a group you are a member of)
+ if ($share->getShareType() === \OCP\Share::SHARE_TYPE_USER &&
+ $share->getSharedWith() === $this->currentUser) {
+ return true;
+ }
+
+ if ($share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP &&
+ $share->getSharedWith()->inGroup($this->currentUser)) {
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 03e448be0af..5f56340d254 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -42,7 +42,6 @@ $l = \OC::$server->getL10N('files_sharing');
$application = new Application();
$application->registerMountProviders();
-$application->setupPropagation();
\OCP\App::registerAdmin('files_sharing', 'settings-admin');
\OCP\App::registerPersonal('files_sharing', 'settings-personal');
diff --git a/apps/files_sharing/appinfo/application.php b/apps/files_sharing/appinfo/application.php
index 545a9425083..ffe3a6a513f 100644
--- a/apps/files_sharing/appinfo/application.php
+++ b/apps/files_sharing/appinfo/application.php
@@ -27,8 +27,6 @@ namespace OCA\Files_Sharing\AppInfo;
use OCA\Files_Sharing\Helper;
use OCA\Files_Sharing\MountProvider;
-use OCA\Files_Sharing\Propagation\PropagationManager;
-use OCA\Files_Sharing\Propagation\GroupPropagationManager;
use OCP\AppFramework\App;
use OC\AppFramework\Utility\SimpleContainer;
use OCA\Files_Sharing\Controllers\ExternalSharesController;
@@ -116,8 +114,7 @@ class Application extends App {
/** @var \OCP\IServerContainer $server */
$server = $c->query('ServerContainer');
return new MountProvider(
- $server->getConfig(),
- $c->query('PropagationManager')
+ $server->getConfig()
);
});
@@ -132,25 +129,6 @@ class Application extends App {
);
});
- $container->registerService('PropagationManager', function (IContainer $c) {
- /** @var \OCP\IServerContainer $server */
- $server = $c->query('ServerContainer');
- return new PropagationManager(
- $server->getUserSession(),
- $server->getConfig()
- );
- });
-
- $container->registerService('GroupPropagationManager', function (IContainer $c) {
- /** @var \OCP\IServerContainer $server */
- $server = $c->query('ServerContainer');
- return new GroupPropagationManager(
- $server->getUserSession(),
- $server->getGroupManager(),
- $c->query('PropagationManager')
- );
- });
-
/*
* Register capabilities
*/
@@ -164,11 +142,4 @@ class Application extends App {
$mountProviderCollection->registerProvider($this->getContainer()->query('MountProvider'));
$mountProviderCollection->registerProvider($this->getContainer()->query('ExternalMountProvider'));
}
-
- public function setupPropagation() {
- $propagationManager = $this->getContainer()->query('PropagationManager');
- \OCP\Util::connectHook('OC_Filesystem', 'setup', $propagationManager, 'globalSetup');
-
- $this->getContainer()->query('GroupPropagationManager')->globalSetup();
- }
}
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 82691129926..9b2e2c00f60 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -286,8 +286,12 @@ OCA.Sharing.PublicApp = {
_saveToOwnCloud: function (remote, token, owner, name, isProtected) {
var location = window.location.protocol + '//' + window.location.host + OC.webroot;
+
+ if(remote.substr(-1) !== '/') {
+ remote += '/'
+ };
- var url = remote + '/index.php/apps/files#' + 'remote=' + encodeURIComponent(location) // our location is the remote for the other server
+ var url = remote + 'index.php/apps/files#' + 'remote=' + encodeURIComponent(location) // our location is the remote for the other server
+ "&token=" + encodeURIComponent(token) + "&owner=" + encodeURIComponent(owner) + "&name=" + encodeURIComponent(name) + "&protected=" + isProtected;
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 47243b8f81d..38698110e7d 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -40,8 +40,17 @@ OC.L10N.register(
"You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt",
"%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt",
"You shared %1$s via link" : "Sie haben %1$s über einen Link geteilt",
+ "Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
+ "Shared with %2$s" : "Geteilt mit %2$s",
+ "Shared with group %2$s" : "Geteilt mit der Gruppe %2$s",
+ "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s",
+ "Shared with group %3$s by %2$s" : "Geteilt mit der Gruppe %3$s von %2$s",
+ "Shared via link by %2$s" : "Geteilt durch einen Link von %2$s",
+ "Shared by %2$s" : "Geteilt von %2$s",
+ "Shared via public link" : "Durch einen öffentlichen Link geteilt",
"Shares" : "Geteiltes",
"Accept" : "Akzeptieren",
+ "Decline" : "Ablehnen",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Teilen Sie mit mir über meine #ownCloud Federated-Cloud-ID, siehe %s",
"Share with me through my #ownCloud Federated Cloud ID" : "Teilen Sie mit mir über meine #ownCloud Federated-Cloud-ID",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
@@ -67,6 +76,7 @@ OC.L10N.register(
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
"Share it:" : "Zum Teilen:",
+ "Add to your website" : "Zu Ihrer Website hinzufügen",
"Share with me via ownCloud" : "Teilen Sie mit mir über ownCloud",
"HTML Code:" : "HTML-Code:"
},
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index b63286de48d..afd267f78b1 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -38,8 +38,17 @@
"You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt",
"%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt",
"You shared %1$s via link" : "Sie haben %1$s über einen Link geteilt",
+ "Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
+ "Shared with %2$s" : "Geteilt mit %2$s",
+ "Shared with group %2$s" : "Geteilt mit der Gruppe %2$s",
+ "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s",
+ "Shared with group %3$s by %2$s" : "Geteilt mit der Gruppe %3$s von %2$s",
+ "Shared via link by %2$s" : "Geteilt durch einen Link von %2$s",
+ "Shared by %2$s" : "Geteilt von %2$s",
+ "Shared via public link" : "Durch einen öffentlichen Link geteilt",
"Shares" : "Geteiltes",
"Accept" : "Akzeptieren",
+ "Decline" : "Ablehnen",
"Share with me through my #ownCloud Federated Cloud ID, see %s" : "Teilen Sie mit mir über meine #ownCloud Federated-Cloud-ID, siehe %s",
"Share with me through my #ownCloud Federated Cloud ID" : "Teilen Sie mit mir über meine #ownCloud Federated-Cloud-ID",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
@@ -65,6 +74,7 @@
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
"Share it:" : "Zum Teilen:",
+ "Add to your website" : "Zu Ihrer Website hinzufügen",
"Share with me via ownCloud" : "Teilen Sie mit mir über ownCloud",
"HTML Code:" : "HTML-Code:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js
index fac8b357506..f0e363b2f49 100644
--- a/apps/files_sharing/l10n/es_AR.js
+++ b/apps/files_sharing/l10n/es_AR.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"files_sharing",
{
+ "Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor",
"Cancel" : "Cancelar",
"Shared by" : "Compartido por",
"Sharing" : "Compartiendo",
diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json
index 6a7316bff8c..7a6441c7bdf 100644
--- a/apps/files_sharing/l10n/es_AR.json
+++ b/apps/files_sharing/l10n/es_AR.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor",
"Cancel" : "Cancelar",
"Shared by" : "Compartido por",
"Sharing" : "Compartiendo",
diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php
index 93e2cdb540b..020f55c5157 100644
--- a/apps/files_sharing/lib/external/manager.php
+++ b/apps/files_sharing/lib/external/manager.php
@@ -192,6 +192,8 @@ class Manager {
$acceptShare->execute(array(1, $mountPoint, $hash, $id, $this->uid));
$this->sendFeedbackToRemote($share['remote'], $share['share_token'], $share['remote_id'], 'accept');
+ \OC_Hook::emit('OCP\Share', 'federated_share_added', ['server' => $share['remote']]);
+
//FIXME $this->scrapNotification($share['remote_id']);
return true;
}
diff --git a/apps/files_sharing/lib/mountprovider.php b/apps/files_sharing/lib/mountprovider.php
index 458e7f2619b..74a2a3ff4d6 100644
--- a/apps/files_sharing/lib/mountprovider.php
+++ b/apps/files_sharing/lib/mountprovider.php
@@ -24,7 +24,6 @@ namespace OCA\Files_Sharing;
use OC\Files\Filesystem;
use OC\User\NoUserException;
-use OCA\Files_Sharing\Propagation\PropagationManager;
use OCP\Files\Config\IMountProvider;
use OCP\Files\Storage\IStorageFactory;
use OCP\IConfig;
@@ -37,17 +36,10 @@ class MountProvider implements IMountProvider {
protected $config;
/**
- * @var \OCA\Files_Sharing\Propagation\PropagationManager
- */
- protected $propagationManager;
-
- /**
* @param \OCP\IConfig $config
- * @param \OCA\Files_Sharing\Propagation\PropagationManager $propagationManager
*/
- public function __construct(IConfig $config, PropagationManager $propagationManager) {
+ public function __construct(IConfig $config) {
$this->config = $config;
- $this->propagationManager = $propagationManager;
}
@@ -60,21 +52,15 @@ class MountProvider implements IMountProvider {
*/
public function getMountsForUser(IUser $user, IStorageFactory $storageFactory) {
$shares = \OCP\Share::getItemsSharedWithUser('file', $user->getUID());
- $propagator = $this->propagationManager->getSharePropagator($user->getUID());
- $propagator->propagateDirtyMountPoints($shares);
$shares = array_filter($shares, function ($share) {
return $share['permissions'] > 0;
});
$shares = array_map(function ($share) use ($user, $storageFactory) {
- // for updating etags for the share owner when we make changes to this share.
- $ownerPropagator = $this->propagationManager->getChangePropagator($share['uid_owner']);
return new SharedMount(
'\OC\Files\Storage\Shared',
'/' . $user->getUID() . '/' . $share['file_target'],
array(
- 'propagationManager' => $this->propagationManager,
- 'propagator' => $ownerPropagator,
'share' => $share,
'user' => $user->getUID()
),
diff --git a/apps/files_sharing/lib/propagation/changewatcher.php b/apps/files_sharing/lib/propagation/changewatcher.php
deleted file mode 100644
index e61c161da19..00000000000
--- a/apps/files_sharing/lib/propagation/changewatcher.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
- * @author Robin Appelman <icewind@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing\Propagation;
-
-use OC\Files\Cache\ChangePropagator;
-use OC\Files\Filesystem;
-use OC\Files\View;
-use OCA\Files_Sharing\SharedMount;
-
-/**
- * Watch for changes made in a shared mount and propagate the changes to the share owner
- */
-class ChangeWatcher {
- /**
- * The user view for the logged in user
- *
- * @var \OC\Files\View
- */
- private $baseView;
-
- /**
- * @var RecipientPropagator
- */
- private $recipientPropagator;
-
- /**
- * @param \OC\Files\View $baseView the view for the logged in user
- * @param RecipientPropagator $recipientPropagator
- */
- public function __construct(View $baseView, RecipientPropagator $recipientPropagator) {
- $this->baseView = $baseView;
- $this->recipientPropagator = $recipientPropagator;
- }
-
-
- public function writeHook($params) {
- $path = $params['path'];
- $fullPath = $this->baseView->getAbsolutePath($path);
- $mount = $this->baseView->getMount($path);
- if ($mount instanceof SharedMount) {
- $this->propagateForOwner($mount->getShare(), $mount->getInternalPath($fullPath), $mount->getOwnerPropagator());
- }
- $info = $this->baseView->getFileInfo($path);
- if ($info) {
- // trigger propagation if the subject of the write hook is shared.
- // if a parent folder of $path is shared the propagation will be triggered from the change propagator hooks
- $this->recipientPropagator->propagateById($info->getId());
- }
- }
-
- public function renameHook($params) {
- $path1 = $params['oldpath'];
- $path2 = $params['newpath'];
- $fullPath1 = $this->baseView->getAbsolutePath($path1);
- $fullPath2 = $this->baseView->getAbsolutePath($path2);
- $mount1 = $this->baseView->getMount($path1);
- $mount2 = $this->baseView->getMount($path2);
- if ($mount1 instanceof SharedMount and $mount1->getInternalPath($fullPath1) !== '') {
- $this->propagateForOwner($mount1->getShare(), $mount1->getInternalPath($fullPath1), $mount1->getOwnerPropagator());
- }
- if ($mount1 !== $mount2 and $mount2 instanceof SharedMount and $mount2->getInternalPath($fullPath2) !== '') {
- $this->propagateForOwner($mount2->getShare(), $mount2->getInternalPath($fullPath2), $mount2->getOwnerPropagator());
- }
- }
-
- /**
- * @param array $share
- * @param string $internalPath
- * @param \OC\Files\Cache\ChangePropagator $propagator
- */
- private function propagateForOwner($share, $internalPath, ChangePropagator $propagator) {
- // note that we have already set up the filesystem for the owner when mounting the share
- $view = new View('/' . $share['uid_owner'] . '/files');
-
- $shareRootPath = $view->getPath($share['item_source']);
- if (!is_null($shareRootPath)) {
- $path = $shareRootPath . '/' . $internalPath;
- $path = Filesystem::normalizePath($path);
- $propagator->addChange($path);
- $propagator->propagateChanges();
- }
- }
-
- public function permissionsHook($params) {
- $share = $params['share'];
-
- if ($share['item_type'] === 'file' || $share['item_type'] === 'folder') {
- $this->recipientPropagator->markDirty($share, microtime(true));
- }
- }
-}
diff --git a/apps/files_sharing/lib/propagation/grouppropagationmanager.php b/apps/files_sharing/lib/propagation/grouppropagationmanager.php
deleted file mode 100644
index ba550dccec3..00000000000
--- a/apps/files_sharing/lib/propagation/grouppropagationmanager.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-/**
- * @author Vincent Petry <pvince81@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing\Propagation;
-
-use OC\Files\Filesystem;
-use OC\Files\View;
-use OCP\IConfig;
-use OCP\IUserSession;
-use OCP\IGroup;
-use OCP\IUser;
-use OCP\IGroupManager;
-use OCA\Files_Sharing\Propagation\PropagationManager;
-
-/**
- * Propagate changes on group changes
- */
-class GroupPropagationManager {
- /**
- * @var \OCP\IUserSession
- */
- private $userSession;
-
- /**
- * @var \OCP\IGroupManager
- */
- private $groupManager;
-
- /**
- * @var PropagationManager
- */
- private $propagationManager;
-
- /**
- * Items shared with a given user.
- * Key is user id and value is an array of shares.
- *
- * @var array
- */
- private $userShares = [];
-
- public function __construct(IUserSession $userSession, IGroupManager $groupManager, PropagationManager $propagationManager) {
- $this->userSession = $userSession;
- $this->groupManager = $groupManager;
- $this->propagationManager = $propagationManager;
- }
-
- public function onPreProcessUser(IGroup $group, IUser $targetUser) {
- $this->userShares[$targetUser->getUID()] = $this->getUserShares($targetUser->getUID());
- }
-
- public function onPostAddUser(IGroup $group, IUser $targetUser) {
- $targetUserId = $targetUser->getUID();
- $sharesAfter = $this->getUserShares($targetUserId);
-
- $this->propagateSharesDiff($targetUserId, $sharesAfter, $this->userShares[$targetUserId]);
- unset($this->userShares[$targetUserId]);
- }
-
- public function onPostRemoveUser(IGroup $group, IUser $targetUser) {
- $targetUserId = $targetUser->getUID();
- $sharesAfter = $this->getUserShares($targetUserId);
-
- $this->propagateSharesDiff($targetUserId, $this->userShares[$targetUserId], $sharesAfter);
- unset($this->userShares[$targetUserId]);
- }
-
- private function getUserShares($targetUserId) {
- return \OCP\Share::getItemsSharedWithUser('file', $targetUserId);
- }
-
- /**
- * Propagate etag for the shares that are in $shares1 but not in $shares2.
- *
- * @param string $targetUserId user id for which to propagate shares
- * @param array $shares1
- * @param array $shares2
- */
- private function propagateSharesDiff($targetUserId, $shares1, $shares2) {
- $sharesToPropagate = array_udiff(
- $shares1,
- $shares2,
- function($share1, $share2) {
- return ($share2['id'] - $share1['id']);
- }
- );
-
- \OC\Files\Filesystem::initMountPoints($targetUserId);
- $this->propagationManager->propagateSharesToUser($sharesToPropagate, $targetUserId);
- }
-
- /**
- * To be called from setupFS trough a hook
- *
- * Sets up listening to changes made to shares owned by the current user
- */
- public function globalSetup() {
- $user = $this->userSession->getUser();
- if (!$user) {
- return;
- }
-
- $this->groupManager->listen('\OC\Group', 'preAddUser', [$this, 'onPreProcessUser']);
- $this->groupManager->listen('\OC\Group', 'postAddUser', [$this, 'onPostAddUser']);
- $this->groupManager->listen('\OC\Group', 'preRemoveUser', [$this, 'onPreProcessUser']);
- $this->groupManager->listen('\OC\Group', 'postRemoveUser', [$this, 'onPostRemoveUser']);
- }
-
- public function tearDown() {
- $this->groupManager->removeListener('\OC\Group', 'preAddUser', [$this, 'onPreProcessUser']);
- $this->groupManager->removeListener('\OC\Group', 'postAddUser', [$this, 'onPostAddUser']);
- $this->groupManager->removeListener('\OC\Group', 'preRemoveUser', [$this, 'onPreProcessUser']);
- $this->groupManager->removeListener('\OC\Group', 'postRemoveUser', [$this, 'onPostRemoveUser']);
- }
-}
diff --git a/apps/files_sharing/lib/propagation/propagationmanager.php b/apps/files_sharing/lib/propagation/propagationmanager.php
deleted file mode 100644
index aac9428240d..00000000000
--- a/apps/files_sharing/lib/propagation/propagationmanager.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/**
- * @author Robin Appelman <icewind@owncloud.com>
- * @author Vincent Petry <pvince81@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing\Propagation;
-
-use OC\Files\Filesystem;
-use OC\Files\View;
-use OCP\IConfig;
-use OCP\IUserSession;
-use OCP\Util;
-
-
-/**
- * Keep track of all change and share propagators by owner
- */
-class PropagationManager {
- /**
- * @var \OCP\IUserSession
- */
- private $userSession;
-
- /**
- * @var \OCP\IConfig
- */
- private $config;
-
- /**
- * Change propagators for share owner
- *
- * @var \OC\Files\Cache\ChangePropagator[]
- */
- private $changePropagators = [];
-
- /**
- * Recipient propagators
- *
- * @var \OCA\Files_Sharing\Propagation\RecipientPropagator[]
- */
- private $sharePropagators = [];
-
- public function __construct(IUserSession $userSession, IConfig $config) {
- $this->userSession = $userSession;
- $this->config = $config;
- }
-
- /**
- * @param string $user
- * @return \OC\Files\Cache\ChangePropagator
- */
- public function getChangePropagator($user) {
- $activeUser = $this->userSession->getUser();
-
- // for the local user we want to propagator from the active view, not any cached one
- if ($activeUser && $activeUser->getUID() === $user && Filesystem::getView() instanceof View) {
- // it's important that we take the existing propagator here to make sure we can listen to external changes
- $this->changePropagators[$user] = Filesystem::getView()->getUpdater()->getPropagator();
- }
- if (isset($this->changePropagators[$user])) {
- return $this->changePropagators[$user];
- }
- $view = new View('/' . $user . '/files');
- $this->changePropagators[$user] = $view->getUpdater()->getPropagator();
- return $this->changePropagators[$user];
- }
-
- /**
- * Propagates etag changes for the given shares to the given user
- *
- * @param array array of shares for which to trigger etag change
- * @param string $user
- */
- public function propagateSharesToUser($shares, $user) {
- $changePropagator = $this->getChangePropagator($user);
- foreach ($shares as $share) {
- $changePropagator->addChange($share['file_target']);
- }
- $time = microtime(true);
- $changePropagator->propagateChanges(floor($time));
- }
-
- /**
- * @param string $user
- * @return \OCA\Files_Sharing\Propagation\RecipientPropagator
- */
- public function getSharePropagator($user) {
- if (isset($this->sharePropagators[$user])) {
- return $this->sharePropagators[$user];
- }
- $this->sharePropagators[$user] = new RecipientPropagator($user, $this->getChangePropagator($user), $this->config, $this);
- return $this->sharePropagators[$user];
- }
-
- /**
- * Attach the recipient propagator for $user to the change propagator of a share owner to mark shares as dirty when the owner makes a change to a share
- *
- * @param string $shareOwner
- * @param string $user
- */
- public function listenToOwnerChanges($shareOwner, $user) {
- $sharePropagator = $this->getSharePropagator($user);
- $ownerPropagator = $this->getChangePropagator($shareOwner);
- $sharePropagator->attachToPropagator($ownerPropagator, $shareOwner);
- }
-
- /**
- * To be called from setupFS trough a hook
- *
- * Sets up listening to changes made to shares owned by the current user
- */
- public function globalSetup() {
- $user = $this->userSession->getUser();
- if (!$user) {
- return;
- }
- $recipientPropagator = $this->getSharePropagator($user->getUID());
- $watcher = new ChangeWatcher(Filesystem::getView(), $recipientPropagator);
-
- // for marking shares owned by the active user as dirty when a file inside them changes
- $this->listenToOwnerChanges($user->getUID(), $user->getUID());
- Util::connectHook('OC_Filesystem', 'post_write', $watcher, 'writeHook');
- Util::connectHook('OC_Filesystem', 'post_delete', $watcher, 'writeHook');
- Util::connectHook('OC_Filesystem', 'post_rename', $watcher, 'renameHook');
- Util::connectHook('OCP\Share', 'post_update_permissions', $watcher, 'permissionsHook');
- }
-}
diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php
deleted file mode 100644
index 5eacf4c0f6e..00000000000
--- a/apps/files_sharing/lib/propagation/recipientpropagator.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-/**
- * @author Lukas Reschke <lukas@owncloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <icewind@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing\Propagation;
-
-use OC\Files\Cache\ChangePropagator;
-use OC\Files\View;
-use OC\Share\Share;
-use OCP\Files\NotFoundException;
-
-/**
- * Propagate etags for share recipients
- */
-class RecipientPropagator {
- /**
- * @var string
- */
- protected $userId;
-
- /**
- * @var \OC\Files\Cache\ChangePropagator
- */
- protected $changePropagator;
-
- /**
- * @var \OCP\IConfig
- */
- protected $config;
-
- /**
- * @var PropagationManager
- */
- private $manager;
-
- /**
- * @param string $userId current user, must match the propagator's
- * user
- * @param \OC\Files\Cache\ChangePropagator $changePropagator change propagator
- * initialized with a view for $user
- * @param \OCP\IConfig $config
- * @param PropagationManager $manager
- */
- public function __construct($userId, $changePropagator, $config, PropagationManager $manager) {
- $this->userId = $userId;
- $this->changePropagator = $changePropagator;
- $this->config = $config;
- $this->manager = $manager;
- }
-
- /**
- * Propagate the etag changes for all shares marked as dirty and mark the shares as clean
- *
- * @param array $shares the shares for the users
- * @param int $time
- */
- public function propagateDirtyMountPoints(array $shares, $time = null) {
- if ($time === null) {
- $time = microtime(true);
- }
- $dirtyShares = $this->getDirtyShares($shares);
- foreach ($dirtyShares as $share) {
- $this->changePropagator->addChange($share['file_target']);
- }
- if (count($dirtyShares)) {
- $this->config->setUserValue($this->userId, 'files_sharing', 'last_propagate', $time);
- $this->changePropagator->propagateChanges(floor($time));
- }
- }
-
- /**
- * Get all shares we need to update the etag for
- *
- * @param array $shares the shares for the users
- * @return string[]
- */
- protected function getDirtyShares($shares) {
- $dirty = [];
- $userTime = $this->config->getUserValue($this->userId, 'files_sharing', 'last_propagate', 0);
- foreach ($shares as $share) {
- $updateTime = $this->config->getAppValue('files_sharing', $share['id'], 0);
- if ($updateTime >= $userTime) {
- $dirty[] = $share;
- }
- }
- return $dirty;
- }
-
- /**
- * @param array $share
- * @param float $time
- */
- public function markDirty($share, $time = null) {
- if ($time === null) {
- $time = microtime(true);
- }
- $this->config->setAppValue('files_sharing', $share['id'], $time);
- }
-
- /**
- * Listen on the propagator for updates made to shares owned by a user
- *
- * @param \OC\Files\Cache\ChangePropagator $propagator
- * @param string $owner
- */
- public function attachToPropagator(ChangePropagator $propagator, $owner) {
- $propagator->listen('\OC\Files', 'propagate', function ($path, $entry) use ($owner) {
- $this->propagateById($entry['fileid']);
- });
- }
-
- protected $propagatingIds = [];
-
- /**
- * @param int $id
- */
- public function propagateById($id) {
- if (isset($this->propagatingIds[$id])) {
- return;
- }
- $this->propagatingIds[$id] = true;
- $shares = Share::getAllSharesForFileId($id);
- foreach ($shares as $share) {
- // propagate down the share tree
- $this->markDirty($share, microtime(true));
-
- // propagate up the share tree
- if ($share['share_with'] === $this->userId) {
- $user = $share['uid_owner'];
- $view = new View('/' . $user . '/files');
-
- try {
- $path = $view->getPath($share['file_source']);
- } catch (NotFoundException $e) {
- $path = null;
- }
-
- $watcher = new ChangeWatcher($view, $this->manager->getSharePropagator($user));
- $watcher->writeHook(['path' => $path]);
- }
- }
-
- unset($this->propagatingIds[$id]);
- }
-}
diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php
index a1387957867..275fea97c7f 100644
--- a/apps/files_sharing/lib/sharedmount.php
+++ b/apps/files_sharing/lib/sharedmount.php
@@ -39,11 +39,6 @@ class SharedMount extends MountPoint implements MoveableMount {
protected $storage = null;
/**
- * @var \OC\Files\Cache\ChangePropagator
- */
- protected $ownerPropagator;
-
- /**
* @var \OC\Files\View
*/
private $recipientView;
@@ -54,8 +49,6 @@ class SharedMount extends MountPoint implements MoveableMount {
private $user;
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
- // first update the mount point before creating the parent
- $this->ownerPropagator = $arguments['propagator'];
$this->user = $arguments['user'];
$this->recipientView = new View('/' . $this->user . '/files');
$newMountPoint = $this->verifyMountPoint($arguments['share']);
@@ -201,11 +194,4 @@ class SharedMount extends MountPoint implements MoveableMount {
public function getShare() {
return $this->getStorage()->getShare();
}
-
- /**
- * @return \OC\Files\Cache\ChangePropagator
- */
- public function getOwnerPropagator() {
- return $this->ownerPropagator;
- }
}
diff --git a/apps/files_sharing/lib/sharedpropagator.php b/apps/files_sharing/lib/sharedpropagator.php
new file mode 100644
index 00000000000..fcb4b92dd33
--- /dev/null
+++ b/apps/files_sharing/lib/sharedpropagator.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_Sharing;
+
+use OC\Files\Cache\Propagator;
+
+class SharedPropagator extends Propagator {
+ /**
+ * @var \OC\Files\Storage\Shared
+ */
+ protected $storage;
+
+ /**
+ * @param string $internalPath
+ * @param int $time
+ * @return array[] all propagated entries
+ */
+ public function propagateChange($internalPath, $time) {
+ $source = $this->storage->getSourcePath($internalPath);
+ /** @var \OC\Files\Storage\Storage $storage */
+ list($storage, $sourceInternalPath) = \OC\Files\Filesystem::resolvePath($source);
+ return $storage->getPropagator()->propagateChange($sourceInternalPath, $time);
+ }
+}
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 18e02844179..4807b5ee738 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -51,11 +51,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
private $ownerView;
/**
- * @var \OCA\Files_Sharing\Propagation\PropagationManager
- */
- private $propagationManager;
-
- /**
* @var string
*/
private $user;
@@ -65,7 +60,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
public function __construct($arguments) {
$this->share = $arguments['share'];
$this->ownerView = $arguments['ownerView'];
- $this->propagationManager = $arguments['propagationManager'];
$this->user = $arguments['user'];
}
@@ -75,9 +69,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
}
$this->initialized = true;
Filesystem::initMountPoints($this->share['uid_owner']);
-
- // for updating our etags when changes are made to the share from the owners side (probably indirectly by us trough another share)
- $this->propagationManager->listenToOwnerChanges($this->share['uid_owner'], $this->user);
}
/**
@@ -571,6 +562,13 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
return new \OC\Files\Cache\Shared_Watcher($storage);
}
+ public function getPropagator($storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ return new \OCA\Files_Sharing\SharedPropagator($storage);
+ }
+
public function getOwner($path) {
if ($path == '') {
$path = $this->getMountPoint();
diff --git a/apps/files_sharing/tests/api/share20ocstest.php b/apps/files_sharing/tests/api/share20ocstest.php
index f74585eb47d..b7c56fe17f6 100644
--- a/apps/files_sharing/tests/api/share20ocstest.php
+++ b/apps/files_sharing/tests/api/share20ocstest.php
@@ -20,29 +20,39 @@
*/
namespace OCA\Files_Sharing\Tests\API;
+use OC\Share20\IShare;
use OCA\Files_Sharing\API\Share20OCS;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\IRequest;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\Files\IRootFolder;
class Share20OCSTest extends \Test\TestCase {
- /** @var OC\Share20\Manager */
+ /** @var \OC\Share20\Manager */
private $shareManager;
- /** @var OCP\IGroupManager */
+ /** @var IGroupManager */
private $groupManager;
- /** @var OCP\IUserManager */
+ /** @var IUserManager */
private $userManager;
- /** @var OCP\IRequest */
+ /** @var IRequest */
private $request;
- /** @var OCP\Files\Folder */
- private $userFolder;
+ /** @var IRootFolder */
+ private $rootFolder;
- /** @var OCP\IURLGenerator */
+ /** @var IURLGenerator */
private $urlGenerator;
- /** @var OCS */
+ /** @var IUser */
+ private $currentUser;
+
+ /** @var Share20OCS */
private $ocs;
protected function setUp() {
@@ -52,15 +62,19 @@ class Share20OCSTest extends \Test\TestCase {
$this->groupManager = $this->getMock('OCP\IGroupManager');
$this->userManager = $this->getMock('OCP\IUserManager');
$this->request = $this->getMock('OCP\IRequest');
- $this->userFolder = $this->getMock('OCP\Files\Folder');
+ $this->rootFolder = $this->getMock('OCP\Files\IRootFolder');
$this->urlGenerator = $this->getMock('OCP\IURLGenerator');
-
- $this->ocs = new Share20OCS($this->shareManager,
- $this->groupManager,
- $this->userManager,
- $this->request,
- $this->userFolder,
- $this->urlGenerator);
+ $this->currentUser = $this->getMock('OCP\IUser');
+
+ $this->ocs = new Share20OCS(
+ $this->shareManager,
+ $this->groupManager,
+ $this->userManager,
+ $this->request,
+ $this->rootFolder,
+ $this->urlGenerator,
+ $this->currentUser
+ );
}
public function testDeleteShareShareNotFound() {
@@ -76,6 +90,7 @@ class Share20OCSTest extends \Test\TestCase {
public function testDeleteShareCouldNotDelete() {
$share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareOwner')->willReturn($this->currentUser);
$this->shareManager
->expects($this->once())
->method('getShareById')
@@ -94,6 +109,7 @@ class Share20OCSTest extends \Test\TestCase {
public function testDeleteShare() {
$share = $this->getMock('OC\Share20\IShare');
+ $share->method('getSharedBy')->willReturn($this->currentUser);
$this->shareManager
->expects($this->once())
->method('getShareById')
@@ -119,7 +135,7 @@ class Share20OCSTest extends \Test\TestCase {
$this->assertEquals($expected, $this->ocs->getShare(42));
}
- public function createShare($id, $shareType, $sharedWith, $sharedBy, $path, $permissions,
+ public function createShare($id, $shareType, $sharedWith, $sharedBy, $shareOwner, $path, $permissions,
$shareTime, $expiration, $parent, $target, $mail_send, $token=null,
$password=null) {
$share = $this->getMock('OC\Share20\IShare');
@@ -127,6 +143,7 @@ class Share20OCSTest extends \Test\TestCase {
$share->method('getShareType')->willReturn($shareType);
$share->method('getSharedWith')->willReturn($sharedWith);
$share->method('getSharedBy')->willReturn($sharedBy);
+ $share->method('getShareOwner')->willReturn($shareOwner);
$share->method('getPath')->willReturn($path);
$share->method('getPermissions')->willReturn($permissions);
$share->method('getShareTime')->willReturn($shareTime);
@@ -173,17 +190,20 @@ class Share20OCSTest extends \Test\TestCase {
$folder->method('getParent')->willReturn($parentFolder);
// File shared with user
- $share = $this->createShare(100,
- \OCP\Share::SHARE_TYPE_USER,
- $user,
- $owner,
- $file,
- 4,
- 5,
- null,
- 6,
- 'target',
- 0);
+ $share = $this->createShare(
+ 100,
+ \OCP\Share::SHARE_TYPE_USER,
+ $user,
+ $owner,
+ $owner,
+ $file,
+ 4,
+ 5,
+ null,
+ 6,
+ 'target',
+ 0
+ );
$expected = [
'id' => 100,
'share_type' => \OCP\Share::SHARE_TYPE_USER,
@@ -209,17 +229,20 @@ class Share20OCSTest extends \Test\TestCase {
$data[] = [$share, $expected];
// Folder shared with group
- $share = $this->createShare(101,
- \OCP\Share::SHARE_TYPE_GROUP,
- $group,
- $owner,
- $folder,
- 4,
- 5,
- null,
- 6,
- 'target',
- 0);
+ $share = $this->createShare(
+ 101,
+ \OCP\Share::SHARE_TYPE_GROUP,
+ $group,
+ $owner,
+ $owner,
+ $folder,
+ 4,
+ 5,
+ null,
+ 6,
+ 'target',
+ 0
+ );
$expected = [
'id' => 101,
'share_type' => \OCP\Share::SHARE_TYPE_GROUP,
@@ -244,57 +267,24 @@ class Share20OCSTest extends \Test\TestCase {
];
$data[] = [$share, $expected];
- // Folder shared with remote
- $share = $this->createShare(101,
- \OCP\Share::SHARE_TYPE_REMOTE,
- 'user@remote.com',
- $owner,
- $folder,
- 4,
- 5,
- null,
- 6,
- 'target',
- 0);
- $expected = [
- 'id' => 101,
- 'share_type' => \OCP\Share::SHARE_TYPE_REMOTE,
- 'share_with' => 'user@remote.com',
- 'share_with_displayname' => 'user@remote.com',
- 'uid_owner' => 'ownerId',
- 'displayname_owner' => 'ownerDisplay',
- 'item_type' => 'folder',
- 'item_source' => 2,
- 'file_source' => 2,
- 'file_target' => 'target',
- 'file_parent' => 3,
- 'token' => null,
- 'expiration' => null,
- 'permissions' => 4,
- 'stime' => 5,
- 'parent' => 6,
- 'storage_id' => 'STORAGE',
- 'path' => 'folder',
- 'storage' => null, // HACK around static function
- 'mail_send' => 0,
- ];
- $data[] = [$share, $expected];
-
// File shared by link with Expire
$expire = \DateTime::createFromFormat('Y-m-d h:i:s', '2000-01-02 01:02:03');
- $share = $this->createShare(101,
- \OCP\Share::SHARE_TYPE_LINK,
- null,
- $owner,
- $folder,
- 4,
- 5,
- $expire,
- 6,
- 'target',
- 0,
- 'token',
- 'password');
+ $share = $this->createShare(
+ 101,
+ \OCP\Share::SHARE_TYPE_LINK,
+ null,
+ $owner,
+ $owner,
+ $folder,
+ 4,
+ 5,
+ $expire,
+ 6,
+ 'target',
+ 0,
+ 'token',
+ 'password'
+ );
$expected = [
'id' => 101,
'share_type' => \OCP\Share::SHARE_TYPE_LINK,
@@ -327,20 +317,78 @@ class Share20OCSTest extends \Test\TestCase {
* @dataProvider dataGetShare
*/
public function testGetShare(\OC\Share20\IShare $share, array $result) {
+ $ocs = $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS')
+ ->setConstructorArgs([
+ $this->shareManager,
+ $this->groupManager,
+ $this->userManager,
+ $this->request,
+ $this->rootFolder,
+ $this->urlGenerator,
+ $this->currentUser
+ ])->setMethods(['canAccessShare'])
+ ->getMock();
+
+ $ocs->method('canAccessShare')->willReturn(true);
+
$this->shareManager
->expects($this->once())
->method('getShareById')
->with($share->getId())
->willReturn($share);
- $this->userFolder
+ $userFolder = $this->getMock('OCP\Files\Folder');
+ $userFolder
->method('getRelativePath')
->will($this->returnArgument(0));
+ $this->rootFolder->method('getUserFolder')
+ ->with($share->getShareOwner()->getUID())
+ ->willReturn($userFolder);
+
$this->urlGenerator
->method('linkToRouteAbsolute')
->willReturn('url');
$expected = new \OC_OCS_Result($result);
- $this->assertEquals($expected->getData(), $this->ocs->getShare($share->getId())->getData()); }
+ $this->assertEquals($expected->getData(), $ocs->getShare($share->getId())->getData());
+ }
+
+ public function testCanAccessShare() {
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareOwner')->willReturn($this->currentUser);
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getSharedBy')->willReturn($this->currentUser);
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER);
+ $share->method('getSharedWith')->willReturn($this->currentUser);
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER);
+ $share->method('getSharedWith')->willReturn($this->getMock('OCP\IUser'));
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_GROUP);
+ $group = $this->getMock('OCP\IGroup');
+ $group->method('inGroup')->with($this->currentUser)->willReturn(true);
+ $share->method('getSharedWith')->willReturn($group);
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_GROUP);
+ $group = $this->getMock('OCP\IGroup');
+ $group->method('inGroup')->with($this->currentUser)->willReturn(false);
+ $share->method('getSharedWith')->willReturn($group);
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+
+ $share = $this->getMock('OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_LINK);
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
}
diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php
index 1abf04df84f..2a33732d63f 100644
--- a/apps/files_sharing/tests/etagpropagation.php
+++ b/apps/files_sharing/tests/etagpropagation.php
@@ -193,7 +193,8 @@ class EtagPropagation extends TestCase {
public function testOwnerWritesToSingleFileShare() {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
- Filesystem::file_put_contents('/foo.txt', 'bar');
+ Filesystem::file_put_contents('/foo.txt', 'longer_bar');
+ Filesystem::touch('/foo.txt', time() - 1);
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4, self::TEST_FILES_SHARING_API_USER3]);
$this->assertEtagsChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2]);
diff --git a/apps/files_sharing/tests/grouppropagationmanager.php b/apps/files_sharing/tests/grouppropagationmanager.php
deleted file mode 100644
index ea32ca4f7ec..00000000000
--- a/apps/files_sharing/tests/grouppropagationmanager.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-/**
- * @author Vincent Petry <pvince81@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_sharing\Tests;
-
-use OC\Files\View;
-use OCP\IGroupManager;
-use OCP\IGroup;
-use OCP\IUser;
-use OCP\Share;
-use OCA\Files_Sharing\Propagation\GroupPropagationManager;
-use OCA\Files_Sharing\Propagation\PropagationManager;
-
-class GroupPropagationManagerTest extends TestCase {
-
- /**
- * @var GroupPropagationManager
- */
- private $groupPropagationManager;
-
- /**
- * @var IGroupManager
- */
- private $groupManager;
-
- /**
- * @var PropagationManager
- */
- private $propagationManager;
-
- /**
- * @var IGroup
- */
- private $recipientGroup;
-
- /**
- * @var IUser
- */
- private $recipientUser;
-
- /**
- * @var array
- */
- private $fileInfo;
-
- protected function setUp() {
- parent::setUp();
-
- $user = $this->getMockBuilder('\OCP\IUser')
- ->disableOriginalConstructor()
- ->getMock();
- $user->method('getUID')->willReturn(self::TEST_FILES_SHARING_API_USER1);
- $userSession = $this->getMockBuilder('\OCP\IUserSession')
- ->disableOriginalConstructor()
- ->getMock();
- $userSession->method('getUser')->willReturn(selF::TEST_FILES_SHARING_API_USER1);
-
- $this->propagationManager = $this->getMockBuilder('OCA\Files_Sharing\Propagation\PropagationManager')
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->groupManager = \OC::$server->getGroupManager();
- $this->groupPropagationManager = new GroupPropagationManager(
- $userSession,
- $this->groupManager,
- $this->propagationManager
- );
- $this->groupPropagationManager->globalSetup();
-
- // since the sharing code is not mockable, we have to create a real folder
- $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
- $view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
- $view1->mkdir('/folder');
-
- $this->fileInfo = $view1->getFileInfo('/folder');
-
- $this->recipientGroup = $this->groupManager->get(self::TEST_FILES_SHARING_API_GROUP1);
- $this->recipientUser = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER3);
-
- Share::shareItem(
- 'folder',
- $this->fileInfo['fileid'],
- Share::SHARE_TYPE_GROUP,
- $this->recipientGroup->getGID(),
- \OCP\Constants::PERMISSION_READ
- );
-
- $this->loginAsUser($this->recipientUser->getUID());
- }
-
- protected function tearDown() {
- $this->groupPropagationManager->tearDown();
- $this->recipientGroup->removeUser($this->recipientUser);
- parent::tearDown();
- }
-
- public function testPropagateWhenAddedToGroup() {
- $this->propagationManager->expects($this->once())
- ->method('propagateSharesToUser')
- ->with($this->callback(function($shares) {
- if (count($shares) !== 1) {
- return false;
- }
- $share = array_values($shares)[0];
- return $share['file_source'] === $this->fileInfo['fileid'] &&
- $share['share_with'] === $this->recipientGroup->getGID() &&
- $share['file_target'] === '/folder';
- }), $this->recipientUser->getUID());
-
- $this->recipientGroup->addUser($this->recipientUser);
- }
-
- public function testPropagateWhenRemovedFromGroup() {
- $this->recipientGroup->addUser($this->recipientUser);
-
- $this->propagationManager->expects($this->once())
- ->method('propagateSharesToUser')
- ->with($this->callback(function($shares) {
- if (count($shares) !== 1) {
- return false;
- }
- $share = array_values($shares)[0];
- return $share['file_source'] === $this->fileInfo['fileid'] &&
- $share['share_with'] === $this->recipientGroup->getGID() &&
- $share['file_target'] === '/folder';
- }), $this->recipientUser->getUID());
-
- $this->recipientGroup->removeUser($this->recipientUser);
- }
-
- public function testPropagateWhenRemovedFromGroupWithSubdirTarget() {
- $this->recipientGroup->addUser($this->recipientUser);
-
- // relogin to refresh mount points
- $this->loginAsUser($this->recipientUser->getUID());
- $recipientView = new View('/' . $this->recipientUser->getUID() . '/files');
-
- $this->assertTrue($recipientView->mkdir('sub'));
- $this->assertTrue($recipientView->rename('folder', 'sub/folder'));
-
- $this->propagationManager->expects($this->once())
- ->method('propagateSharesToUser')
- ->with($this->callback(function($shares) {
- if (count($shares) !== 1) {
- return false;
- }
- $share = array_values($shares)[0];
- return $share['file_source'] === $this->fileInfo['fileid'] &&
- $share['share_with'] === $this->recipientGroup->getGID() &&
- $share['file_target'] === '/sub/folder';
- }), $this->recipientUser->getUID());
-
- $this->recipientGroup->removeUser($this->recipientUser);
- }
-}
diff --git a/apps/files_sharing/tests/testcase.php b/apps/files_sharing/tests/testcase.php
index c91734a5b03..6a72a34149a 100644
--- a/apps/files_sharing/tests/testcase.php
+++ b/apps/files_sharing/tests/testcase.php
@@ -61,7 +61,6 @@ abstract class TestCase extends \Test\TestCase {
$application = new Application();
$application->registerMountProviders();
- $application->setupPropagation();
// reset backend
\OC_User::clearBackends();
diff --git a/apps/files_trashbin/l10n/ar.js b/apps/files_trashbin/l10n/ar.js
index 964d547c42a..8b78e9e017a 100644
--- a/apps/files_trashbin/l10n/ar.js
+++ b/apps/files_trashbin/l10n/ar.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Delete" : "إلغاء",
"Delete permanently" : "حذف بشكل دائم",
"Error" : "خطأ",
+ "This operation is forbidden" : "هذة العملية ممنوعة ",
"restored" : "تمت الاستعادة",
"No entries found in this folder" : "لا يوجد مدخلات في هذا المجلد ",
"Select all" : "تحديد الكل ",
diff --git a/apps/files_trashbin/l10n/ar.json b/apps/files_trashbin/l10n/ar.json
index cb73176fda1..ac3552d79af 100644
--- a/apps/files_trashbin/l10n/ar.json
+++ b/apps/files_trashbin/l10n/ar.json
@@ -6,6 +6,7 @@
"Delete" : "إلغاء",
"Delete permanently" : "حذف بشكل دائم",
"Error" : "خطأ",
+ "This operation is forbidden" : "هذة العملية ممنوعة ",
"restored" : "تمت الاستعادة",
"No entries found in this folder" : "لا يوجد مدخلات في هذا المجلد ",
"Select all" : "تحديد الكل ",
diff --git a/apps/files_trashbin/l10n/ast.js b/apps/files_trashbin/l10n/ast.js
index b467f8b51a1..f59457ad6d1 100644
--- a/apps/files_trashbin/l10n/ast.js
+++ b/apps/files_trashbin/l10n/ast.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "Desaniciar",
"Delete permanently" : "Desaniciar dafechu",
"Error" : "Fallu",
+ "This operation is forbidden" : "La operación ta prohibida",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, por favor verifica'l rexistru o contacta l'alministrador",
"restored" : "recuperóse",
"No deleted files" : "Ensin ficheros desaniciaos",
"You will be able to recover deleted files from here" : "Dende equí podrás recureperar los ficheros desaniciaos",
diff --git a/apps/files_trashbin/l10n/ast.json b/apps/files_trashbin/l10n/ast.json
index b568456279b..65380e118d6 100644
--- a/apps/files_trashbin/l10n/ast.json
+++ b/apps/files_trashbin/l10n/ast.json
@@ -6,6 +6,8 @@
"Delete" : "Desaniciar",
"Delete permanently" : "Desaniciar dafechu",
"Error" : "Fallu",
+ "This operation is forbidden" : "La operación ta prohibida",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, por favor verifica'l rexistru o contacta l'alministrador",
"restored" : "recuperóse",
"No deleted files" : "Ensin ficheros desaniciaos",
"You will be able to recover deleted files from here" : "Dende equí podrás recureperar los ficheros desaniciaos",
diff --git a/apps/files_trashbin/l10n/az.js b/apps/files_trashbin/l10n/az.js
index a6b149dcbdb..7b3ab2ef04a 100644
--- a/apps/files_trashbin/l10n/az.js
+++ b/apps/files_trashbin/l10n/az.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Geri qaytarila bilmədi %s",
"Deleted files" : "Silinmiş fayllar",
"Restore" : "Geri qaytar",
+ "Delete" : "Sil",
"Delete permanently" : "Həmişəlik sil",
"Error" : "Səhv",
+ "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",
"restored" : "geriqaytarılıb",
"No deleted files" : "Silinmiş fayllar mövcud deyil",
"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",
- "Deleted" : "Silinib",
- "Delete" : "Sil"
+ "Deleted" : "Silinib"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/az.json b/apps/files_trashbin/l10n/az.json
index 45d74ddbc9c..f9d23ea362a 100644
--- a/apps/files_trashbin/l10n/az.json
+++ b/apps/files_trashbin/l10n/az.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Geri qaytarila bilmədi %s",
"Deleted files" : "Silinmiş fayllar",
"Restore" : "Geri qaytar",
+ "Delete" : "Sil",
"Delete permanently" : "Həmişəlik sil",
"Error" : "Səhv",
+ "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",
"restored" : "geriqaytarılıb",
"No deleted files" : "Silinmiş fayllar mövcud deyil",
"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",
- "Deleted" : "Silinib",
- "Delete" : "Sil"
+ "Deleted" : "Silinib"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bg_BG.js b/apps/files_trashbin/l10n/bg_BG.js
index 9db73c98a6d..767f529a9a1 100644
--- a/apps/files_trashbin/l10n/bg_BG.js
+++ b/apps/files_trashbin/l10n/bg_BG.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Неуспешно възтановяване на %s.",
"Deleted files" : "Изтрити файлове",
"Restore" : "Възстановяви",
+ "Delete" : "Изтрий",
"Delete permanently" : "Изтрий завинаги",
"Error" : "Грешка",
"restored" : "възстановено",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Няма намерени записи в тази папка",
"Select all" : "Избери всички",
"Name" : "Име",
- "Deleted" : "Изтрито",
- "Delete" : "Изтрий"
+ "Deleted" : "Изтрито"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/bg_BG.json b/apps/files_trashbin/l10n/bg_BG.json
index 3f3b3e8b835..824d1e44254 100644
--- a/apps/files_trashbin/l10n/bg_BG.json
+++ b/apps/files_trashbin/l10n/bg_BG.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Неуспешно възтановяване на %s.",
"Deleted files" : "Изтрити файлове",
"Restore" : "Възстановяви",
+ "Delete" : "Изтрий",
"Delete permanently" : "Изтрий завинаги",
"Error" : "Грешка",
"restored" : "възстановено",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Няма намерени записи в тази папка",
"Select all" : "Избери всички",
"Name" : "Име",
- "Deleted" : "Изтрито",
- "Delete" : "Изтрий"
+ "Deleted" : "Изтрито"
},"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
index 6f6626b71cc..12537a14afb 100644
--- a/apps/files_trashbin/l10n/bn_BD.js
+++ b/apps/files_trashbin/l10n/bn_BD.js
@@ -5,10 +5,10 @@ OC.L10N.register(
"Couldn't restore %s" : "%s ফেরত আনা গেলনা",
"Deleted files" : "মুছে ফেলা ফাইলসমূহ",
"Restore" : "ফিরিয়ে দাও",
+ "Delete" : "মুছে",
"Error" : "সমস্যা",
"restored" : "পূণঃসংরক্ষিত",
"Name" : "নাম",
- "Deleted" : "মুছে ফেলা",
- "Delete" : "মুছে"
+ "Deleted" : "মুছে ফেলা"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/bn_BD.json b/apps/files_trashbin/l10n/bn_BD.json
index affc277fcda..3630d490455 100644
--- a/apps/files_trashbin/l10n/bn_BD.json
+++ b/apps/files_trashbin/l10n/bn_BD.json
@@ -3,10 +3,10 @@
"Couldn't restore %s" : "%s ফেরত আনা গেলনা",
"Deleted files" : "মুছে ফেলা ফাইলসমূহ",
"Restore" : "ফিরিয়ে দাও",
+ "Delete" : "মুছে",
"Error" : "সমস্যা",
"restored" : "পূণঃসংরক্ষিত",
"Name" : "নাম",
- "Deleted" : "মুছে ফেলা",
- "Delete" : "মুছে"
+ "Deleted" : "মুছে ফেলা"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bn_IN.js b/apps/files_trashbin/l10n/bn_IN.js
index 5943177a923..7c3bb37553a 100644
--- a/apps/files_trashbin/l10n/bn_IN.js
+++ b/apps/files_trashbin/l10n/bn_IN.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "%s পুনরুদ্ধার করা যায়নি",
"Deleted files" : "ফাইলস মুছে ফেলা হয়েছে",
"Restore" : "পুনরুদ্ধার",
+ "Delete" : "মুছে ফেলা",
"Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Error" : "ভুল",
"restored" : "পুনরুদ্ধার করা হয়েছে",
"Name" : "নাম",
- "Deleted" : "মুছে ফেলা হয়েছে",
- "Delete" : "মুছে ফেলা"
+ "Deleted" : "মুছে ফেলা হয়েছে"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/bn_IN.json b/apps/files_trashbin/l10n/bn_IN.json
index 45a24ee7675..b7ae21692bf 100644
--- a/apps/files_trashbin/l10n/bn_IN.json
+++ b/apps/files_trashbin/l10n/bn_IN.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "%s পুনরুদ্ধার করা যায়নি",
"Deleted files" : "ফাইলস মুছে ফেলা হয়েছে",
"Restore" : "পুনরুদ্ধার",
+ "Delete" : "মুছে ফেলা",
"Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Error" : "ভুল",
"restored" : "পুনরুদ্ধার করা হয়েছে",
"Name" : "নাম",
- "Deleted" : "মুছে ফেলা হয়েছে",
- "Delete" : "মুছে ফেলা"
+ "Deleted" : "মুছে ফেলা হয়েছে"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bs.js b/apps/files_trashbin/l10n/bs.js
index 0378a76f855..c02d88b07e4 100644
--- a/apps/files_trashbin/l10n/bs.js
+++ b/apps/files_trashbin/l10n/bs.js
@@ -2,9 +2,9 @@ OC.L10N.register(
"files_trashbin",
{
"Restore" : "Obnovi",
+ "Delete" : "Izbriši",
"Error" : "Greška",
"Select all" : "Označi sve",
- "Name" : "Ime",
- "Delete" : "Izbriši"
+ "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
index 6f222ca37af..00f1105abc6 100644
--- a/apps/files_trashbin/l10n/bs.json
+++ b/apps/files_trashbin/l10n/bs.json
@@ -1,8 +1,8 @@
{ "translations": {
"Restore" : "Obnovi",
+ "Delete" : "Izbriši",
"Error" : "Greška",
"Select all" : "Označi sve",
- "Name" : "Ime",
- "Delete" : "Izbriši"
+ "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/ca.js b/apps/files_trashbin/l10n/ca.js
index 356e525b73c..d5f19e466c1 100644
--- a/apps/files_trashbin/l10n/ca.js
+++ b/apps/files_trashbin/l10n/ca.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "No s'ha pogut restaurar %s",
"Deleted files" : "Fitxers esborrats",
"Restore" : "Recupera",
+ "Delete" : "Esborra",
"Delete permanently" : "Esborra permanentment",
"Error" : "Error",
"restored" : "restaurat",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
"Select all" : "Seleccionar tot",
"Name" : "Nom",
- "Deleted" : "Eliminat",
- "Delete" : "Esborra"
+ "Deleted" : "Eliminat"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ca.json b/apps/files_trashbin/l10n/ca.json
index dfdec62d7d1..520ef5f2f74 100644
--- a/apps/files_trashbin/l10n/ca.json
+++ b/apps/files_trashbin/l10n/ca.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "No s'ha pogut restaurar %s",
"Deleted files" : "Fitxers esborrats",
"Restore" : "Recupera",
+ "Delete" : "Esborra",
"Delete permanently" : "Esborra permanentment",
"Error" : "Error",
"restored" : "restaurat",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
"Select all" : "Seleccionar tot",
"Name" : "Nom",
- "Deleted" : "Eliminat",
- "Delete" : "Esborra"
+ "Deleted" : "Eliminat"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/cs_CZ.js b/apps/files_trashbin/l10n/cs_CZ.js
index 4d0f9b7018d..22c33690420 100644
--- a/apps/files_trashbin/l10n/cs_CZ.js
+++ b/apps/files_trashbin/l10n/cs_CZ.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Nelze obnovit %s",
"Deleted files" : "Odstraněné soubory",
"Restore" : "Obnovit",
+ "Delete" : "Smazat",
"Delete permanently" : "Trvale odstranit",
"Error" : "Chyba",
+ "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 prosím logy nebo kontaktujte svého správce systému",
"restored" : "obnoveno",
"No deleted files" : "Žádné smazané soubory",
"You will be able to recover deleted files from here" : "Odtud budete moci obnovovat odstraněné soubory",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Select all" : "Vybrat vše",
"Name" : "Název",
- "Deleted" : "Smazáno",
- "Delete" : "Smazat"
+ "Deleted" : "Smazáno"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/cs_CZ.json b/apps/files_trashbin/l10n/cs_CZ.json
index cffa7b663fa..a4a13942fd1 100644
--- a/apps/files_trashbin/l10n/cs_CZ.json
+++ b/apps/files_trashbin/l10n/cs_CZ.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Nelze obnovit %s",
"Deleted files" : "Odstraněné soubory",
"Restore" : "Obnovit",
+ "Delete" : "Smazat",
"Delete permanently" : "Trvale odstranit",
"Error" : "Chyba",
+ "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 prosím logy nebo kontaktujte svého správce systému",
"restored" : "obnoveno",
"No deleted files" : "Žádné smazané soubory",
"You will be able to recover deleted files from here" : "Odtud budete moci obnovovat odstraněné soubory",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Select all" : "Vybrat vše",
"Name" : "Název",
- "Deleted" : "Smazáno",
- "Delete" : "Smazat"
+ "Deleted" : "Smazáno"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/cy_GB.js b/apps/files_trashbin/l10n/cy_GB.js
index cd20621625f..e689aa9b52c 100644
--- a/apps/files_trashbin/l10n/cy_GB.js
+++ b/apps/files_trashbin/l10n/cy_GB.js
@@ -5,10 +5,10 @@ OC.L10N.register(
"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",
- "Delete" : "Dileu"
+ "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
index 0f21da0c56d..c42ce3d10ea 100644
--- a/apps/files_trashbin/l10n/cy_GB.json
+++ b/apps/files_trashbin/l10n/cy_GB.json
@@ -3,10 +3,10 @@
"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",
- "Delete" : "Dileu"
+ "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/da.js b/apps/files_trashbin/l10n/da.js
index dbcd566a9d2..6dcbd7040d1 100644
--- a/apps/files_trashbin/l10n/da.js
+++ b/apps/files_trashbin/l10n/da.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Kunne ikke gendanne %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gendan",
+ "Delete" : "Slet",
"Delete permanently" : "Slet permanent",
"Error" : "Fejl",
+ "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",
"restored" : "Gendannet",
"No deleted files" : "Ingen slettede filer",
"You will be able to recover deleted files from here" : "Du vil kunne gendanne slettede filer herfra",
"No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
"Select all" : "Vælg alle",
"Name" : "Navn",
- "Deleted" : "Slettet",
- "Delete" : "Slet"
+ "Deleted" : "Slettet"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/da.json b/apps/files_trashbin/l10n/da.json
index 0f660d2e44d..456b1ab73b2 100644
--- a/apps/files_trashbin/l10n/da.json
+++ b/apps/files_trashbin/l10n/da.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Kunne ikke gendanne %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gendan",
+ "Delete" : "Slet",
"Delete permanently" : "Slet permanent",
"Error" : "Fejl",
+ "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",
"restored" : "Gendannet",
"No deleted files" : "Ingen slettede filer",
"You will be able to recover deleted files from here" : "Du vil kunne gendanne slettede filer herfra",
"No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
"Select all" : "Vælg alle",
"Name" : "Navn",
- "Deleted" : "Slettet",
- "Delete" : "Slet"
+ "Deleted" : "Slettet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/de.js b/apps/files_trashbin/l10n/de.js
index 96addde03b2..500205227c8 100644
--- a/apps/files_trashbin/l10n/de.js
+++ b/apps/files_trashbin/l10n/de.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete" : "Löschen",
"Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
+ "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üfe die Logdateien oder kontaktiere den Administrator",
"restored" : "Wiederhergestellt",
"No deleted files" : "Keine gelöschten Dateien",
"You will be able to recover deleted files from here" : "Du kannst hier gelöschte Dateien wiederherstellen",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"Name" : "Name",
- "Deleted" : "gelöscht",
- "Delete" : "Löschen"
+ "Deleted" : "gelöscht"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/de.json b/apps/files_trashbin/l10n/de.json
index d7b9b07b87e..baa976b6ff3 100644
--- a/apps/files_trashbin/l10n/de.json
+++ b/apps/files_trashbin/l10n/de.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete" : "Löschen",
"Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
+ "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üfe die Logdateien oder kontaktiere den Administrator",
"restored" : "Wiederhergestellt",
"No deleted files" : "Keine gelöschten Dateien",
"You will be able to recover deleted files from here" : "Du kannst hier gelöschte Dateien wiederherstellen",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"Name" : "Name",
- "Deleted" : "gelöscht",
- "Delete" : "Löschen"
+ "Deleted" : "gelöscht"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/de_AT.js b/apps/files_trashbin/l10n/de_AT.js
index db1e7544a5b..5d1a6cec445 100644
--- a/apps/files_trashbin/l10n/de_AT.js
+++ b/apps/files_trashbin/l10n/de_AT.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"files_trashbin",
{
- "Error" : "Fehler",
- "Delete" : "Löschen"
+ "Delete" : "Löschen",
+ "Error" : "Fehler"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/de_AT.json b/apps/files_trashbin/l10n/de_AT.json
index a854415701f..5452cc8972a 100644
--- a/apps/files_trashbin/l10n/de_AT.json
+++ b/apps/files_trashbin/l10n/de_AT.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Error" : "Fehler",
- "Delete" : "Löschen"
+ "Delete" : "Löschen",
+ "Error" : "Fehler"
},"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 c25166efc80..84a2c382efa 100644
--- a/apps/files_trashbin/l10n/de_DE.js
+++ b/apps/files_trashbin/l10n/de_DE.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete" : "Löschen",
"Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
+ "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 Logdateien oder kontaktieren Sie den Administrator",
"restored" : "Wiederhergestellt",
"No deleted files" : "Keine gelöschten Dateien",
"You will be able to recover deleted files from here" : "Sie können hier gelöschte Dateien wiederherstellen",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"Name" : "Name",
- "Deleted" : "Gelöscht",
- "Delete" : "Löschen"
+ "Deleted" : "Gelöscht"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/de_DE.json b/apps/files_trashbin/l10n/de_DE.json
index 9f4a895fa16..966461efee3 100644
--- a/apps/files_trashbin/l10n/de_DE.json
+++ b/apps/files_trashbin/l10n/de_DE.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete" : "Löschen",
"Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
+ "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 Logdateien oder kontaktieren Sie den Administrator",
"restored" : "Wiederhergestellt",
"No deleted files" : "Keine gelöschten Dateien",
"You will be able to recover deleted files from here" : "Sie können hier gelöschte Dateien wiederherstellen",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Select all" : "Alle auswählen",
"Name" : "Name",
- "Deleted" : "Gelöscht",
- "Delete" : "Löschen"
+ "Deleted" : "Gelöscht"
},"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
index 8abbdb85b48..d63dc09c745 100644
--- a/apps/files_trashbin/l10n/el.js
+++ b/apps/files_trashbin/l10n/el.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Αδυναμία επαναφοράς %s",
"Deleted files" : "Διεγραμμένα αρχεία",
"Restore" : "Επαναφορά",
+ "Delete" : "Διαγραφή",
"Delete permanently" : "Μόνιμη διαγραφή",
"Error" : "Σφάλμα",
+ "This operation is forbidden" : "Αυτή η ενέργεια δεν επιτρέπεται",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλώ ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
"restored" : "επαναφέρθηκαν",
"No deleted files" : "Κανένα διαγεγραμμένο αρχείο",
"You will be able to recover deleted files from here" : "Θα έχετε την δυνατότητα επαναφοράς διαγεγραμμένων αρχείων από εδώ",
"No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο",
"Select all" : "Επιλογή όλων",
"Name" : "Όνομα",
- "Deleted" : "Διαγραμμένα",
- "Delete" : "Διαγραφή"
+ "Deleted" : "Διαγραμμένα"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/el.json b/apps/files_trashbin/l10n/el.json
index eb52020a3e1..5d0ad857d35 100644
--- a/apps/files_trashbin/l10n/el.json
+++ b/apps/files_trashbin/l10n/el.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Αδυναμία επαναφοράς %s",
"Deleted files" : "Διεγραμμένα αρχεία",
"Restore" : "Επαναφορά",
+ "Delete" : "Διαγραφή",
"Delete permanently" : "Μόνιμη διαγραφή",
"Error" : "Σφάλμα",
+ "This operation is forbidden" : "Αυτή η ενέργεια δεν επιτρέπεται",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλώ ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
"restored" : "επαναφέρθηκαν",
"No deleted files" : "Κανένα διαγεγραμμένο αρχείο",
"You will be able to recover deleted files from here" : "Θα έχετε την δυνατότητα επαναφοράς διαγεγραμμένων αρχείων από εδώ",
"No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο",
"Select all" : "Επιλογή όλων",
"Name" : "Όνομα",
- "Deleted" : "Διαγραμμένα",
- "Delete" : "Διαγραφή"
+ "Deleted" : "Διαγραμμένα"
},"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 e2ff4ac73fb..e3f3b78af57 100644
--- a/apps/files_trashbin/l10n/en_GB.js
+++ b/apps/files_trashbin/l10n/en_GB.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Couldn't restore %s",
"Deleted files" : "Deleted files",
"Restore" : "Restore",
+ "Delete" : "Delete",
"Delete permanently" : "Delete permanently",
"Error" : "Error",
"restored" : "restored",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"Name" : "Name",
- "Deleted" : "Deleted",
- "Delete" : "Delete"
+ "Deleted" : "Deleted"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/en_GB.json b/apps/files_trashbin/l10n/en_GB.json
index 078bca97a49..9c533523889 100644
--- a/apps/files_trashbin/l10n/en_GB.json
+++ b/apps/files_trashbin/l10n/en_GB.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Couldn't restore %s",
"Deleted files" : "Deleted files",
"Restore" : "Restore",
+ "Delete" : "Delete",
"Delete permanently" : "Delete permanently",
"Error" : "Error",
"restored" : "restored",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
"Name" : "Name",
- "Deleted" : "Deleted",
- "Delete" : "Delete"
+ "Deleted" : "Deleted"
},"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
index 95edf8d3eb0..b4ab12d4bdd 100644
--- a/apps/files_trashbin/l10n/eo.js
+++ b/apps/files_trashbin/l10n/eo.js
@@ -5,12 +5,12 @@ OC.L10N.register(
"Couldn't restore %s" : "Ne povis restaŭriĝi %s",
"Deleted files" : "Forigitaj dosieroj",
"Restore" : "Restaŭri",
+ "Delete" : "Forigi",
"Delete permanently" : "Forigi por ĉiam",
"Error" : "Eraro",
"restored" : "restaŭrita",
"Select all" : "Elekti ĉion",
"Name" : "Nomo",
- "Deleted" : "Forigita",
- "Delete" : "Forigi"
+ "Deleted" : "Forigita"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/eo.json b/apps/files_trashbin/l10n/eo.json
index 7fd1d85ff7a..87a9b7d479b 100644
--- a/apps/files_trashbin/l10n/eo.json
+++ b/apps/files_trashbin/l10n/eo.json
@@ -3,12 +3,12 @@
"Couldn't restore %s" : "Ne povis restaŭriĝi %s",
"Deleted files" : "Forigitaj dosieroj",
"Restore" : "Restaŭri",
+ "Delete" : "Forigi",
"Delete permanently" : "Forigi por ĉiam",
"Error" : "Eraro",
"restored" : "restaŭrita",
"Select all" : "Elekti ĉion",
"Name" : "Nomo",
- "Deleted" : "Forigita",
- "Delete" : "Forigi"
+ "Deleted" : "Forigita"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es.js b/apps/files_trashbin/l10n/es.js
index b7f1a52327a..7cc67ce1945 100644
--- a/apps/files_trashbin/l10n/es.js
+++ b/apps/files_trashbin/l10n/es.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
+ "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 contáctese con el administrador",
"restored" : "recuperado",
"No deleted files" : "No hay ningún archivo eliminado",
"You will be able to recover deleted files from here" : "Desde aquí se podrán recuperar archivos eliminados",
"No entries found in this folder" : "No hay entradas en esta carpeta",
"Select all" : "Seleccionar todo",
"Name" : "Nombre",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/es.json b/apps/files_trashbin/l10n/es.json
index c55ae652d55..05f3dfa20b8 100644
--- a/apps/files_trashbin/l10n/es.json
+++ b/apps/files_trashbin/l10n/es.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
+ "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 contáctese con el administrador",
"restored" : "recuperado",
"No deleted files" : "No hay ningún archivo eliminado",
"You will be able to recover deleted files from here" : "Desde aquí se podrán recuperar archivos eliminados",
"No entries found in this folder" : "No hay entradas en esta carpeta",
"Select all" : "Seleccionar todo",
"Name" : "Nombre",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_AR.js b/apps/files_trashbin/l10n/es_AR.js
index b9566c17f1f..e916fc98f04 100644
--- a/apps/files_trashbin/l10n/es_AR.js
+++ b/apps/files_trashbin/l10n/es_AR.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "No se pudo restaurar %s",
"Deleted files" : "Archivos borrados",
"Restore" : "Recuperar",
+ "Delete" : "Borrar",
"Delete permanently" : "Borrar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Name" : "Nombre",
- "Deleted" : "Borrado",
- "Delete" : "Borrar"
+ "Deleted" : "Borrado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/es_AR.json b/apps/files_trashbin/l10n/es_AR.json
index c3de7177ef6..41ad13d0ba2 100644
--- a/apps/files_trashbin/l10n/es_AR.json
+++ b/apps/files_trashbin/l10n/es_AR.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "No se pudo restaurar %s",
"Deleted files" : "Archivos borrados",
"Restore" : "Recuperar",
+ "Delete" : "Borrar",
"Delete permanently" : "Borrar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Name" : "Nombre",
- "Deleted" : "Borrado",
- "Delete" : "Borrar"
+ "Deleted" : "Borrado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_MX.js b/apps/files_trashbin/l10n/es_MX.js
index 0a53f9cffdf..109427e9d80 100644
--- a/apps/files_trashbin/l10n/es_MX.js
+++ b/apps/files_trashbin/l10n/es_MX.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Name" : "Nombre",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/es_MX.json b/apps/files_trashbin/l10n/es_MX.json
index 56dce90e07d..a1bbba28cde 100644
--- a/apps/files_trashbin/l10n/es_MX.json
+++ b/apps/files_trashbin/l10n/es_MX.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Name" : "Nombre",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ 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 9298fdd5b18..3f928dede8d 100644
--- a/apps/files_trashbin/l10n/et_EE.js
+++ b/apps/files_trashbin/l10n/et_EE.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "%s ei saa taastada",
"Deleted files" : "Kustutatud failid",
"Restore" : "Taasta",
+ "Delete" : "Kustuta",
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
+ "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",
"restored" : "taastatud",
"No deleted files" : "Kustutatud faile pole",
"You will be able to recover deleted files from here" : "Sa saad siit kustutatud faile taastada",
"No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Select all" : "Vali kõik",
"Name" : "Nimi",
- "Deleted" : "Kustutatud",
- "Delete" : "Kustuta"
+ "Deleted" : "Kustutatud"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json
index 734c8f6f2ec..468a3bcb385 100644
--- a/apps/files_trashbin/l10n/et_EE.json
+++ b/apps/files_trashbin/l10n/et_EE.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "%s ei saa taastada",
"Deleted files" : "Kustutatud failid",
"Restore" : "Taasta",
+ "Delete" : "Kustuta",
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
+ "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",
"restored" : "taastatud",
"No deleted files" : "Kustutatud faile pole",
"You will be able to recover deleted files from here" : "Sa saad siit kustutatud faile taastada",
"No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Select all" : "Vali kõik",
"Name" : "Nimi",
- "Deleted" : "Kustutatud",
- "Delete" : "Kustuta"
+ "Deleted" : "Kustutatud"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/eu.js b/apps/files_trashbin/l10n/eu.js
index 568fda14450..5db27f0a9c6 100644
--- a/apps/files_trashbin/l10n/eu.js
+++ b/apps/files_trashbin/l10n/eu.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Ezin izan da %s berreskuratu",
"Deleted files" : "Ezabatutako fitxategiak",
"Restore" : "Berrezarri",
+ "Delete" : "Ezabatu",
"Delete permanently" : "Ezabatu betirako",
"Error" : "Errorea",
"restored" : "Berrezarrita",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan",
"Select all" : "Hautatu dena",
"Name" : "Izena",
- "Deleted" : "Ezabatuta",
- "Delete" : "Ezabatu"
+ "Deleted" : "Ezabatuta"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/eu.json b/apps/files_trashbin/l10n/eu.json
index 890ff07a468..07591e6b5d6 100644
--- a/apps/files_trashbin/l10n/eu.json
+++ b/apps/files_trashbin/l10n/eu.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Ezin izan da %s berreskuratu",
"Deleted files" : "Ezabatutako fitxategiak",
"Restore" : "Berrezarri",
+ "Delete" : "Ezabatu",
"Delete permanently" : "Ezabatu betirako",
"Error" : "Errorea",
"restored" : "Berrezarrita",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan",
"Select all" : "Hautatu dena",
"Name" : "Izena",
- "Deleted" : "Ezabatuta",
- "Delete" : "Ezabatu"
+ "Deleted" : "Ezabatuta"
},"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 28aa38a96a6..281851c65a0 100644
--- a/apps/files_trashbin/l10n/fa.js
+++ b/apps/files_trashbin/l10n/fa.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "حذف",
"Delete permanently" : "حذف قطعی",
"Error" : "خطا",
+ "This operation is forbidden" : "این عملیات غیرمجاز است",
+ "This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
"restored" : "بازیابی شد",
"No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Select all" : "انتخاب همه",
diff --git a/apps/files_trashbin/l10n/fa.json b/apps/files_trashbin/l10n/fa.json
index d8641316f44..08bee906d38 100644
--- a/apps/files_trashbin/l10n/fa.json
+++ b/apps/files_trashbin/l10n/fa.json
@@ -6,6 +6,8 @@
"Delete" : "حذف",
"Delete permanently" : "حذف قطعی",
"Error" : "خطا",
+ "This operation is forbidden" : "این عملیات غیرمجاز است",
+ "This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
"restored" : "بازیابی شد",
"No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Select all" : "انتخاب همه",
diff --git a/apps/files_trashbin/l10n/fi_FI.js b/apps/files_trashbin/l10n/fi_FI.js
index be3fbad301f..a8758c77050 100644
--- a/apps/files_trashbin/l10n/fi_FI.js
+++ b/apps/files_trashbin/l10n/fi_FI.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Kohteen %s palautus epäonnistui",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Delete" : "Poista",
"Delete permanently" : "Poista pysyvästi",
"Error" : "Virhe",
+ "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.",
"restored" : "palautettu",
"No deleted files" : "Ei poistettuja tiedostoja",
"You will be able to recover deleted files from here" : "Voit palauttaa poistettuja tiedostoja tätä kautta",
"No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Select all" : "Valitse kaikki",
"Name" : "Nimi",
- "Deleted" : "Poistettu",
- "Delete" : "Poista"
+ "Deleted" : "Poistettu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/fi_FI.json b/apps/files_trashbin/l10n/fi_FI.json
index 3e22acdf2c9..c4ead30d036 100644
--- a/apps/files_trashbin/l10n/fi_FI.json
+++ b/apps/files_trashbin/l10n/fi_FI.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Kohteen %s palautus epäonnistui",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Delete" : "Poista",
"Delete permanently" : "Poista pysyvästi",
"Error" : "Virhe",
+ "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.",
"restored" : "palautettu",
"No deleted files" : "Ei poistettuja tiedostoja",
"You will be able to recover deleted files from here" : "Voit palauttaa poistettuja tiedostoja tätä kautta",
"No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Select all" : "Valitse kaikki",
"Name" : "Nimi",
- "Deleted" : "Poistettu",
- "Delete" : "Poista"
+ "Deleted" : "Poistettu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/fr.js b/apps/files_trashbin/l10n/fr.js
index 573977570a7..402644ecdb2 100644
--- a/apps/files_trashbin/l10n/fr.js
+++ b/apps/files_trashbin/l10n/fr.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Impossible de restaurer %s",
"Deleted files" : "Fichiers supprimés",
"Restore" : "Restaurer",
+ "Delete" : "Supprimer",
"Delete permanently" : "Supprimer de façon définitive",
"Error" : "Erreur",
+ "This operation is forbidden" : "Cette opération est interdite",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire n'est pas disponible. Consultez les logs ou contactez votre administrateur",
"restored" : "restauré",
"No deleted files" : "Aucun fichier supprimé",
"You will be able to recover deleted files from here" : "Vous pourrez restaurer vos fichiers supprimés ici",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Select all" : "Tout sélectionner",
"Name" : "Nom",
- "Deleted" : "Effacé",
- "Delete" : "Supprimer"
+ "Deleted" : "Effacé"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_trashbin/l10n/fr.json b/apps/files_trashbin/l10n/fr.json
index f4525b9d079..029c6bab0b5 100644
--- a/apps/files_trashbin/l10n/fr.json
+++ b/apps/files_trashbin/l10n/fr.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Impossible de restaurer %s",
"Deleted files" : "Fichiers supprimés",
"Restore" : "Restaurer",
+ "Delete" : "Supprimer",
"Delete permanently" : "Supprimer de façon définitive",
"Error" : "Erreur",
+ "This operation is forbidden" : "Cette opération est interdite",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire n'est pas disponible. Consultez les logs ou contactez votre administrateur",
"restored" : "restauré",
"No deleted files" : "Aucun fichier supprimé",
"You will be able to recover deleted files from here" : "Vous pourrez restaurer vos fichiers supprimés ici",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Select all" : "Tout sélectionner",
"Name" : "Nom",
- "Deleted" : "Effacé",
- "Delete" : "Supprimer"
+ "Deleted" : "Effacé"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/gl.js b/apps/files_trashbin/l10n/gl.js
index a6ea37031a0..52ce23875a0 100644
--- a/apps/files_trashbin/l10n/gl.js
+++ b/apps/files_trashbin/l10n/gl.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Non foi posíbel restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restabelecer",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
+ "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, comprobe os rexistros ou póñase en contacto co administrador",
"restored" : "restaurado",
"No deleted files" : "Non hai ficheiros eliminados",
"You will be able to recover deleted files from here" : "Poderá recuperar ficheiros borrados de aquí",
"No entries found in this folder" : "Non se atoparon entradas neste cartafol",
"Select all" : "Seleccionar todo",
"Name" : "Nome",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/gl.json b/apps/files_trashbin/l10n/gl.json
index da3aa55fa3f..89df0d2813f 100644
--- a/apps/files_trashbin/l10n/gl.json
+++ b/apps/files_trashbin/l10n/gl.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Non foi posíbel restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restabelecer",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
+ "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, comprobe os rexistros ou póñase en contacto co administrador",
"restored" : "restaurado",
"No deleted files" : "Non hai ficheiros eliminados",
"You will be able to recover deleted files from here" : "Poderá recuperar ficheiros borrados de aquí",
"No entries found in this folder" : "Non se atoparon entradas neste cartafol",
"Select all" : "Seleccionar todo",
"Name" : "Nome",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/he.js b/apps/files_trashbin/l10n/he.js
index 95e5f391151..e63798008b5 100644
--- a/apps/files_trashbin/l10n/he.js
+++ b/apps/files_trashbin/l10n/he.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "לא ניתן לשחזר את %s",
"Deleted files" : "קבצים שנמחקו",
"Restore" : "שחזור",
+ "Delete" : "מחיקה",
"Delete permanently" : "מחיקה לצמיתות",
"Error" : "שגיאה",
"restored" : "שוחזר",
"Name" : "שם",
- "Deleted" : "נמחק",
- "Delete" : "מחיקה"
+ "Deleted" : "נמחק"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/he.json b/apps/files_trashbin/l10n/he.json
index 68f38e819ff..1f65ace6a90 100644
--- a/apps/files_trashbin/l10n/he.json
+++ b/apps/files_trashbin/l10n/he.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "לא ניתן לשחזר את %s",
"Deleted files" : "קבצים שנמחקו",
"Restore" : "שחזור",
+ "Delete" : "מחיקה",
"Delete permanently" : "מחיקה לצמיתות",
"Error" : "שגיאה",
"restored" : "שוחזר",
"Name" : "שם",
- "Deleted" : "נמחק",
- "Delete" : "מחיקה"
+ "Deleted" : "נמחק"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/hr.js b/apps/files_trashbin/l10n/hr.js
index 89db9a16b98..476b0938c77 100644
--- a/apps/files_trashbin/l10n/hr.js
+++ b/apps/files_trashbin/l10n/hr.js
@@ -5,13 +5,13 @@ OC.L10N.register(
"Couldn't restore %s" : "Nije moguće obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovite",
+ "Delete" : "Izbrišite",
"Delete permanently" : "Trajno izbrišite",
"Error" : "Pogreška",
"restored" : "Obnovljeno",
"No entries found in this folder" : "Zapis nije pronadjen u ovom direktorijumu ",
"Select all" : "Selektiraj sve",
"Name" : "Naziv",
- "Deleted" : "Izbrisano",
- "Delete" : "Izbrišite"
+ "Deleted" : "Izbrisano"
},
"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
index d74addf2ca7..877d486fb80 100644
--- a/apps/files_trashbin/l10n/hr.json
+++ b/apps/files_trashbin/l10n/hr.json
@@ -3,13 +3,13 @@
"Couldn't restore %s" : "Nije moguće obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovite",
+ "Delete" : "Izbrišite",
"Delete permanently" : "Trajno izbrišite",
"Error" : "Pogreška",
"restored" : "Obnovljeno",
"No entries found in this folder" : "Zapis nije pronadjen u ovom direktorijumu ",
"Select all" : "Selektiraj sve",
"Name" : "Naziv",
- "Deleted" : "Izbrisano",
- "Delete" : "Izbrišite"
+ "Deleted" : "Izbrisano"
},"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/hu_HU.js b/apps/files_trashbin/l10n/hu_HU.js
index 0df2816a312..5fac34bbb2d 100644
--- a/apps/files_trashbin/l10n/hu_HU.js
+++ b/apps/files_trashbin/l10n/hu_HU.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Nem sikerült %s visszaállítása",
"Deleted files" : "Törölt fájlok",
"Restore" : "Visszaállítás",
+ "Delete" : "Törlés",
"Delete permanently" : "Végleges törlés",
"Error" : "Hiba",
+ "This operation is forbidden" : "Tiltott művelet",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem elérhető, kérem nézze meg a naplófájlokat vagy keresse az adminisztrátort",
"restored" : "visszaállítva",
"No deleted files" : "Nincs törölt fájl",
"You will be able to recover deleted files from here" : "Innen vissza tudja állítani a törölt fáljait.",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a könyvtárban",
"Select all" : "Összes kijelölése",
"Name" : "Név",
- "Deleted" : "Törölve",
- "Delete" : "Törlés"
+ "Deleted" : "Törölve"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/hu_HU.json b/apps/files_trashbin/l10n/hu_HU.json
index 331cd210721..866c885a5d8 100644
--- a/apps/files_trashbin/l10n/hu_HU.json
+++ b/apps/files_trashbin/l10n/hu_HU.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Nem sikerült %s visszaállítása",
"Deleted files" : "Törölt fájlok",
"Restore" : "Visszaállítás",
+ "Delete" : "Törlés",
"Delete permanently" : "Végleges törlés",
"Error" : "Hiba",
+ "This operation is forbidden" : "Tiltott művelet",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem elérhető, kérem nézze meg a naplófájlokat vagy keresse az adminisztrátort",
"restored" : "visszaállítva",
"No deleted files" : "Nincs törölt fájl",
"You will be able to recover deleted files from here" : "Innen vissza tudja állítani a törölt fáljait.",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a könyvtárban",
"Select all" : "Összes kijelölése",
"Name" : "Név",
- "Deleted" : "Törölve",
- "Delete" : "Törlés"
+ "Deleted" : "Törölve"
},"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
index 1ae952f8c9b..04e773a81bc 100644
--- a/apps/files_trashbin/l10n/ia.js
+++ b/apps/files_trashbin/l10n/ia.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete" : "Deler",
"Error" : "Error",
- "Name" : "Nomine",
- "Delete" : "Deler"
+ "Name" : "Nomine"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ia.json b/apps/files_trashbin/l10n/ia.json
index 909e6dfe769..fa4d526c849 100644
--- a/apps/files_trashbin/l10n/ia.json
+++ b/apps/files_trashbin/l10n/ia.json
@@ -1,6 +1,6 @@
{ "translations": {
+ "Delete" : "Deler",
"Error" : "Error",
- "Name" : "Nomine",
- "Delete" : "Deler"
+ "Name" : "Nomine"
},"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
index 53827980ea9..499e1211e59 100644
--- a/apps/files_trashbin/l10n/id.js
+++ b/apps/files_trashbin/l10n/id.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Berkas yang dihapus",
"Restore" : "Pulihkan",
+ "Delete" : "Hapus",
"Delete permanently" : "Hapus secara permanen",
"Error" : "Galat",
+ "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",
"restored" : "dipulihkan",
"No deleted files" : "Tidak ada berkas yang dihapus",
"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",
- "Deleted" : "Dihapus",
- "Delete" : "Hapus"
+ "Deleted" : "Dihapus"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/id.json b/apps/files_trashbin/l10n/id.json
index d0d107a9571..491aad79f16 100644
--- a/apps/files_trashbin/l10n/id.json
+++ b/apps/files_trashbin/l10n/id.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Berkas yang dihapus",
"Restore" : "Pulihkan",
+ "Delete" : "Hapus",
"Delete permanently" : "Hapus secara permanen",
"Error" : "Galat",
+ "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",
"restored" : "dipulihkan",
"No deleted files" : "Tidak ada berkas yang dihapus",
"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",
- "Deleted" : "Dihapus",
- "Delete" : "Hapus"
+ "Deleted" : "Dihapus"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/is.js b/apps/files_trashbin/l10n/is.js
index 38858a5a944..6c9250c21b6 100644
--- a/apps/files_trashbin/l10n/is.js
+++ b/apps/files_trashbin/l10n/is.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Gat ekki endurheimt %s",
"Deleted files" : "eyddar skrár",
"Restore" : "Endurheimta",
+ "Delete" : "Eyða",
"Delete permanently" : "Eyða varanlega",
"Error" : "Villa",
"restored" : "endurheimt",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
"Select all" : "Velja allt",
"Name" : "Nafn",
- "Deleted" : "Eytt",
- "Delete" : "Eyða"
+ "Deleted" : "Eytt"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files_trashbin/l10n/is.json b/apps/files_trashbin/l10n/is.json
index ea2257a68ad..04d746c488d 100644
--- a/apps/files_trashbin/l10n/is.json
+++ b/apps/files_trashbin/l10n/is.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Gat ekki endurheimt %s",
"Deleted files" : "eyddar skrár",
"Restore" : "Endurheimta",
+ "Delete" : "Eyða",
"Delete permanently" : "Eyða varanlega",
"Error" : "Villa",
"restored" : "endurheimt",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
"Select all" : "Velja allt",
"Name" : "Nafn",
- "Deleted" : "Eytt",
- "Delete" : "Eyða"
+ "Deleted" : "Eytt"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/it.js b/apps/files_trashbin/l10n/it.js
index 01840a9907c..2f98cd25e07 100644
--- a/apps/files_trashbin/l10n/it.js
+++ b/apps/files_trashbin/l10n/it.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Impossibile ripristinare %s",
"Deleted files" : "File eliminati",
"Restore" : "Ripristina",
+ "Delete" : "Elimina",
"Delete permanently" : "Elimina definitivamente",
"Error" : "Errore",
+ "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",
"restored" : "ripristinati",
"No deleted files" : "Nessun file eliminato",
"You will be able to recover deleted files from here" : "Potrai ripristinare i file eliminati da qui",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Select all" : "Seleziona tutto",
"Name" : "Nome",
- "Deleted" : "Eliminati",
- "Delete" : "Elimina"
+ "Deleted" : "Eliminati"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/it.json b/apps/files_trashbin/l10n/it.json
index 89ee8efad16..3164a763c18 100644
--- a/apps/files_trashbin/l10n/it.json
+++ b/apps/files_trashbin/l10n/it.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Impossibile ripristinare %s",
"Deleted files" : "File eliminati",
"Restore" : "Ripristina",
+ "Delete" : "Elimina",
"Delete permanently" : "Elimina definitivamente",
"Error" : "Errore",
+ "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",
"restored" : "ripristinati",
"No deleted files" : "Nessun file eliminato",
"You will be able to recover deleted files from here" : "Potrai ripristinare i file eliminati da qui",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Select all" : "Seleziona tutto",
"Name" : "Nome",
- "Deleted" : "Eliminati",
- "Delete" : "Elimina"
+ "Deleted" : "Eliminati"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ja.js b/apps/files_trashbin/l10n/ja.js
index 6fdb9f3738e..880f391fbc9 100644
--- a/apps/files_trashbin/l10n/ja.js
+++ b/apps/files_trashbin/l10n/ja.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "%s を復元できませんでした",
"Deleted files" : "ゴミ箱",
"Restore" : "復元",
+ "Delete" : "削除",
"Delete permanently" : "完全に削除する",
"Error" : "エラー",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"restored" : "復元済",
"No deleted files" : "削除されたファイルはありません",
"You will be able to recover deleted files from here" : "ここから削除されたファイルを元に戻すことができます。",
"No entries found in this folder" : "このフォルダーにはエントリーがありません",
"Select all" : "すべて選択",
"Name" : "名前",
- "Deleted" : "削除日時",
- "Delete" : "削除"
+ "Deleted" : "削除日時"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json
index 1d07e8dd960..14172a324f2 100644
--- a/apps/files_trashbin/l10n/ja.json
+++ b/apps/files_trashbin/l10n/ja.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "%s を復元できませんでした",
"Deleted files" : "ゴミ箱",
"Restore" : "復元",
+ "Delete" : "削除",
"Delete permanently" : "完全に削除する",
"Error" : "エラー",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"restored" : "復元済",
"No deleted files" : "削除されたファイルはありません",
"You will be able to recover deleted files from here" : "ここから削除されたファイルを元に戻すことができます。",
"No entries found in this folder" : "このフォルダーにはエントリーがありません",
"Select all" : "すべて選択",
"Name" : "名前",
- "Deleted" : "削除日時",
- "Delete" : "削除"
+ "Deleted" : "削除日時"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ka_GE.js b/apps/files_trashbin/l10n/ka_GE.js
index cd578d4117a..71f465fe5b1 100644
--- a/apps/files_trashbin/l10n/ka_GE.js
+++ b/apps/files_trashbin/l10n/ka_GE.js
@@ -5,10 +5,10 @@ OC.L10N.register(
"Couldn't restore %s" : "%s–ის აღდგენა ვერ მოხერხდა",
"Deleted files" : "წაშლილი ფაილები",
"Restore" : "აღდგენა",
+ "Delete" : "წაშლა",
"Delete permanently" : "სრულად წაშლა",
"Error" : "შეცდომა",
"Name" : "სახელი",
- "Deleted" : "წაშლილი",
- "Delete" : "წაშლა"
+ "Deleted" : "წაშლილი"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ka_GE.json b/apps/files_trashbin/l10n/ka_GE.json
index 11fc08b1255..e1721d96f29 100644
--- a/apps/files_trashbin/l10n/ka_GE.json
+++ b/apps/files_trashbin/l10n/ka_GE.json
@@ -3,10 +3,10 @@
"Couldn't restore %s" : "%s–ის აღდგენა ვერ მოხერხდა",
"Deleted files" : "წაშლილი ფაილები",
"Restore" : "აღდგენა",
+ "Delete" : "წაშლა",
"Delete permanently" : "სრულად წაშლა",
"Error" : "შეცდომა",
"Name" : "სახელი",
- "Deleted" : "წაშლილი",
- "Delete" : "წაშლა"
+ "Deleted" : "წაშლილი"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/km.js b/apps/files_trashbin/l10n/km.js
index fafbff1e665..b568abde589 100644
--- a/apps/files_trashbin/l10n/km.js
+++ b/apps/files_trashbin/l10n/km.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
"Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
"Restore" : "ស្ដារ​មក​វិញ",
+ "Delete" : "លុប",
"Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Error" : "កំហុស",
"restored" : "បាន​ស្ដារ​វិញ",
"Name" : "ឈ្មោះ",
- "Deleted" : "បាន​លុប",
- "Delete" : "លុប"
+ "Deleted" : "បាន​លុប"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/km.json b/apps/files_trashbin/l10n/km.json
index 0b291a61eb2..14481c4f2e7 100644
--- a/apps/files_trashbin/l10n/km.json
+++ b/apps/files_trashbin/l10n/km.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
"Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
"Restore" : "ស្ដារ​មក​វិញ",
+ "Delete" : "លុប",
"Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Error" : "កំហុស",
"restored" : "បាន​ស្ដារ​វិញ",
"Name" : "ឈ្មោះ",
- "Deleted" : "បាន​លុប",
- "Delete" : "លុប"
+ "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
index 4e918b5f06f..c9e17d94c58 100644
--- a/apps/files_trashbin/l10n/kn.js
+++ b/apps/files_trashbin/l10n/kn.js
@@ -2,9 +2,9 @@ OC.L10N.register(
"files_trashbin",
{
"Restore" : "ಮರುಸ್ಥಾಪಿಸು",
+ "Delete" : "ಅಳಿಸಿ",
"Error" : "ತಪ್ಪಾಗಿದೆ",
"Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Name" : "ಹೆಸರು",
- "Delete" : "ಅಳಿಸಿ"
+ "Name" : "ಹೆಸರು"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/kn.json b/apps/files_trashbin/l10n/kn.json
index 174306ce04a..3bd9118dfce 100644
--- a/apps/files_trashbin/l10n/kn.json
+++ b/apps/files_trashbin/l10n/kn.json
@@ -1,8 +1,8 @@
{ "translations": {
"Restore" : "ಮರುಸ್ಥಾಪಿಸು",
+ "Delete" : "ಅಳಿಸಿ",
"Error" : "ತಪ್ಪಾಗಿದೆ",
"Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Name" : "ಹೆಸರು",
- "Delete" : "ಅಳಿಸಿ"
+ "Name" : "ಹೆಸರು"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ko.js b/apps/files_trashbin/l10n/ko.js
index d93dca056bb..36cb40288a3 100644
--- a/apps/files_trashbin/l10n/ko.js
+++ b/apps/files_trashbin/l10n/ko.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "%s을(를) 복원할 수 없습니다",
"Deleted files" : "삭제된 파일",
"Restore" : "복원",
+ "Delete" : "삭제",
"Delete permanently" : "영구히 삭제",
"Error" : "오류",
+ "This operation is forbidden" : "이 작업이 금지됨",
+ "This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
"restored" : "복원됨",
"No deleted files" : "삭제된 파일 없음",
"You will be able to recover deleted files from here" : "삭제된 파일을 여기에서 복구할 수 있습니다",
"No entries found in this folder" : "이 폴더에 항목 없음",
"Select all" : "모두 선택",
"Name" : "이름",
- "Deleted" : "삭제됨",
- "Delete" : "삭제"
+ "Deleted" : "삭제됨"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ko.json b/apps/files_trashbin/l10n/ko.json
index 25d1c888550..e95101dfce5 100644
--- a/apps/files_trashbin/l10n/ko.json
+++ b/apps/files_trashbin/l10n/ko.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "%s을(를) 복원할 수 없습니다",
"Deleted files" : "삭제된 파일",
"Restore" : "복원",
+ "Delete" : "삭제",
"Delete permanently" : "영구히 삭제",
"Error" : "오류",
+ "This operation is forbidden" : "이 작업이 금지됨",
+ "This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
"restored" : "복원됨",
"No deleted files" : "삭제된 파일 없음",
"You will be able to recover deleted files from here" : "삭제된 파일을 여기에서 복구할 수 있습니다",
"No entries found in this folder" : "이 폴더에 항목 없음",
"Select all" : "모두 선택",
"Name" : "이름",
- "Deleted" : "삭제됨",
- "Delete" : "삭제"
+ "Deleted" : "삭제됨"
},"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
index c83d9a3a28b..9b2aad6d8b0 100644
--- a/apps/files_trashbin/l10n/lb.js
+++ b/apps/files_trashbin/l10n/lb.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Konnt %s net erëmhierstellen",
"Deleted files" : "Geläscht Fichieren",
"Restore" : "Erëmhierstellen",
+ "Delete" : "Läschen",
"Delete permanently" : "Permanent läschen",
"Error" : "Fehler",
"restored" : "erëmhiergestallt",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
"Select all" : "All auswielen",
"Name" : "Numm",
- "Deleted" : "Geläscht",
- "Delete" : "Läschen"
+ "Deleted" : "Geläscht"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/lb.json b/apps/files_trashbin/l10n/lb.json
index ca13342cb3b..f9c13ce017f 100644
--- a/apps/files_trashbin/l10n/lb.json
+++ b/apps/files_trashbin/l10n/lb.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Konnt %s net erëmhierstellen",
"Deleted files" : "Geläscht Fichieren",
"Restore" : "Erëmhierstellen",
+ "Delete" : "Läschen",
"Delete permanently" : "Permanent läschen",
"Error" : "Fehler",
"restored" : "erëmhiergestallt",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
"Select all" : "All auswielen",
"Name" : "Numm",
- "Deleted" : "Geläscht",
- "Delete" : "Läschen"
+ "Deleted" : "Geläscht"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lt_LT.js b/apps/files_trashbin/l10n/lt_LT.js
index afe317ca20a..1548afcc2ee 100644
--- a/apps/files_trashbin/l10n/lt_LT.js
+++ b/apps/files_trashbin/l10n/lt_LT.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Nepavyko atkurti %s",
"Deleted files" : "Ištrinti failai",
"Restore" : "Atstatyti",
+ "Delete" : "Ištrinti",
"Delete permanently" : "Ištrinti negrįžtamai",
"Error" : "Klaida",
+ "This operation is forbidden" : "Ši operacija yra uždrausta",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
"restored" : "atstatyta",
"No deleted files" : "Nėra ištrintų failų",
"You will be able to recover deleted files from here" : "Jūs galėsite atkurti ištrintus failus iš čia",
"No entries found in this folder" : "Nerasta įrašų šiame aplanke",
"Select all" : "Pažymėti viską",
"Name" : "Pavadinimas",
- "Deleted" : "Ištrinti",
- "Delete" : "Ištrinti"
+ "Deleted" : "Ištrinti"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/lt_LT.json b/apps/files_trashbin/l10n/lt_LT.json
index bf2cb31b588..51fab92428f 100644
--- a/apps/files_trashbin/l10n/lt_LT.json
+++ b/apps/files_trashbin/l10n/lt_LT.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Nepavyko atkurti %s",
"Deleted files" : "Ištrinti failai",
"Restore" : "Atstatyti",
+ "Delete" : "Ištrinti",
"Delete permanently" : "Ištrinti negrįžtamai",
"Error" : "Klaida",
+ "This operation is forbidden" : "Ši operacija yra uždrausta",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
"restored" : "atstatyta",
"No deleted files" : "Nėra ištrintų failų",
"You will be able to recover deleted files from here" : "Jūs galėsite atkurti ištrintus failus iš čia",
"No entries found in this folder" : "Nerasta įrašų šiame aplanke",
"Select all" : "Pažymėti viską",
"Name" : "Pavadinimas",
- "Deleted" : "Ištrinti",
- "Delete" : "Ištrinti"
+ "Deleted" : "Ištrinti"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lv.js b/apps/files_trashbin/l10n/lv.js
index 813ddd314e1..5629ba6af06 100644
--- a/apps/files_trashbin/l10n/lv.js
+++ b/apps/files_trashbin/l10n/lv.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nevarēja atjaunot %s",
"Deleted files" : "Dzēstās datnes",
"Restore" : "Atjaunot",
+ "Delete" : "Dzēst",
"Delete permanently" : "Dzēst pavisam",
"Error" : "Kļūda",
"restored" : "atjaunots",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Šajā mapē nekas nav atrasts",
"Select all" : "Atzīmēt visu",
"Name" : "Nosaukums",
- "Deleted" : "Dzēsts",
- "Delete" : "Dzēst"
+ "Deleted" : "Dzēsts"
},
"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
index 9c0ad01ce9a..4cf941bd21e 100644
--- a/apps/files_trashbin/l10n/lv.json
+++ b/apps/files_trashbin/l10n/lv.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nevarēja atjaunot %s",
"Deleted files" : "Dzēstās datnes",
"Restore" : "Atjaunot",
+ "Delete" : "Dzēst",
"Delete permanently" : "Dzēst pavisam",
"Error" : "Kļūda",
"restored" : "atjaunots",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Šajā mapē nekas nav atrasts",
"Select all" : "Atzīmēt visu",
"Name" : "Nosaukums",
- "Deleted" : "Dzēsts",
- "Delete" : "Dzēst"
+ "Deleted" : "Dzēsts"
},"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/mk.js b/apps/files_trashbin/l10n/mk.js
index f5286eac043..6acb933aa80 100644
--- a/apps/files_trashbin/l10n/mk.js
+++ b/apps/files_trashbin/l10n/mk.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "Не можеше да се поврати %s",
"Deleted files" : "Избришани датотеки",
"Restore" : "Поврати",
+ "Delete" : "Избриши",
"Delete permanently" : "Трајно избришани",
"Error" : "Грешка",
"restored" : "повратени",
"Name" : "Име",
- "Deleted" : "Избришан",
- "Delete" : "Избриши"
+ "Deleted" : "Избришан"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/files_trashbin/l10n/mk.json b/apps/files_trashbin/l10n/mk.json
index 119a6c4f954..a9948f49ff6 100644
--- a/apps/files_trashbin/l10n/mk.json
+++ b/apps/files_trashbin/l10n/mk.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "Не можеше да се поврати %s",
"Deleted files" : "Избришани датотеки",
"Restore" : "Поврати",
+ "Delete" : "Избриши",
"Delete permanently" : "Трајно избришани",
"Error" : "Грешка",
"restored" : "повратени",
"Name" : "Име",
- "Deleted" : "Избришан",
- "Delete" : "Избриши"
+ "Deleted" : "Избришан"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 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
index 1441ab03bf9..22680ff254d 100644
--- a/apps/files_trashbin/l10n/ms_MY.js
+++ b/apps/files_trashbin/l10n/ms_MY.js
@@ -5,10 +5,10 @@ OC.L10N.register(
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Fail dipadam",
"Restore" : "Pulihkan",
+ "Delete" : "Padam",
"Error" : "Ralat",
"restored" : "dipulihkan",
"Name" : "Nama",
- "Deleted" : "Dipadam",
- "Delete" : "Padam"
+ "Deleted" : "Dipadam"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ms_MY.json b/apps/files_trashbin/l10n/ms_MY.json
index a2b674d23d5..340b46e78a1 100644
--- a/apps/files_trashbin/l10n/ms_MY.json
+++ b/apps/files_trashbin/l10n/ms_MY.json
@@ -3,10 +3,10 @@
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Fail dipadam",
"Restore" : "Pulihkan",
+ "Delete" : "Padam",
"Error" : "Ralat",
"restored" : "dipulihkan",
"Name" : "Nama",
- "Deleted" : "Dipadam",
- "Delete" : "Padam"
+ "Deleted" : "Dipadam"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/nb_NO.js b/apps/files_trashbin/l10n/nb_NO.js
index 2c1fd5396ef..644ad102ae4 100644
--- a/apps/files_trashbin/l10n/nb_NO.js
+++ b/apps/files_trashbin/l10n/nb_NO.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Kunne ikke gjenopprette %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gjenopprett",
+ "Delete" : "Slett",
"Delete permanently" : "Slett permanent",
"Error" : "Feil",
+ "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",
"restored" : "gjenopprettet",
"No deleted files" : "Ingen slettede filer",
"You will be able to recover deleted files from here" : "Du vil kunne gjenopprette slettede filer herfra",
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"Name" : "Navn",
- "Deleted" : "Slettet",
- "Delete" : "Slett"
+ "Deleted" : "Slettet"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/nb_NO.json b/apps/files_trashbin/l10n/nb_NO.json
index 44e6161fe18..442221a2c8c 100644
--- a/apps/files_trashbin/l10n/nb_NO.json
+++ b/apps/files_trashbin/l10n/nb_NO.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Kunne ikke gjenopprette %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gjenopprett",
+ "Delete" : "Slett",
"Delete permanently" : "Slett permanent",
"Error" : "Feil",
+ "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",
"restored" : "gjenopprettet",
"No deleted files" : "Ingen slettede filer",
"You will be able to recover deleted files from here" : "Du vil kunne gjenopprette slettede filer herfra",
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"Name" : "Navn",
- "Deleted" : "Slettet",
- "Delete" : "Slett"
+ "Deleted" : "Slettet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/nl.js b/apps/files_trashbin/l10n/nl.js
index 4b9227b563f..1b536860ce6 100644
--- a/apps/files_trashbin/l10n/nl.js
+++ b/apps/files_trashbin/l10n/nl.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Kon %s niet herstellen",
"Deleted files" : "Verwijderde bestanden",
"Restore" : "Herstellen",
+ "Delete" : "Verwijder",
"Delete permanently" : "Definitief verwijderen",
"Error" : "Fout",
+ "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",
"restored" : "hersteld",
"No deleted files" : "Geen verwijderde bestanden",
"You will be able to recover deleted files from here" : "U kunt verwijderde bestanden hier vandaan weer terugzetten",
"No entries found in this folder" : "Niets gevonden in deze map",
"Select all" : "Alles selecteren",
"Name" : "Naam",
- "Deleted" : "Verwijderd",
- "Delete" : "Verwijder"
+ "Deleted" : "Verwijderd"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/nl.json b/apps/files_trashbin/l10n/nl.json
index 7e78dde9baa..a80e1d8e1a9 100644
--- a/apps/files_trashbin/l10n/nl.json
+++ b/apps/files_trashbin/l10n/nl.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Kon %s niet herstellen",
"Deleted files" : "Verwijderde bestanden",
"Restore" : "Herstellen",
+ "Delete" : "Verwijder",
"Delete permanently" : "Definitief verwijderen",
"Error" : "Fout",
+ "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",
"restored" : "hersteld",
"No deleted files" : "Geen verwijderde bestanden",
"You will be able to recover deleted files from here" : "U kunt verwijderde bestanden hier vandaan weer terugzetten",
"No entries found in this folder" : "Niets gevonden in deze map",
"Select all" : "Alles selecteren",
"Name" : "Naam",
- "Deleted" : "Verwijderd",
- "Delete" : "Verwijder"
+ "Deleted" : "Verwijderd"
},"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
index fc4a6a5cc37..c97071b9c66 100644
--- a/apps/files_trashbin/l10n/nn_NO.js
+++ b/apps/files_trashbin/l10n/nn_NO.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "Klarte ikkje gjenoppretta %s",
"Deleted files" : "Sletta filer",
"Restore" : "Gjenopprett",
+ "Delete" : "Slett",
"Delete permanently" : "Slett for godt",
"Error" : "Feil",
"restored" : "gjenoppretta",
"Name" : "Namn",
- "Deleted" : "Sletta",
- "Delete" : "Slett"
+ "Deleted" : "Sletta"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/nn_NO.json b/apps/files_trashbin/l10n/nn_NO.json
index f8cf76ca3f4..acecd932b77 100644
--- a/apps/files_trashbin/l10n/nn_NO.json
+++ b/apps/files_trashbin/l10n/nn_NO.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "Klarte ikkje gjenoppretta %s",
"Deleted files" : "Sletta filer",
"Restore" : "Gjenopprett",
+ "Delete" : "Slett",
"Delete permanently" : "Slett for godt",
"Error" : "Feil",
"restored" : "gjenoppretta",
"Name" : "Namn",
- "Deleted" : "Sletta",
- "Delete" : "Slett"
+ "Deleted" : "Sletta"
},"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
index 390ccaea050..762d7a9b424 100644
--- a/apps/files_trashbin/l10n/oc.js
+++ b/apps/files_trashbin/l10n/oc.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"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í",
diff --git a/apps/files_trashbin/l10n/oc.json b/apps/files_trashbin/l10n/oc.json
index e2add0b3cdb..a48b12e0c6e 100644
--- a/apps/files_trashbin/l10n/oc.json
+++ b/apps/files_trashbin/l10n/oc.json
@@ -6,6 +6,8 @@
"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í",
diff --git a/apps/files_trashbin/l10n/pa.js b/apps/files_trashbin/l10n/pa.js
index 301d8f08c15..7c2bd3674dd 100644
--- a/apps/files_trashbin/l10n/pa.js
+++ b/apps/files_trashbin/l10n/pa.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"files_trashbin",
{
- "Error" : "ਗਲਤੀ",
- "Delete" : "ਹਟਾਓ"
+ "Delete" : "ਹਟਾਓ",
+ "Error" : "ਗਲਤੀ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/pa.json b/apps/files_trashbin/l10n/pa.json
index 6ad75a4c997..aa150965640 100644
--- a/apps/files_trashbin/l10n/pa.json
+++ b/apps/files_trashbin/l10n/pa.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Error" : "ਗਲਤੀ",
- "Delete" : "ਹਟਾਓ"
+ "Delete" : "ਹਟਾਓ",
+ "Error" : "ਗਲਤੀ"
},"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 ba0a2e93bd3..0c11dab91d4 100644
--- a/apps/files_trashbin/l10n/pl.js
+++ b/apps/files_trashbin/l10n/pl.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nie można przywrócić %s",
"Deleted files" : "Usunięte pliki",
"Restore" : "Przywróć",
+ "Delete" : "Usuń",
"Delete permanently" : "Trwale usuń",
"Error" : "Błąd",
"restored" : "przywrócony",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Brak wpisów w tym folderze",
"Select all" : "Wybierz wszystko",
"Name" : "Nazwa",
- "Deleted" : "Usunięte",
- "Delete" : "Usuń"
+ "Deleted" : "Usunięte"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/pl.json b/apps/files_trashbin/l10n/pl.json
index 4fa8debaf29..8b56be020fb 100644
--- a/apps/files_trashbin/l10n/pl.json
+++ b/apps/files_trashbin/l10n/pl.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nie można przywrócić %s",
"Deleted files" : "Usunięte pliki",
"Restore" : "Przywróć",
+ "Delete" : "Usuń",
"Delete permanently" : "Trwale usuń",
"Error" : "Błąd",
"restored" : "przywrócony",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Brak wpisów w tym folderze",
"Select all" : "Wybierz wszystko",
"Name" : "Nazwa",
- "Deleted" : "Usunięte",
- "Delete" : "Usuń"
+ "Deleted" : "Usunięte"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/pt_BR.js b/apps/files_trashbin/l10n/pt_BR.js
index 737a522eea1..b1a3768a3bd 100644
--- a/apps/files_trashbin/l10n/pt_BR.js
+++ b/apps/files_trashbin/l10n/pt_BR.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Arquivos apagados",
"Restore" : "Restaurar",
+ "Delete" : "Excluir",
"Delete permanently" : "Excluir permanentemente",
"Error" : "Erro",
+ "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 entre em contato com o administrador",
"restored" : "restaurado",
"No deleted files" : "Aquivos não removidos",
"You will be able to recover deleted files from here" : "Você pode recuperar arquivos removidos daqui",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Select all" : "Selecionar tudo",
"Name" : "Nome",
- "Deleted" : "Excluído",
- "Delete" : "Excluir"
+ "Deleted" : "Excluído"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_trashbin/l10n/pt_BR.json b/apps/files_trashbin/l10n/pt_BR.json
index 25ee0439d67..db2dc331d5d 100644
--- a/apps/files_trashbin/l10n/pt_BR.json
+++ b/apps/files_trashbin/l10n/pt_BR.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Arquivos apagados",
"Restore" : "Restaurar",
+ "Delete" : "Excluir",
"Delete permanently" : "Excluir permanentemente",
"Error" : "Erro",
+ "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 entre em contato com o administrador",
"restored" : "restaurado",
"No deleted files" : "Aquivos não removidos",
"You will be able to recover deleted files from here" : "Você pode recuperar arquivos removidos daqui",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Select all" : "Selecionar tudo",
"Name" : "Nome",
- "Deleted" : "Excluído",
- "Delete" : "Excluir"
+ "Deleted" : "Excluído"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js
index 8124af21751..8bcc248d948 100644
--- a/apps/files_trashbin/l10n/pt_PT.js
+++ b/apps/files_trashbin/l10n/pt_PT.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restaurar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
+ "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",
"restored" : "Restaurado",
"No deleted files" : "Sem ficheiros eliminados",
"You will be able to recover deleted files from here" : "Poderá recuperar ficheiros apagados aqui",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Name" : "Nome",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json
index f1fb924af59..e8bed1ea891 100644
--- a/apps/files_trashbin/l10n/pt_PT.json
+++ b/apps/files_trashbin/l10n/pt_PT.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restaurar",
+ "Delete" : "Eliminar",
"Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
+ "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",
"restored" : "Restaurado",
"No deleted files" : "Sem ficheiros eliminados",
"You will be able to recover deleted files from here" : "Poderá recuperar ficheiros apagados aqui",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Name" : "Nome",
- "Deleted" : "Eliminado",
- "Delete" : "Eliminar"
+ "Deleted" : "Eliminado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ro.js b/apps/files_trashbin/l10n/ro.js
index 89fb577014e..1c0df1c5157 100644
--- a/apps/files_trashbin/l10n/ro.js
+++ b/apps/files_trashbin/l10n/ro.js
@@ -5,13 +5,13 @@ OC.L10N.register(
"Couldn't restore %s" : "Nu se poate recupera %s",
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
+ "Delete" : "Șterge",
"Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
"restored" : "restaurat",
"No deleted files" : "Nu sunt fișiere șterse",
"Select all" : "Selectează tot",
"Name" : "Nume",
- "Deleted" : "A fost șters.",
- "Delete" : "Șterge"
+ "Deleted" : "A fost șters."
},
"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
index 6a68abae7fa..d7f01caca38 100644
--- a/apps/files_trashbin/l10n/ro.json
+++ b/apps/files_trashbin/l10n/ro.json
@@ -3,13 +3,13 @@
"Couldn't restore %s" : "Nu se poate recupera %s",
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
+ "Delete" : "Șterge",
"Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
"restored" : "restaurat",
"No deleted files" : "Nu sunt fișiere șterse",
"Select all" : "Selectează tot",
"Name" : "Nume",
- "Deleted" : "A fost șters.",
- "Delete" : "Șterge"
+ "Deleted" : "A fost șters."
},"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 ef39fee4511..337d0b0a575 100644
--- a/apps/files_trashbin/l10n/ru.js
+++ b/apps/files_trashbin/l10n/ru.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "Удалить",
"Delete permanently" : "Удалить окончательно",
"Error" : "Ошибка",
+ "This operation is forbidden" : "Операция запрещена",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Директория недоступна, пожалуйста проверьте журнал сообщений или свяжитесь с администратором",
"restored" : "восстановлен",
"No deleted files" : "Нет удалённых файлов",
"You will be able to recover deleted files from here" : "Здесь вы сможете восстановить удалённые файлы",
diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json
index 2fe089b7ace..2ab8d48476d 100644
--- a/apps/files_trashbin/l10n/ru.json
+++ b/apps/files_trashbin/l10n/ru.json
@@ -6,6 +6,8 @@
"Delete" : "Удалить",
"Delete permanently" : "Удалить окончательно",
"Error" : "Ошибка",
+ "This operation is forbidden" : "Операция запрещена",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Директория недоступна, пожалуйста проверьте журнал сообщений или свяжитесь с администратором",
"restored" : "восстановлен",
"No deleted files" : "Нет удалённых файлов",
"You will be able to recover deleted files from here" : "Здесь вы сможете восстановить удалённые файлы",
diff --git a/apps/files_trashbin/l10n/si_LK.js b/apps/files_trashbin/l10n/si_LK.js
index 2f8a62ccab8..84d0f86a7f6 100644
--- a/apps/files_trashbin/l10n/si_LK.js
+++ b/apps/files_trashbin/l10n/si_LK.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete" : "මකා දමන්න",
"Error" : "දෝෂයක්",
- "Name" : "නම",
- "Delete" : "මකා දමන්න"
+ "Name" : "නම"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/si_LK.json b/apps/files_trashbin/l10n/si_LK.json
index c46fb9adcbc..467fc3e058c 100644
--- a/apps/files_trashbin/l10n/si_LK.json
+++ b/apps/files_trashbin/l10n/si_LK.json
@@ -1,6 +1,6 @@
{ "translations": {
+ "Delete" : "මකා දමන්න",
"Error" : "දෝෂයක්",
- "Name" : "නම",
- "Delete" : "මකා දමන්න"
+ "Name" : "නම"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sk_SK.js b/apps/files_trashbin/l10n/sk_SK.js
index 483691acf99..b4168ec5440 100644
--- a/apps/files_trashbin/l10n/sk_SK.js
+++ b/apps/files_trashbin/l10n/sk_SK.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Nemožno obnoviť %s",
"Deleted files" : "Zmazané súbory",
"Restore" : "Obnoviť",
+ "Delete" : "Zmazať",
"Delete permanently" : "Zmazať natrvalo",
"Error" : "Chyba",
+ "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",
"restored" : "obnovené",
"No deleted files" : "Žiadne zmazané súbory",
"You will be able to recover deleted files from here" : "Tu budete mať možnosť obnoviť zmazané súbory",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Select all" : "Vybrať všetko",
"Name" : "Názov",
- "Deleted" : "Zmazané",
- "Delete" : "Zmazať"
+ "Deleted" : "Zmazané"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/sk_SK.json b/apps/files_trashbin/l10n/sk_SK.json
index 90b91cd92be..b02227c7064 100644
--- a/apps/files_trashbin/l10n/sk_SK.json
+++ b/apps/files_trashbin/l10n/sk_SK.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Nemožno obnoviť %s",
"Deleted files" : "Zmazané súbory",
"Restore" : "Obnoviť",
+ "Delete" : "Zmazať",
"Delete permanently" : "Zmazať natrvalo",
"Error" : "Chyba",
+ "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",
"restored" : "obnovené",
"No deleted files" : "Žiadne zmazané súbory",
"You will be able to recover deleted files from here" : "Tu budete mať možnosť obnoviť zmazané súbory",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Select all" : "Vybrať všetko",
"Name" : "Názov",
- "Deleted" : "Zmazané",
- "Delete" : "Zmazať"
+ "Deleted" : "Zmazané"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sl.js b/apps/files_trashbin/l10n/sl.js
index 4287b3d860c..53654fe9504 100644
--- a/apps/files_trashbin/l10n/sl.js
+++ b/apps/files_trashbin/l10n/sl.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Ni mogoče obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovi",
+ "Delete" : "Izbriši",
"Delete permanently" : "Izbriši dokončno",
"Error" : "Napaka",
"restored" : "obnovljeno",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
"Select all" : "izberi vse",
"Name" : "Ime",
- "Deleted" : "Izbrisano",
- "Delete" : "Izbriši"
+ "Deleted" : "Izbrisano"
},
"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
index 0e996a2495b..4fbd296e3f6 100644
--- a/apps/files_trashbin/l10n/sl.json
+++ b/apps/files_trashbin/l10n/sl.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Ni mogoče obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovi",
+ "Delete" : "Izbriši",
"Delete permanently" : "Izbriši dokončno",
"Error" : "Napaka",
"restored" : "obnovljeno",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
"Select all" : "izberi vse",
"Name" : "Ime",
- "Deleted" : "Izbrisano",
- "Delete" : "Izbriši"
+ "Deleted" : "Izbrisano"
},"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
index 3a1d0fed3bb..45348ca24b3 100644
--- a/apps/files_trashbin/l10n/sq.js
+++ b/apps/files_trashbin/l10n/sq.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "Fshije",
"Delete permanently" : "Fshije përgjithmonë",
"Error" : "Gabim",
+ "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",
"restored" : "u rikthye",
"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",
diff --git a/apps/files_trashbin/l10n/sq.json b/apps/files_trashbin/l10n/sq.json
index 4f2c429cb75..a28078058c9 100644
--- a/apps/files_trashbin/l10n/sq.json
+++ b/apps/files_trashbin/l10n/sq.json
@@ -6,6 +6,8 @@
"Delete" : "Fshije",
"Delete permanently" : "Fshije përgjithmonë",
"Error" : "Gabim",
+ "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",
"restored" : "u rikthye",
"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",
diff --git a/apps/files_trashbin/l10n/sr.js b/apps/files_trashbin/l10n/sr.js
index e9a4f79f94e..dc3c8b46bc7 100644
--- a/apps/files_trashbin/l10n/sr.js
+++ b/apps/files_trashbin/l10n/sr.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "Не могу да вратим %s",
"Deleted files" : "Обрисани фајлови",
"Restore" : "Врати",
+ "Delete" : "Обриши",
"Delete permanently" : "Обриши заувек",
"Error" : "Грешка",
+ "This operation is forbidden" : "Ова радња је забрањена",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора",
"restored" : "враћено",
"No deleted files" : "Нема обрисаних фајлова",
"You will be able to recover deleted files from here" : "Одавде ћете моћи да повратите обрисане фајлове",
"No entries found in this folder" : "Нема ничега у овој фасцикли",
"Select all" : "Означи све",
"Name" : "Назив",
- "Deleted" : "Обрисано",
- "Delete" : "Обриши"
+ "Deleted" : "Обрисано"
},
"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.json b/apps/files_trashbin/l10n/sr.json
index e572b6a3e85..c57bbdb83d4 100644
--- a/apps/files_trashbin/l10n/sr.json
+++ b/apps/files_trashbin/l10n/sr.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "Не могу да вратим %s",
"Deleted files" : "Обрисани фајлови",
"Restore" : "Врати",
+ "Delete" : "Обриши",
"Delete permanently" : "Обриши заувек",
"Error" : "Грешка",
+ "This operation is forbidden" : "Ова радња је забрањена",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора",
"restored" : "враћено",
"No deleted files" : "Нема обрисаних фајлова",
"You will be able to recover deleted files from here" : "Одавде ћете моћи да повратите обрисане фајлове",
"No entries found in this folder" : "Нема ничега у овој фасцикли",
"Select all" : "Означи све",
"Name" : "Назив",
- "Deleted" : "Обрисано",
- "Delete" : "Обриши"
+ "Deleted" : "Обрисано"
},"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/sr@latin.js b/apps/files_trashbin/l10n/sr@latin.js
index 24b57789fdb..e6eb817ccf3 100644
--- a/apps/files_trashbin/l10n/sr@latin.js
+++ b/apps/files_trashbin/l10n/sr@latin.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"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",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Nema ničega u ovoj fascikli",
"Select all" : "Označi sve",
"Name" : "Naziv",
- "Deleted" : "Obrisano",
- "Delete" : "Obriši"
+ "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
index 9351affd2a9..462e2f21e2a 100644
--- a/apps/files_trashbin/l10n/sr@latin.json
+++ b/apps/files_trashbin/l10n/sr@latin.json
@@ -3,6 +3,7 @@
"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",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Nema ničega u ovoj fascikli",
"Select all" : "Označi sve",
"Name" : "Naziv",
- "Deleted" : "Obrisano",
- "Delete" : "Obriši"
+ "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 d21f1418073..923d9cdd7db 100644
--- a/apps/files_trashbin/l10n/sv.js
+++ b/apps/files_trashbin/l10n/sv.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "Radera",
"Delete permanently" : "Radera permanent",
"Error" : "Fel",
+ "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",
"restored" : "återställd",
"No deleted files" : "Inga borttagna filer",
"You will be able to recover deleted files from here" : "Du kommer kunna återfå raderade filer härifrån",
diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json
index 0b9052ea713..f9ae83cabd2 100644
--- a/apps/files_trashbin/l10n/sv.json
+++ b/apps/files_trashbin/l10n/sv.json
@@ -6,6 +6,8 @@
"Delete" : "Radera",
"Delete permanently" : "Radera permanent",
"Error" : "Fel",
+ "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",
"restored" : "återställd",
"No deleted files" : "Inga borttagna filer",
"You will be able to recover deleted files from here" : "Du kommer kunna återfå raderade filer härifrån",
diff --git a/apps/files_trashbin/l10n/ta_LK.js b/apps/files_trashbin/l10n/ta_LK.js
index cd53239625e..c5514d9d218 100644
--- a/apps/files_trashbin/l10n/ta_LK.js
+++ b/apps/files_trashbin/l10n/ta_LK.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete" : "நீக்குக",
"Error" : "வழு",
- "Name" : "பெயர்",
- "Delete" : "நீக்குக"
+ "Name" : "பெயர்"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ta_LK.json b/apps/files_trashbin/l10n/ta_LK.json
index ade1c7f13e0..c46481e9da9 100644
--- a/apps/files_trashbin/l10n/ta_LK.json
+++ b/apps/files_trashbin/l10n/ta_LK.json
@@ -1,6 +1,6 @@
{ "translations": {
+ "Delete" : "நீக்குக",
"Error" : "வழு",
- "Name" : "பெயர்",
- "Delete" : "நீக்குக"
+ "Name" : "பெயர்"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/te.js b/apps/files_trashbin/l10n/te.js
index e851ec86421..d9972912e61 100644
--- a/apps/files_trashbin/l10n/te.js
+++ b/apps/files_trashbin/l10n/te.js
@@ -1,9 +1,9 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete" : "తొలగించు",
"Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
- "Name" : "పేరు",
- "Delete" : "తొలగించు"
+ "Name" : "పేరు"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/te.json b/apps/files_trashbin/l10n/te.json
index 4df06631a0c..0e6c6557355 100644
--- a/apps/files_trashbin/l10n/te.json
+++ b/apps/files_trashbin/l10n/te.json
@@ -1,7 +1,7 @@
{ "translations": {
+ "Delete" : "తొలగించు",
"Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
- "Name" : "పేరు",
- "Delete" : "తొలగించు"
+ "Name" : "పేరు"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/th_TH.js b/apps/files_trashbin/l10n/th_TH.js
index e294f592e84..487b457deb3 100644
--- a/apps/files_trashbin/l10n/th_TH.js
+++ b/apps/files_trashbin/l10n/th_TH.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "ไม่สามารถกู้คืน %s",
"Deleted files" : "ไฟล์ที่ถูกลบ",
"Restore" : "คืนค่า",
+ "Delete" : "ลบ",
"Delete permanently" : "ลบแบบถาวร",
"Error" : "ข้อผิดพลาด",
+ "This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
+ "This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
"restored" : "การเรียกคืน",
"No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
"You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกลบจากที่นี่",
"No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
"Select all" : "เลือกทั้งหมด",
"Name" : "ชื่อ",
- "Deleted" : "ลบแล้ว",
- "Delete" : "ลบ"
+ "Deleted" : "ลบแล้ว"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/th_TH.json b/apps/files_trashbin/l10n/th_TH.json
index 7dc7546f55b..db4bd2de209 100644
--- a/apps/files_trashbin/l10n/th_TH.json
+++ b/apps/files_trashbin/l10n/th_TH.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "ไม่สามารถกู้คืน %s",
"Deleted files" : "ไฟล์ที่ถูกลบ",
"Restore" : "คืนค่า",
+ "Delete" : "ลบ",
"Delete permanently" : "ลบแบบถาวร",
"Error" : "ข้อผิดพลาด",
+ "This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
+ "This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
"restored" : "การเรียกคืน",
"No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
"You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกลบจากที่นี่",
"No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
"Select all" : "เลือกทั้งหมด",
"Name" : "ชื่อ",
- "Deleted" : "ลบแล้ว",
- "Delete" : "ลบ"
+ "Deleted" : "ลบแล้ว"
},"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 c6c73929555..e3f55f29aae 100644
--- a/apps/files_trashbin/l10n/tr.js
+++ b/apps/files_trashbin/l10n/tr.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "%s geri yüklenemedi",
"Deleted files" : "Silinmiş dosyalar",
"Restore" : "Geri yükle",
+ "Delete" : "Sil",
"Delete permanently" : "Kalıcı olarak sil",
"Error" : "Hata",
+ "This operation is forbidden" : "Bu işlem yasak",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
"restored" : "geri yüklendi",
"No deleted files" : "Silinen dosya yok",
"You will be able to recover deleted files from here" : "Silinen dosyalarınızı buradan kurtarabileceksiniz",
"No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı",
"Select all" : "Tümünü seç",
"Name" : "İsim",
- "Deleted" : "Silinme",
- "Delete" : "Sil"
+ "Deleted" : "Silinme"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_trashbin/l10n/tr.json b/apps/files_trashbin/l10n/tr.json
index 64f14af6674..d0f21497b5a 100644
--- a/apps/files_trashbin/l10n/tr.json
+++ b/apps/files_trashbin/l10n/tr.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "%s geri yüklenemedi",
"Deleted files" : "Silinmiş dosyalar",
"Restore" : "Geri yükle",
+ "Delete" : "Sil",
"Delete permanently" : "Kalıcı olarak sil",
"Error" : "Hata",
+ "This operation is forbidden" : "Bu işlem yasak",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
"restored" : "geri yüklendi",
"No deleted files" : "Silinen dosya yok",
"You will be able to recover deleted files from here" : "Silinen dosyalarınızı buradan kurtarabileceksiniz",
"No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı",
"Select all" : "Tümünü seç",
"Name" : "İsim",
- "Deleted" : "Silinme",
- "Delete" : "Sil"
+ "Deleted" : "Silinme"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ug.js b/apps/files_trashbin/l10n/ug.js
index 329a04416c2..244c0d92c17 100644
--- a/apps/files_trashbin/l10n/ug.js
+++ b/apps/files_trashbin/l10n/ug.js
@@ -2,10 +2,10 @@ OC.L10N.register(
"files_trashbin",
{
"Deleted files" : "ئۆچۈرۈلگەن ھۆججەتلەر",
+ "Delete" : "ئۆچۈر",
"Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Error" : "خاتالىق",
"Name" : "ئاتى",
- "Deleted" : "ئۆچۈرۈلدى",
- "Delete" : "ئۆچۈر"
+ "Deleted" : "ئۆچۈرۈلدى"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ug.json b/apps/files_trashbin/l10n/ug.json
index 60a915b2ee5..3c11d802b5f 100644
--- a/apps/files_trashbin/l10n/ug.json
+++ b/apps/files_trashbin/l10n/ug.json
@@ -1,9 +1,9 @@
{ "translations": {
"Deleted files" : "ئۆچۈرۈلگەن ھۆججەتلەر",
+ "Delete" : "ئۆچۈر",
"Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Error" : "خاتالىق",
"Name" : "ئاتى",
- "Deleted" : "ئۆچۈرۈلدى",
- "Delete" : "ئۆچۈر"
+ "Deleted" : "ئۆچۈرۈلدى"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index 656a6f7b50b..eb3aca343d7 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -5,15 +5,16 @@ OC.L10N.register(
"Couldn't restore %s" : "Неможливо відновити %s",
"Deleted files" : "Видалені файли",
"Restore" : "Відновити",
+ "Delete" : "Видалити",
"Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
+ "This operation is forbidden" : "Ця операція заборонена",
"restored" : "відновлено",
"No deleted files" : "Немає видалених файлів",
"You will be able to recover deleted files from here" : "Ви зможете відновлювати видалені файли звідси",
"No entries found in this folder" : "Записів не знайдено в цій папці",
"Select all" : "Вибрати всі",
"Name" : "Ім'я",
- "Deleted" : "Видалено",
- "Delete" : "Видалити"
+ "Deleted" : "Видалено"
},
"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/uk.json b/apps/files_trashbin/l10n/uk.json
index bfd6860252e..47c17cd1d65 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -3,15 +3,16 @@
"Couldn't restore %s" : "Неможливо відновити %s",
"Deleted files" : "Видалені файли",
"Restore" : "Відновити",
+ "Delete" : "Видалити",
"Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
+ "This operation is forbidden" : "Ця операція заборонена",
"restored" : "відновлено",
"No deleted files" : "Немає видалених файлів",
"You will be able to recover deleted files from here" : "Ви зможете відновлювати видалені файли звідси",
"No entries found in this folder" : "Записів не знайдено в цій папці",
"Select all" : "Вибрати всі",
"Name" : "Ім'я",
- "Deleted" : "Видалено",
- "Delete" : "Видалити"
+ "Deleted" : "Видалено"
},"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/ur_PK.js b/apps/files_trashbin/l10n/ur_PK.js
index 2dbe75b304e..eaa9dca8e34 100644
--- a/apps/files_trashbin/l10n/ur_PK.js
+++ b/apps/files_trashbin/l10n/ur_PK.js
@@ -5,10 +5,10 @@ OC.L10N.register(
"Couldn't restore %s" : "بحال نہيں کيا جا سکتا %s",
"Deleted files" : "حذف شدہ فائليں",
"Restore" : "بحال",
+ "Delete" : "حذف کریں",
"Error" : "ایرر",
"restored" : "بحال شدہ",
"Name" : "اسم",
- "Deleted" : "حذف شدہ ",
- "Delete" : "حذف کریں"
+ "Deleted" : "حذف شدہ "
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ur_PK.json b/apps/files_trashbin/l10n/ur_PK.json
index d7ec3662998..fd88573d62a 100644
--- a/apps/files_trashbin/l10n/ur_PK.json
+++ b/apps/files_trashbin/l10n/ur_PK.json
@@ -3,10 +3,10 @@
"Couldn't restore %s" : "بحال نہيں کيا جا سکتا %s",
"Deleted files" : "حذف شدہ فائليں",
"Restore" : "بحال",
+ "Delete" : "حذف کریں",
"Error" : "ایرر",
"restored" : "بحال شدہ",
"Name" : "اسم",
- "Deleted" : "حذف شدہ ",
- "Delete" : "حذف کریں"
+ "Deleted" : "حذف شدہ "
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/vi.js b/apps/files_trashbin/l10n/vi.js
index c0ff36d90c3..660c8cf321b 100644
--- a/apps/files_trashbin/l10n/vi.js
+++ b/apps/files_trashbin/l10n/vi.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Không thể khôi phục %s",
"Deleted files" : "File đã bị xóa",
"Restore" : "Khôi phục",
+ "Delete" : "Xóa",
"Delete permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
@@ -13,7 +14,6 @@ OC.L10N.register(
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Select all" : "Chọn tất cả",
"Name" : "Tên",
- "Deleted" : "Đã xóa",
- "Delete" : "Xóa"
+ "Deleted" : "Đã xóa"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/vi.json b/apps/files_trashbin/l10n/vi.json
index a8b2c4a055e..ed25e642538 100644
--- a/apps/files_trashbin/l10n/vi.json
+++ b/apps/files_trashbin/l10n/vi.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Không thể khôi phục %s",
"Deleted files" : "File đã bị xóa",
"Restore" : "Khôi phục",
+ "Delete" : "Xóa",
"Delete permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
@@ -11,7 +12,6 @@
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Select all" : "Chọn tất cả",
"Name" : "Tên",
- "Deleted" : "Đã xóa",
- "Delete" : "Xóa"
+ "Deleted" : "Đã xóa"
},"pluralForm" :"nplurals=1; plural=0;"
} \ 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 0ef17e35d62..be1eeab9348 100644
--- a/apps/files_trashbin/l10n/zh_CN.js
+++ b/apps/files_trashbin/l10n/zh_CN.js
@@ -5,15 +5,17 @@ OC.L10N.register(
"Couldn't restore %s" : "无法恢复%s",
"Deleted files" : "已删除文件",
"Restore" : "恢复",
+ "Delete" : "删除",
"Delete permanently" : "永久删除",
"Error" : "错误",
+ "This operation is forbidden" : "操作被禁止",
+ "This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
"restored" : "已恢复",
"No deleted files" : "无已删除文件",
"You will be able to recover deleted files from here" : "你可以在此处恢复已删除的文件",
"No entries found in this folder" : "此文件夹中无项目",
"Select all" : "全部选择",
"Name" : "名称",
- "Deleted" : "已删除",
- "Delete" : "删除"
+ "Deleted" : "已删除"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/zh_CN.json b/apps/files_trashbin/l10n/zh_CN.json
index 0349f643555..5d458254b87 100644
--- a/apps/files_trashbin/l10n/zh_CN.json
+++ b/apps/files_trashbin/l10n/zh_CN.json
@@ -3,15 +3,17 @@
"Couldn't restore %s" : "无法恢复%s",
"Deleted files" : "已删除文件",
"Restore" : "恢复",
+ "Delete" : "删除",
"Delete permanently" : "永久删除",
"Error" : "错误",
+ "This operation is forbidden" : "操作被禁止",
+ "This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
"restored" : "已恢复",
"No deleted files" : "无已删除文件",
"You will be able to recover deleted files from here" : "你可以在此处恢复已删除的文件",
"No entries found in this folder" : "此文件夹中无项目",
"Select all" : "全部选择",
"Name" : "名称",
- "Deleted" : "已删除",
- "Delete" : "删除"
+ "Deleted" : "已删除"
},"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 78811bbdd2c..8c3f5bda38a 100644
--- a/apps/files_trashbin/l10n/zh_HK.js
+++ b/apps/files_trashbin/l10n/zh_HK.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete" : "刪除",
"Error" : "錯誤",
- "Name" : "名稱",
- "Delete" : "刪除"
+ "Name" : "名稱"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/zh_HK.json b/apps/files_trashbin/l10n/zh_HK.json
index eaa123c49f4..559081426a0 100644
--- a/apps/files_trashbin/l10n/zh_HK.json
+++ b/apps/files_trashbin/l10n/zh_HK.json
@@ -1,6 +1,6 @@
{ "translations": {
+ "Delete" : "刪除",
"Error" : "錯誤",
- "Name" : "名稱",
- "Delete" : "刪除"
+ "Name" : "名稱"
},"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 e0ad6dbd723..76273723073 100644
--- a/apps/files_trashbin/l10n/zh_TW.js
+++ b/apps/files_trashbin/l10n/zh_TW.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete" : "刪除",
"Delete permanently" : "永久刪除",
"Error" : "錯誤",
+ "This operation is forbidden" : "此動作被禁止",
+ "This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
"restored" : "已還原",
"No deleted files" : "沒有已刪除的檔案",
"You will be able to recover deleted files from here" : "您可以從這裡還原已刪除的檔案",
diff --git a/apps/files_trashbin/l10n/zh_TW.json b/apps/files_trashbin/l10n/zh_TW.json
index 6a313220b58..18a8bb872f8 100644
--- a/apps/files_trashbin/l10n/zh_TW.json
+++ b/apps/files_trashbin/l10n/zh_TW.json
@@ -6,6 +6,8 @@
"Delete" : "刪除",
"Delete permanently" : "永久刪除",
"Error" : "錯誤",
+ "This operation is forbidden" : "此動作被禁止",
+ "This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
"restored" : "已還原",
"No deleted files" : "沒有已刪除的檔案",
"You will be able to recover deleted files from here" : "您可以從這裡還原已刪除的檔案",
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 8f0fe745a45..94975530799 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -235,7 +235,7 @@ class Trashbin {
return false;
}
- $ownerView->getUpdater()->rename('/files/' . $ownerPath, $trashPath);
+ $trashStorage->getUpdater()->renameFromStorage($sourceStorage, $sourceInternalPath, $trashInternalPath);
if ($sizeOfAddedFiles !== false) {
$size = $sizeOfAddedFiles;
@@ -323,7 +323,7 @@ class Trashbin {
$result = $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
if ($result) {
- $view->getUpdater()->rename($source, $target);
+ $targetStorage->getUpdater()->renameFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
}
return $result;
}
@@ -345,7 +345,7 @@ class Trashbin {
$result = $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
if ($result) {
- $view->getUpdater()->update($target);
+ $targetStorage->getUpdater()->update($targetInternalPath);
}
return $result;
}
diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php
index e28b854ca1f..934f831ef74 100644
--- a/apps/files_trashbin/tests/trashbin.php
+++ b/apps/files_trashbin/tests/trashbin.php
@@ -65,7 +65,6 @@ class Test_Trashbin extends \Test\TestCase {
\OC::registerShareHooks();
$application = new \OCA\Files_Sharing\AppInfo\Application();
$application->registerMountProviders();
- $application->setupPropagation();
//disable encryption
\OC_App::disable('encryption');
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
index b9bc0932a84..6ebbf830e70 100644
--- a/apps/files_versions/tests/versions.php
+++ b/apps/files_versions/tests/versions.php
@@ -51,7 +51,6 @@ class Test_Files_Versioning extends \Test\TestCase {
$application = new \OCA\Files_Sharing\AppInfo\Application();
$application->registerMountProviders();
- $application->setupPropagation();
// create test user
self::loginHelper(self::TEST_VERSIONS_USER2, true);
diff --git a/apps/user_ldap/l10n/lt_LT.js b/apps/user_ldap/l10n/lt_LT.js
index a5b85499804..e27dcc3e8de 100644
--- a/apps/user_ldap/l10n/lt_LT.js
+++ b/apps/user_ldap/l10n/lt_LT.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Select groups" : "Pasirinkti grupes",
"Do you really want to delete the current Server Configuration?" : "Ar tikrai norite ištrinti dabartinę serverio konfigūraciją?",
"Confirm Deletion" : "Patvirtinkite trynimą",
+ "Select attributes" : "Pasirink atributus",
"_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės"],
"_%s user found_::_%s users found_" : ["Rastas %s vartotojas","Rasti %s vartotojai","Rasti %s vartotojai"],
"Server" : "Serveris",
diff --git a/apps/user_ldap/l10n/lt_LT.json b/apps/user_ldap/l10n/lt_LT.json
index 68dfbc38b9c..fa1526c0632 100644
--- a/apps/user_ldap/l10n/lt_LT.json
+++ b/apps/user_ldap/l10n/lt_LT.json
@@ -6,6 +6,7 @@
"Select groups" : "Pasirinkti grupes",
"Do you really want to delete the current Server Configuration?" : "Ar tikrai norite ištrinti dabartinę serverio konfigūraciją?",
"Confirm Deletion" : "Patvirtinkite trynimą",
+ "Select attributes" : "Pasirink atributus",
"_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės"],
"_%s user found_::_%s users found_" : ["Rastas %s vartotojas","Rasti %s vartotojai","Rasti %s vartotojai"],
"Server" : "Serveris",
diff --git a/apps/user_ldap/l10n/oc.js b/apps/user_ldap/l10n/oc.js
index 97ad04c7ec4..77cb592e402 100644
--- a/apps/user_ldap/l10n/oc.js
+++ b/apps/user_ldap/l10n/oc.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"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 ?",
diff --git a/apps/user_ldap/l10n/oc.json b/apps/user_ldap/l10n/oc.json
index 8db8ef6297f..aa8d2b41861 100644
--- a/apps/user_ldap/l10n/oc.json
+++ b/apps/user_ldap/l10n/oc.json
@@ -22,6 +22,7 @@
"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 ?",
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index 7be91186c16..42e57e8296e 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -864,14 +864,13 @@ class Access extends LDAPUtility implements user\IUserTools {
* @param bool $pagedSearchOK whether a paged search has been executed
* @param bool $skipHandling required for paged search when cookies to
* prior results need to be gained
- * @return array|false array with the search result as first value and pagedSearchOK as
- * second | false if not successful
+ * @return bool cookie validity, true if we have more pages, false otherwise.
*/
private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $limit, $offset, $pagedSearchOK, $skipHandling) {
+ $cookie = null;
if($pagedSearchOK) {
$cr = $this->connection->getConnectionResource();
foreach($sr as $key => $res) {
- $cookie = null;
if($this->ldap->controlPagedResultResponse($cr, $res, $cookie)) {
$this->setPagedResultCookie($base[$key], $filter, $limit, $offset, $cookie);
}
@@ -892,6 +891,12 @@ class Access extends LDAPUtility implements user\IUserTools {
\OCP\Util::writeLog('user_ldap', 'Paged search was not available', \OCP\Util::INFO);
}
}
+ /* ++ Fixing RHDS searches with pages with zero results ++
+ * Return cookie status. If we don't have more pages, with RHDS
+ * cookie is null, with openldap cookie is an empty string and
+ * to 386ds '0' is a valid cookie. Even if $iFoundItems == 0
+ */
+ return !empty($cookie) || $cookie === '0';
}
/**
@@ -920,7 +925,6 @@ class Access extends LDAPUtility implements user\IUserTools {
$this->connection->getConnectionResource();
do {
- $continue = false;
$search = $this->executeSearch($filter, $base, $attr,
$limitPerPage, $offset);
if($search === false) {
@@ -928,12 +932,20 @@ class Access extends LDAPUtility implements user\IUserTools {
}
list($sr, $pagedSearchOK) = $search;
- $count = $this->countEntriesInSearchResults($sr, $limitPerPage, $continue);
+ /* ++ Fixing RHDS searches with pages with zero results ++
+ * countEntriesInSearchResults() method signature changed
+ * by removing $limit and &$hasHitLimit parameters
+ */
+ $count = $this->countEntriesInSearchResults($sr);
$counter += $count;
- $this->processPagedSearchStatus($sr, $filter, $base, $count, $limitPerPage,
+ $hasMorePages = $this->processPagedSearchStatus($sr, $filter, $base, $count, $limitPerPage,
$offset, $pagedSearchOK, $skipHandling);
$offset += $limitPerPage;
+ /* ++ Fixing RHDS searches with pages with zero results ++
+ * Continue now depends on $hasMorePages value
+ */
+ $continue = $pagedSearchOK && $hasMorePages;
} while($continue && (is_null($limit) || $limit <= 0 || $limit > $counter));
return $counter;
@@ -941,20 +953,15 @@ class Access extends LDAPUtility implements user\IUserTools {
/**
* @param array $searchResults
- * @param int $limit
- * @param bool $hasHitLimit
* @return int
*/
- private function countEntriesInSearchResults($searchResults, $limit, &$hasHitLimit) {
+ private function countEntriesInSearchResults($searchResults) {
$cr = $this->connection->getConnectionResource();
$counter = 0;
foreach($searchResults as $res) {
$count = intval($this->ldap->countEntries($cr, $res));
$counter += $count;
- if($count > 0 && $count === $limit) {
- $hasHitLimit = true;
- }
}
return $counter;
@@ -975,38 +982,53 @@ class Access extends LDAPUtility implements user\IUserTools {
//otherwise search will fail
$limit = null;
}
- $search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
- if($search === false) {
- return array();
- }
- list($sr, $pagedSearchOK) = $search;
- $cr = $this->connection->getConnectionResource();
- if($skipHandling) {
- //i.e. result do not need to be fetched, we just need the cookie
- //thus pass 1 or any other value as $iFoundItems because it is not
- //used
- $this->processPagedSearchStatus($sr, $filter, $base, 1, $limit,
- $offset, $pagedSearchOK,
- $skipHandling);
- return array();
- }
+ /* ++ Fixing RHDS searches with pages with zero results ++
+ * As we can have pages with zero results and/or pages with less
+ * than $limit results but with a still valid server 'cookie',
+ * loops through until we get $continue equals true and
+ * $findings['count'] < $limit
+ */
+ $findings = array();
+ $savedoffset = $offset;
+ do {
+ $continue = false;
+ $search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
+ if($search === false) {
+ return array();
+ }
+ list($sr, $pagedSearchOK) = $search;
+ $cr = $this->connection->getConnectionResource();
- // Do the server-side sorting
- foreach(array_reverse($attr) as $sortAttr){
- foreach($sr as $searchResource) {
- $this->ldap->sort($cr, $searchResource, $sortAttr);
+ if($skipHandling) {
+ //i.e. result do not need to be fetched, we just need the cookie
+ //thus pass 1 or any other value as $iFoundItems because it is not
+ //used
+ $this->processPagedSearchStatus($sr, $filter, $base, 1, $limit,
+ $offset, $pagedSearchOK,
+ $skipHandling);
+ return array();
}
- }
- $findings = array();
- foreach($sr as $res) {
- $findings = array_merge($findings, $this->ldap->getEntries($cr , $res ));
- }
+ // Do the server-side sorting
+ foreach(array_reverse($attr) as $sortAttr){
+ foreach($sr as $searchResource) {
+ $this->ldap->sort($cr, $searchResource, $sortAttr);
+ }
+ }
+
+
+ foreach($sr as $res) {
+ $findings = array_merge($findings, $this->ldap->getEntries($cr , $res ));
+ }
- $this->processPagedSearchStatus($sr, $filter, $base, $findings['count'],
- $limit, $offset, $pagedSearchOK,
+ $continue = $this->processPagedSearchStatus($sr, $filter, $base, $findings['count'],
+ $limit, $offset, $pagedSearchOK,
$skipHandling);
+ $offset += $limit;
+ } while ($continue && $pagedSearchOK && $findings['count'] < $limit);
+ // reseting offset
+ $offset = $savedoffset;
// if we're here, probably no connection resource is returned.
// to make ownCloud behave nicely, we simply give back an empty array.
@@ -1594,7 +1616,13 @@ class Access extends LDAPUtility implements user\IUserTools {
}
}
- } else if($this->connection->hasPagedResultSupport && $limit === 0) {
+ /* ++ Fixing RHDS searches with pages with zero results ++
+ * We coudn't get paged searches working with our RHDS for login ($limit = 0),
+ * due to pages with zero results.
+ * So we added "&& !empty($this->lastCookie)" to this test to ignore pagination
+ * if we don't have a previous paged search.
+ */
+ } else if($this->connection->hasPagedResultSupport && $limit === 0 && !empty($this->lastCookie)) {
// a search without limit was requested. However, if we do use
// Paged Search once, we always must do it. This requires us to
// initialize it with the configured page size.
diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php
index 3d579f52810..b3d928bb21d 100644
--- a/build/integration/features/bootstrap/FeatureContext.php
+++ b/build/integration/features/bootstrap/FeatureContext.php
@@ -27,6 +27,9 @@ class FeatureContext implements Context, SnippetAcceptingContext {
/** @var int */
private $sharingApiVersion = 1;
+ /** @var string*/
+ private $davPath = "remote.php/webdav";
+
/** @var SimpleXMLElement */
private $lastShareData = null;
@@ -212,6 +215,13 @@ class FeatureContext implements Context, SnippetAcceptingContext {
}
/**
+ * @Given /^using dav path "([^"]*)"$/
+ */
+ public function usingDavPath($davPath) {
+ $this->davPath = $davPath;
+ }
+
+ /**
* @Given /^user "([^"]*)" exists$/
*/
public function assureUserExists($user) {
@@ -238,8 +248,23 @@ class FeatureContext implements Context, SnippetAcceptingContext {
}
/**
- * @Given /^user "([^"]*)" belongs to group "([^"]*)"$/
+ * @Then /^check that user "([^"]*)" belongs to group "([^"]*)"$/
*/
+ public function checkThatUserBelongsToGroup($user, $group) {
+ $fullUrl = $this->baseUrl . "v2.php/cloud/users/$user/groups";
+ $client = new Client();
+ $options = [];
+ if ($this->currentUser === 'admin') {
+ $options['auth'] = $this->adminUser;
+ }
+
+ $this->response = $client->get($fullUrl, $options);
+ $respondedArray = $this->getArrayOfGroupsResponded($this->response);
+ sort($respondedArray);
+ PHPUnit_Framework_Assert::assertContains($group, $respondedArray);
+ PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
+ }
+
public function userBelongsToGroup($user, $group) {
$fullUrl = $this->baseUrl . "v2.php/cloud/users/$user/groups";
$client = new Client();
@@ -251,8 +276,26 @@ class FeatureContext implements Context, SnippetAcceptingContext {
$this->response = $client->get($fullUrl, $options);
$groups = array($group);
$respondedArray = $this->getArrayOfGroupsResponded($this->response);
- PHPUnit_Framework_Assert::assertEquals($groups, $respondedArray, "", 0.0, 10, true);
- PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
+
+ if (array_key_exists($group, $respondedArray)) {
+ return True;
+ } else{
+ return False;
+ }
+ }
+
+ /**
+ * @Given /^user "([^"]*)" belongs to group "([^"]*)"$/
+ */
+ public function assureUserBelongsToGroup($user, $group){
+ if (!$this->userBelongsToGroup($user, $group)){
+ $previous_user = $this->currentUser;
+ $this->currentUser = "admin";
+ $this->addingUserToGroup($user, $group);
+ $this->currentUser = $previous_user;
+ }
+ $this->checkThatUserBelongsToGroup($user, $group);
+
}
/**
@@ -566,10 +609,10 @@ class FeatureContext implements Context, SnippetAcceptingContext {
}
/**
- * @When /^creating a public share with$/
+ * @When /^creating a share with$/
* @param \Behat\Gherkin\Node\TableNode|null $formData
*/
- public function createPublicShare($body) {
+ public function creatingShare($body) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v1/shares";
$client = new Client();
$options = [];
@@ -767,7 +810,7 @@ class FeatureContext implements Context, SnippetAcceptingContext {
elseif($contentExpected == "AN_URL"){
return $this->isExpectedUrl((string)$element->$field, "index.php/s/");
}
- elseif ($element->$field == $contentExpected){
+ elseif ((string)$element->$field == $contentExpected){
return True;
}
}
@@ -818,10 +861,10 @@ class FeatureContext implements Context, SnippetAcceptingContext {
PHPUnit_Framework_Assert::assertEquals(False, $this->isFieldInResponse('share_with', "$user"));
}
- public function isUserInSharedData($user){
+ public function isUserOrGroupInSharedData($userOrGroup){
$data = $this->response->xml()->data[0];
foreach($data as $element) {
- if ($element->share_with == $user){
+ if ($element->share_with == $userOrGroup){
return True;
}
}
@@ -841,13 +884,71 @@ class FeatureContext implements Context, SnippetAcceptingContext {
$options['auth'] = [$user1, $this->regularUser];
}
$this->response = $client->get($fullUrl, $options);
- if ($this->isUserInSharedData($user2)){
+ if ($this->isUserOrGroupInSharedData($user2)){
return;
} else {
$this->createShare($user1, $filepath, 0, $user2, null, null, null);
}
$this->response = $client->get($fullUrl, $options);
- PHPUnit_Framework_Assert::assertEquals(True, $this->isUserInSharedData($user2));
+ PHPUnit_Framework_Assert::assertEquals(True, $this->isUserOrGroupInSharedData($user2));
+ }
+
+ /**
+ * @Given /^file "([^"]*)" from user "([^"]*)" is shared with group "([^"]*)"$/
+ */
+ public function assureFileIsSharedWithGroup($filepath, $user, $group){
+ $fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->sharingApiVersion}/shares" . "?path=$filepath";
+ $client = new Client();
+ $options = [];
+ if ($user === 'admin') {
+ $options['auth'] = $this->adminUser;
+ } else {
+ $options['auth'] = [$user, $this->regularUser];
+ }
+ $this->response = $client->get($fullUrl, $options);
+ if ($this->isUserOrGroupInSharedData($group)){
+ return;
+ } else {
+ $this->createShare($user, $filepath, 1, $group, null, null, null);
+ }
+ $this->response = $client->get($fullUrl, $options);
+ PHPUnit_Framework_Assert::assertEquals(True, $this->isUserOrGroupInSharedData($group));
+ }
+
+ public function makeDavRequest($user, $method, $path, $headers){
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path";
+ $client = new Client();
+ $options = [];
+ if ($user === 'admin') {
+ $options['auth'] = $this->adminUser;
+ } else {
+ $options['auth'] = [$user, $this->regularUser];
+ }
+ $request = $client->createRequest($method, $fullUrl, $options);
+ foreach ($headers as $key => $value) {
+ $request->addHeader($key, $value);
+ }
+ //$this->response = $client->send($request);
+ return $client->send($request);
+ }
+
+ /**
+ * @Given /^User "([^"]*)" moved file "([^"]*)" to "([^"]*)"$/
+ */
+ public function userMovedFile($user, $fileSource, $fileDestination){
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath;
+ $headers['Destination'] = $fullUrl . $fileDestination;
+ $this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
+ PHPUnit_Framework_Assert::assertEquals(201, $this->response->getStatusCode());
+ }
+
+ /**
+ * @When /^User "([^"]*)" moves file "([^"]*)" to "([^"]*)"$/
+ */
+ public function userMovesFile($user, $fileSource, $fileDestination){
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath;
+ $headers['Destination'] = $fullUrl . $fileDestination;
+ $this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
}
/**
@@ -869,6 +970,26 @@ class FeatureContext implements Context, SnippetAcceptingContext {
}
/**
+ * @Then /^last share_id is included in the answer$/
+ */
+ public function checkingLastShareIDIsIncluded(){
+ $share_id = $this->lastShareData->data[0]->id;
+ if (!$this->isFieldInResponse('id', $share_id)){
+ PHPUnit_Framework_Assert::fail("Share id $share_id not found in response");
+ }
+ }
+
+ /**
+ * @Then /^last share_id is not included in the answer$/
+ */
+ public function checkingLastShareIDIsNotIncluded(){
+ $share_id = $this->lastShareData->data[0]->id;
+ if ($this->isFieldInResponse('id', $share_id)){
+ PHPUnit_Framework_Assert::fail("Share id $share_id has been found in response");
+ }
+ }
+
+ /**
* @Then /^Share fields of last share match with$/
* @param \Behat\Gherkin\Node\TableNode|null $formData
*/
@@ -877,7 +998,9 @@ class FeatureContext implements Context, SnippetAcceptingContext {
$fd = $body->getRowsHash();
foreach($fd as $field => $value) {
- PHPUnit_Framework_Assert::assertEquals(True, $this->isFieldInResponse($field, $value));
+ if (!$this->isFieldInResponse($field, $value)){
+ PHPUnit_Framework_Assert::fail("$field" . " doesn't have value " . "$value");
+ }
}
}
}
diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature
index 07c05af2f54..32bb943d2d7 100644
--- a/build/integration/features/sharing-v1.feature
+++ b/build/integration/features/sharing-v1.feature
@@ -1,6 +1,7 @@
Feature: sharing
Background:
Given using api version "1"
+ Given using dav path "remote.php/webdav"
Scenario: Creating a new share with user
Given user "user0" exists
@@ -28,7 +29,7 @@ Feature: sharing
Scenario: Creating a new public share
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | welcome.txt |
| shareType | 3 |
Then the OCS status code should be "100"
@@ -38,7 +39,7 @@ Feature: sharing
Scenario: Creating a new public share with password
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | welcome.txt |
| shareType | 3 |
| password | publicpw |
@@ -49,7 +50,7 @@ Feature: sharing
Scenario: Creating a new public share of a folder
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | FOLDER |
| shareType | 3 |
| password | publicpw |
@@ -68,7 +69,7 @@ Feature: sharing
Scenario: Creating a new public share with password and adding an expiration date
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | welcome.txt |
| shareType | 3 |
| password | publicpw |
@@ -81,7 +82,7 @@ Feature: sharing
Scenario: Creating a new public share, updating its expiration date and getting its info
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | FOLDER |
| shareType | 3 |
And Updating last share with
@@ -111,7 +112,7 @@ Feature: sharing
Scenario: Creating a new public share, updating its password and getting its info
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | FOLDER |
| shareType | 3 |
And Updating last share with
@@ -140,7 +141,7 @@ Feature: sharing
Scenario: Creating a new public share, updating its permissions and getting its info
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | FOLDER |
| shareType | 3 |
And Updating last share with
@@ -169,7 +170,7 @@ Feature: sharing
Scenario: Creating a new public share, updating publicUpload option and getting its info
Given user "user0" exists
And As an "user0"
- When creating a public share with
+ When creating a share with
| path | FOLDER |
| shareType | 3 |
And Updating last share with
@@ -272,6 +273,112 @@ Feature: sharing
| share_with_displayname | user1 |
| displayname_owner | user0 |
+ Scenario: keep group permissions in sync
+ Given As an "admin"
+ Given user "user0" exists
+ And user "user1" exists
+ And group "group1" exists
+ And user "user1" belongs to group "group1"
+ And file "textfile0.txt" from user "user0" is shared with group "group1"
+ And User "user1" moved file "/textfile0.txt" to "/FOLDER/textfile0.txt"
+ And As an "user0"
+ When Updating last share with
+ | permissions | 1 |
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | id | A_NUMBER |
+ | item_type | file |
+ | item_source | A_NUMBER |
+ | share_type | 1 |
+ | file_source | A_NUMBER |
+ | file_target | /textfile0.txt |
+ | permissions | 1 |
+ | stime | A_NUMBER |
+ | storage | A_NUMBER |
+ | mail_send | 0 |
+ | uid_owner | user0 |
+ | storage_id | home::user0 |
+ | file_parent | A_NUMBER |
+ | displayname_owner | user0 |
+
+ Scenario: Sharee can see the share
+ Given user "user0" exists
+ And user "user1" exists
+ And file "textfile0.txt" from user "user0" is shared with user "user1"
+ And As an "user1"
+ When sending "GET" to "/apps/files_sharing/api/v1/shares?shared_with_me=true"
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And last share_id is included in the answer
+
+ Scenario: User is not allowed to reshare file
+ As an "admin"
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And As an "user0"
+ And creating a share with
+ | path | /textfile0.txt |
+ | shareType | 0 |
+ | shareWith | user1 |
+ | permissions | 8 |
+ And As an "user1"
+ When creating a share with
+ | path | /textfile0. (2).txt |
+ | shareType | 0 |
+ | shareWith | user2 |
+ | permissions | 31 |
+ Then the OCS status code should be "404"
+ And the HTTP status code should be "200"
+
+ Scenario: User is not allowed to reshare file with more permissions
+ As an "admin"
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And As an "user0"
+ And creating a share with
+ | path | /textfile0.txt |
+ | shareType | 0 |
+ | shareWith | user1 |
+ | permissions | 16 |
+ And As an "user1"
+ When creating a share with
+ | path | /textfile0. (2).txt |
+ | shareType | 0 |
+ | shareWith | user2 |
+ | permissions | 31 |
+ Then the OCS status code should be "404"
+ And the HTTP status code should be "200"
+
+ Scenario: Get a share with a user which didn't received the share
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And file "textfile0.txt" from user "user0" is shared with user "user1"
+ And As an "user2"
+ When Getting info of last share
+ Then the OCS status code should be "404"
+ And the HTTP status code should be "200"
+
+ Scenario: Delete all group shares
+ Given As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And group "group1" exists
+ And user "user1" belongs to group "group1"
+ And file "textfile0.txt" from user "user0" is shared with group "group1"
+ And User "user1" moved file "/textfile0.txt" to "/FOLDER/textfile0.txt"
+ And As an "user0"
+ And Deleting last share
+ And As an "user1"
+ When sending "GET" to "/apps/files_sharing/api/v1/shares?shared_with_me=true"
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And last share_id is not included in the answer
+
Scenario: delete a share
Given user "user0" exists
And user "user1" exists
diff --git a/build/integration/features/webdav-related.feature b/build/integration/features/webdav-related.feature
new file mode 100644
index 00000000000..961b6b03431
--- /dev/null
+++ b/build/integration/features/webdav-related.feature
@@ -0,0 +1,23 @@
+Feature: sharing
+ Background:
+ Given using api version "1"
+
+ Scenario: moving a file old way
+ Given using dav path "remote.php/webdav"
+ And As an "admin"
+ And user "user0" exists
+ When User "user0" moves file "/textfile0.txt" to "/FOLDER/textfile0.txt"
+ Then the HTTP status code should be "201"
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/css/styles.css b/core/css/styles.css
index 75bbb78fe52..640aab81d2a 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -240,8 +240,7 @@ body {
}
#body-login .update h2 {
- line-height: 130%;
- margin-bottom: 30px;
+ margin: 12px 0 20px;
}
#body-login .update a {
@@ -538,6 +537,8 @@ html.ie8 #body-login form input[type="checkbox"] {
}
.error a.button {
color: #555 !important;
+ display: inline-block;
+ text-align: center;
}
.error pre {
white-space: pre-wrap;
diff --git a/core/js/files/iedavclient.js b/core/js/files/iedavclient.js
index bc6bce2f9ae..4fd9a3a3bf4 100644
--- a/core/js/files/iedavclient.js
+++ b/core/js/files/iedavclient.js
@@ -145,10 +145,7 @@
var k = 0;
for (k = 0; k < propNode.childNodes.length; k++) {
var prop = propNode.childNodes[k];
- var value = prop.textContent || prop.text;
- if (prop.childNodes && prop.childNodes.length > 0 && prop.childNodes[0].nodeType === 1) {
- value = prop.childNodes;
- }
+ var value = this._parsePropNode(prop);
propStat.properties['{' + prop.namespaceURI + '}' + (prop.localName || prop.baseName)] = value;
}
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 0580f88d33b..873ff7d1634 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -14,6 +14,8 @@ OC.L10N.register(
"Repair error: " : "Reperaturfehler:",
"Set log level to debug - current level: \"%s\"" : "Log-Level auf Debug gesetzt - aktuelles Level: \"%s\"",
"Reset log level to \"%s\"" : "Log-Level auf \"%s\" zurückgesetzt",
+ "%s (3rdparty)" : "%s (3rdparty)",
+ "%s (incompatible)" : "%s (nicht kompatibel)",
"Following apps have been disabled: %s" : "Die folgenden Apps sind deaktiviert worden: %s",
"Already up to date" : "Bereits aktuell",
"File is too big" : "Datei ist zu groß",
@@ -252,6 +254,7 @@ OC.L10N.register(
"Please try again or contact your administrator." : "Bitte versuche es noch einmal oder kontaktiere Deinen Administrator.",
"Log in" : "Anmelden",
"Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
+ "Stay logged in" : "Angemeldet bleiben",
"Alternative Logins" : "Alternative Logins",
"This ownCloud instance is currently in single user mode." : "Diese ownClound-Instanz befindet sich derzeit im Einzelbenutzermodus.",
"This means only administrators can use the instance." : "Dies bedeutet, dass diese Instanz nur von Administratoren genutzt werden kann.",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 285d38429e7..dcaeb2ad1a5 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -12,6 +12,8 @@
"Repair error: " : "Reperaturfehler:",
"Set log level to debug - current level: \"%s\"" : "Log-Level auf Debug gesetzt - aktuelles Level: \"%s\"",
"Reset log level to \"%s\"" : "Log-Level auf \"%s\" zurückgesetzt",
+ "%s (3rdparty)" : "%s (3rdparty)",
+ "%s (incompatible)" : "%s (nicht kompatibel)",
"Following apps have been disabled: %s" : "Die folgenden Apps sind deaktiviert worden: %s",
"Already up to date" : "Bereits aktuell",
"File is too big" : "Datei ist zu groß",
@@ -250,6 +252,7 @@
"Please try again or contact your administrator." : "Bitte versuche es noch einmal oder kontaktiere Deinen Administrator.",
"Log in" : "Anmelden",
"Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
+ "Stay logged in" : "Angemeldet bleiben",
"Alternative Logins" : "Alternative Logins",
"This ownCloud instance is currently in single user mode." : "Diese ownClound-Instanz befindet sich derzeit im Einzelbenutzermodus.",
"This means only administrators can use the instance." : "Dies bedeutet, dass diese Instanz nur von Administratoren genutzt werden kann.",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index d2f2b6cb33b..4beaacd347b 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -6,14 +6,20 @@ OC.L10N.register(
"Turned on maintenance mode" : "启用维护模式",
"Turned off maintenance mode" : "关闭维护模式",
"Maintenance mode is kept active" : "维护模式已被启用",
+ "Updating database schema" : "正在更新数据库架构",
"Updated database" : "数据库已更新",
+ "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "检查数据库架构是否可以更新 (这可能需要很长的时间,这取决于数据库大小)",
"Checked database schema update" : "已经检查数据库架构更新",
+ "Checking updates of apps" : "检查更新应用",
+ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "检查 %s 的数据库架构是否可以更新 (这可能需要很长的时间,这取决于数据库大小)",
"Checked database schema update for apps" : "已经检查应用的数据库架构更新",
"Updated \"%s\" to %s" : "更新 \"%s\" 为 %s",
"Repair warning: " : "修复警告:",
"Repair error: " : "修复错误:",
"Set log level to debug - current level: \"%s\"" : "设置日志级别为 调试 - 目前级别:%s",
"Reset log level to \"%s\"" : "重设日志级别为 \"%s\"",
+ "%s (3rdparty)" : "%s (第三方)",
+ "%s (incompatible)" : "%s (不兼容)",
"Following apps have been disabled: %s" : "下列应用已经被禁用:%s",
"Already up to date" : "已经是最新",
"File is too big" : "文件太大",
@@ -21,6 +27,7 @@ OC.L10N.register(
"No image or file provided" : "没有提供图片或文件",
"Unknown filetype" : "未知的文件类型",
"Invalid image" : "无效的图像",
+ "An error occurred. Please contact your admin." : "发生了一个错误,请联系管理员。",
"No temporary profile picture available, try again" : "没有临时概览页图片可用,请重试",
"No crop data provided" : "没有提供相应数据",
"No valid crop data provided" : "没有提供有效的裁剪数据",
@@ -108,6 +115,7 @@ OC.L10N.register(
"/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "/dev/urandom 无法被 PHP 读取,处于安全原因,这是强烈不推荐的。请查看<a href=\"{docLink}\">文档</a>了解详情。",
"Your PHP version ({version}) is no longer <a href=\"{phpLink}\">supported by PHP</a>. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by PHP." : "你的 PHP 版本 ({version}) 不再被 <a href=\"{phpLink}\"> PHP </a>支持。我们建议您升级您的PHP版本,以便获得 PHP 性能和安全提升。",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "反向代理头配置不正确,或者您正从一个受信任的代理访问ownCloud。如果你不是通过受信任的代理访问 ownCloud,这将引发一个安全问题,可能由于 ownCloud IP 地址可见导致欺骗攻击。更多信息可以查看我们的 <a href=\"{docLink}\">文档</a>。",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached 配置为分布式缓存,但是已经安装的 PHP 模块是 \"memcache\" 。 \\OC\\Memcache\\Memcached 仅支持 \"memcached\" 而不是 \"memcache\"。点击 <a href=\"{wikiLink}\"> memcached wiki 了解两个模块的不同</a>.",
"Error occurred while checking server setup" : "当检查服务器启动时出错",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 头部没有配置和 \"{expected}\" 的一样。这是一个潜在的安全或者隐私风险,我们调整这项设置。",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\">security tips</a>." : "HTTP 严格传输安全(Strict-Transport-Security)报头未配置到至少“{seconds}”秒。处于增强安全性考虑,我们推荐按照<a href=\"{docUrl}\">安全提示</a>启用 HSTS。",
@@ -169,7 +177,9 @@ OC.L10N.register(
"Hello {name}" : "你好 {name}",
"_download %n file_::_download %n files_" : ["下载 %n 个文件"],
"{version} is available. Get more information on how to update." : "{version} 现在可用。获取更多升级相关信息。",
+ "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "升级正在进行,在某些环境中离开此网页可能中断该过程。",
"Updating {productName} to version {version}, this may take a while." : "更新 {productName} 到版本 {version},这可能需要一些时间。",
+ "An error occurred." : "发生了一个错误",
"Please reload the page." : "请重新加载页面。",
"The update was unsuccessful. " : "升级未成功",
"The update was successful. There were warnings." : "更新成功。有警告。",
@@ -252,12 +262,14 @@ OC.L10N.register(
"Please try again or contact your administrator." : "请重试或联系管理员。",
"Log in" : "登录",
"Wrong password. Reset it?" : "密码错误。要重置么?",
+ "Stay logged in" : "保持登录",
"Alternative Logins" : "其他登录方式",
"This ownCloud instance is currently in single user mode." : "当前ownCloud实例运行在单用户模式下。",
"This means only administrators can use the instance." : "这意味着只有管理员才能在实例上操作。",
"Contact your system administrator if this message persists or appeared unexpectedly." : "如果这个消息一直存在或不停出现,请联系你的系统管理员。",
"Thank you for your patience." : "感谢让你久等了。",
"You are accessing the server from an untrusted domain." : "您正在访问来自不信任域名的服务器。",
+ "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "请联系你的系统管理员。如果你是系统管理员,配置 config/config.php 文件中参数 \"trusted_domain\" 设置。可以在 config/config.sample.php 文件中找到例子。",
"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "基于你的配置,作为系统管理员,你可能还能点击下面的按钮来信任这个域。",
"Add \"%s\" as trusted domain" : "添加 \"%s\"为信任域",
"App update required" : "必须的应用更新",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index 4d7cbb12d1f..65474210a20 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -4,14 +4,20 @@
"Turned on maintenance mode" : "启用维护模式",
"Turned off maintenance mode" : "关闭维护模式",
"Maintenance mode is kept active" : "维护模式已被启用",
+ "Updating database schema" : "正在更新数据库架构",
"Updated database" : "数据库已更新",
+ "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "检查数据库架构是否可以更新 (这可能需要很长的时间,这取决于数据库大小)",
"Checked database schema update" : "已经检查数据库架构更新",
+ "Checking updates of apps" : "检查更新应用",
+ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "检查 %s 的数据库架构是否可以更新 (这可能需要很长的时间,这取决于数据库大小)",
"Checked database schema update for apps" : "已经检查应用的数据库架构更新",
"Updated \"%s\" to %s" : "更新 \"%s\" 为 %s",
"Repair warning: " : "修复警告:",
"Repair error: " : "修复错误:",
"Set log level to debug - current level: \"%s\"" : "设置日志级别为 调试 - 目前级别:%s",
"Reset log level to \"%s\"" : "重设日志级别为 \"%s\"",
+ "%s (3rdparty)" : "%s (第三方)",
+ "%s (incompatible)" : "%s (不兼容)",
"Following apps have been disabled: %s" : "下列应用已经被禁用:%s",
"Already up to date" : "已经是最新",
"File is too big" : "文件太大",
@@ -19,6 +25,7 @@
"No image or file provided" : "没有提供图片或文件",
"Unknown filetype" : "未知的文件类型",
"Invalid image" : "无效的图像",
+ "An error occurred. Please contact your admin." : "发生了一个错误,请联系管理员。",
"No temporary profile picture available, try again" : "没有临时概览页图片可用,请重试",
"No crop data provided" : "没有提供相应数据",
"No valid crop data provided" : "没有提供有效的裁剪数据",
@@ -106,6 +113,7 @@
"/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "/dev/urandom 无法被 PHP 读取,处于安全原因,这是强烈不推荐的。请查看<a href=\"{docLink}\">文档</a>了解详情。",
"Your PHP version ({version}) is no longer <a href=\"{phpLink}\">supported by PHP</a>. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by PHP." : "你的 PHP 版本 ({version}) 不再被 <a href=\"{phpLink}\"> PHP </a>支持。我们建议您升级您的PHP版本,以便获得 PHP 性能和安全提升。",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "反向代理头配置不正确,或者您正从一个受信任的代理访问ownCloud。如果你不是通过受信任的代理访问 ownCloud,这将引发一个安全问题,可能由于 ownCloud IP 地址可见导致欺骗攻击。更多信息可以查看我们的 <a href=\"{docLink}\">文档</a>。",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached 配置为分布式缓存,但是已经安装的 PHP 模块是 \"memcache\" 。 \\OC\\Memcache\\Memcached 仅支持 \"memcached\" 而不是 \"memcache\"。点击 <a href=\"{wikiLink}\"> memcached wiki 了解两个模块的不同</a>.",
"Error occurred while checking server setup" : "当检查服务器启动时出错",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 头部没有配置和 \"{expected}\" 的一样。这是一个潜在的安全或者隐私风险,我们调整这项设置。",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\">security tips</a>." : "HTTP 严格传输安全(Strict-Transport-Security)报头未配置到至少“{seconds}”秒。处于增强安全性考虑,我们推荐按照<a href=\"{docUrl}\">安全提示</a>启用 HSTS。",
@@ -167,7 +175,9 @@
"Hello {name}" : "你好 {name}",
"_download %n file_::_download %n files_" : ["下载 %n 个文件"],
"{version} is available. Get more information on how to update." : "{version} 现在可用。获取更多升级相关信息。",
+ "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "升级正在进行,在某些环境中离开此网页可能中断该过程。",
"Updating {productName} to version {version}, this may take a while." : "更新 {productName} 到版本 {version},这可能需要一些时间。",
+ "An error occurred." : "发生了一个错误",
"Please reload the page." : "请重新加载页面。",
"The update was unsuccessful. " : "升级未成功",
"The update was successful. There were warnings." : "更新成功。有警告。",
@@ -250,12 +260,14 @@
"Please try again or contact your administrator." : "请重试或联系管理员。",
"Log in" : "登录",
"Wrong password. Reset it?" : "密码错误。要重置么?",
+ "Stay logged in" : "保持登录",
"Alternative Logins" : "其他登录方式",
"This ownCloud instance is currently in single user mode." : "当前ownCloud实例运行在单用户模式下。",
"This means only administrators can use the instance." : "这意味着只有管理员才能在实例上操作。",
"Contact your system administrator if this message persists or appeared unexpectedly." : "如果这个消息一直存在或不停出现,请联系你的系统管理员。",
"Thank you for your patience." : "感谢让你久等了。",
"You are accessing the server from an untrusted domain." : "您正在访问来自不信任域名的服务器。",
+ "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "请联系你的系统管理员。如果你是系统管理员,配置 config/config.php 文件中参数 \"trusted_domain\" 设置。可以在 config/config.sample.php 文件中找到例子。",
"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "基于你的配置,作为系统管理员,你可能还能点击下面的按钮来信任这个域。",
"Add \"%s\" as trusted domain" : "添加 \"%s\"为信任域",
"App update required" : "必须的应用更新",
diff --git a/core/search/js/search.js b/core/search/js/search.js
index 4e83a070170..ef99cf7e961 100644
--- a/core/search/js/search.js
+++ b/core/search/js/search.js
@@ -343,6 +343,18 @@
}
});
+ $(document).keydown(function(event) {
+ if ((event.ctrlKey || event.metaKey) && // Ctrl or Command (OSX)
+ !event.shiftKey &&
+ event.keyCode === 70 && // F
+ self.hasFilter(getCurrentApp()) && // Search is enabled
+ !$searchBox.is(':focus') // if searchbox is already focused do nothing (fallback to browser default)
+ ) {
+ $searchBox.focus();
+ event.preventDefault();
+ }
+ });
+
$searchResults.on('click', 'tr.result', function (event) {
var $row = $(this);
var item = $row.data('result');
diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php
index ae88350bdc5..75815de84bc 100644
--- a/core/templates/update.admin.php
+++ b/core/templates/update.admin.php
@@ -8,7 +8,7 @@
<?php } ?>
<?php if (!empty($_['appsToUpgrade'])) { ?>
<div class="infogroup">
- <span class="bold"><?php p($l->t('These apps will be updated:')); ?></span>
+ <span><?php p($l->t('These apps will be updated:')); ?></span>
<ul class="content appList">
<?php foreach ($_['appsToUpgrade'] as $appInfo) { ?>
<li><?php p($appInfo['name']) ?> (<?php p($appInfo['id']) ?>)</li>
@@ -18,7 +18,7 @@
<?php } ?>
<?php if (!empty($_['incompatibleAppsList'])) { ?>
<div class="infogroup">
- <span class="bold"><?php p($l->t('These incompatible apps will be disabled:')) ?></span>
+ <span><?php p($l->t('These incompatible apps will be disabled:')) ?></span>
<ul class="content appList">
<?php foreach ($_['incompatibleAppsList'] as $appInfo) { ?>
<li><?php p($appInfo['name']) ?> (<?php p($appInfo['id']) ?>)</li>
@@ -27,7 +27,7 @@
</div>
<?php } ?>
<?php if (!empty($_['oldTheme'])) { ?>
- <div class="infogroup bold">
+ <div class="infogroup">
<?php p($l->t('The theme %s has been disabled.', array($_['oldTheme']))) ?>
</div>
<?php } ?>
diff --git a/core/vendor/davclient.js/lib/client.js b/core/vendor/davclient.js/lib/client.js
index 121b5dcab5f..18bbf13f3cd 100644
--- a/core/vendor/davclient.js/lib/client.js
+++ b/core/vendor/davclient.js/lib/client.js
@@ -148,6 +148,33 @@ dav.Client.prototype = {
},
+ /**
+ * Parses a property node.
+ *
+ * Either returns a string if the node only contains text, or returns an
+ * array of non-text subnodes.
+ *
+ * @param {Object} propNode node to parse
+ * @return {string|Array} text content as string or array of subnodes, excluding text nodes
+ */
+ _parsePropNode: function(propNode) {
+ var content = null;
+ if (propNode.childNodes && propNode.childNodes.length > 0) {
+ var subNodes = [];
+ // filter out text nodes
+ for (var j = 0; j < propNode.childNodes.length; j++) {
+ var node = propNode.childNodes[j];
+ if (node.nodeType === 1) {
+ subNodes.push(node);
+ }
+ }
+ if (subNodes.length) {
+ content = subNodes;
+ }
+ }
+
+ return content || propNode.textContent || propNode.text;
+ },
/**
* Parses a multi-status response body.
@@ -197,11 +224,7 @@ dav.Client.prototype = {
var propNode = propIterator.iterateNext();
while(propNode) {
- var content = propNode.textContent;
- if (propNode.childNodes && propNode.childNodes.length > 0 && propNode.childNodes[0].nodeType === 1) {
- content = propNode.childNodes;
- }
-
+ var content = this._parsePropNode(propNode);
propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;
propNode = propIterator.iterateNext();
diff --git a/db_structure.xml b/db_structure.xml
index 8135746233e..1b38a527a12 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -684,6 +684,7 @@
</field>
<!-- Foreign Key users::uid -->
+ <!-- This is the initiator of the share -->
<field>
<name>uid_owner</name>
<type>text</type>
@@ -692,6 +693,19 @@
<length>64</length>
</field>
+ <!-- Foreign Key users::uid -->
+ <!-- This is the owner of the file, this can be
+ different from the initiator of the share.
+ The naming is subobtimal but prevents huge
+ migration steps -->
+ <field>
+ <name>uid_fileowner</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
<!-- Foreign Key share::id or NULL -->
<field>
<name>parent</name>
@@ -1204,5 +1218,156 @@
</table>
+ <table>
+ <!--
+ default place to store comment data
+ -->
+ <name>*dbprefix*comments</name>
+
+ <declaration>
+
+ <field>
+ <name>id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ <autoincrement>1</autoincrement>
+ </field>
+
+ <field>
+ <name>parent_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>topmost_parent_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>children_count</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>actor_type</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>actor_id</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>message</name>
+ <type>clob</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>verb</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>creation_timestamp</name>
+ <type>timestamp</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>latest_child_timestamp</name>
+ <type>timestamp</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>object_type</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>object_id</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+<!--
+ TODO: finalize indexes when all queries are done
+ <index>
+ <name>comments_parent_id_index</name>
+ <unique>false</unique>
+ <field>
+ <name>parent_id</name>
+ <sorting>descending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>comments_actor_index</name>
+ <unique>false</unique>
+ <field>
+ <name>actor_type</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>actor_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>comments_object_index</name>
+ <unique>false</unique>
+ <field>
+ <name>object_type</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>object_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>creation_timestamp</name>
+ <sorting>descending</sorting>
+ </field>
+ </index>
+-->
+
+ </declaration>
+
+ </table>
+
</database>
diff --git a/lib/base.php b/lib/base.php
index feaf46e83f1..6a1841fa93b 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -246,18 +246,21 @@ class OC {
$configFileWritable = is_writable($configFilePath);
if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
|| !$configFileWritable && self::checkUpgrade(false)) {
+
+ $urlGenerator = \OC::$server->getURLGenerator();
+
if (self::$CLI) {
echo $l->t('Cannot write into "config" directory!')."\n";
echo $l->t('This can usually be fixed by giving the webserver write access to the config directory')."\n";
echo "\n";
- echo $l->t('See %s', array(\OC_Helper::linkToDocs('admin-dir_permissions')))."\n";
+ echo $l->t('See %s', [ $urlGenerator->linkToDocs('admin-dir_permissions') ])."\n";
exit;
} else {
OC_Template::printErrorPage(
$l->t('Cannot write into "config" directory!'),
$l->t('This can usually be fixed by '
. '%sgiving the webserver write access to the config directory%s.',
- array('<a href="'.\OC_Helper::linkToDocs('admin-dir_permissions').'" target="_blank">', '</a>'))
+ array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
);
}
}
diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js
index c3ca33e74ad..9f676212377 100644
--- a/lib/l10n/ast.js
+++ b/lib/l10n/ast.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requeríu",
"Please upgrade your database version" : "Por favor, anueva la versión de la to base de datos",
- "Error occurred while checking PostgreSQL version" : "Asocedió un fallu mientres se comprobaba la versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrate que tienes PostgreSQL >= 9 o comprueba los rexistros pa más información tocante al fallu",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, camuda los permisos a 0770 pa que'l direutoriu nun pueda llistase por otros usuarios.",
"Data directory (%s) is readable by other users" : "El direutoriu de datos (%s) ye llexible por otros usuarios",
"Data directory (%s) is invalid" : "Ye inválidu'l direutoriu de datos (%s)",
diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json
index bfcaf8729d7..8fd9383d849 100644
--- a/lib/l10n/ast.json
+++ b/lib/l10n/ast.json
@@ -108,8 +108,6 @@
"Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requeríu",
"Please upgrade your database version" : "Por favor, anueva la versión de la to base de datos",
- "Error occurred while checking PostgreSQL version" : "Asocedió un fallu mientres se comprobaba la versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrate que tienes PostgreSQL >= 9 o comprueba los rexistros pa más información tocante al fallu",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, camuda los permisos a 0770 pa que'l direutoriu nun pueda llistase por otros usuarios.",
"Data directory (%s) is readable by other users" : "El direutoriu de datos (%s) ye llexible por otros usuarios",
"Data directory (%s) is invalid" : "Ye inválidu'l direutoriu de datos (%s)",
diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js
index fae7f894bcc..8f947c22543 100644
--- a/lib/l10n/bg_BG.js
+++ b/lib/l10n/bg_BG.js
@@ -111,8 +111,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
"PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
"Please upgrade your database version" : "Моля, обнови базата данни.",
- "Error occurred while checking PostgreSQL version" : "Настъпи грешка при проверката на версията на PostgreSQL.",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Моля, увери се, че PostgreSQL >= 9 или провери докладите за повече информация относно грешката.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Моля, промени правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.",
"Data directory (%s) is readable by other users" : "Data папката (%s) може да бъде разгледана от други потребители",
"Data directory (%s) is invalid" : "Data папката (%s) e невалидна",
diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json
index 21361a20897..b7a3db07d04 100644
--- a/lib/l10n/bg_BG.json
+++ b/lib/l10n/bg_BG.json
@@ -109,8 +109,6 @@
"Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
"PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
"Please upgrade your database version" : "Моля, обнови базата данни.",
- "Error occurred while checking PostgreSQL version" : "Настъпи грешка при проверката на версията на PostgreSQL.",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Моля, увери се, че PostgreSQL >= 9 или провери докладите за повече информация относно грешката.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Моля, промени правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.",
"Data directory (%s) is readable by other users" : "Data папката (%s) може да бъде разгледана от други потребители",
"Data directory (%s) is invalid" : "Data папката (%s) e невалидна",
diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js
index 6df1b5245d4..89bc7ca54e3 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -99,8 +99,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.",
"PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9",
"Please upgrade your database version" : "Actualitzeu la versió de la base de dades",
- "Error occurred while checking PostgreSQL version" : "Hi ha hagut un error en comprovar la versió de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assegureu-vos que teniu PostgreSQL >= 9 o comproveu els registres per més informació quant a l'error",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.",
"Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris",
"Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index bd722389fdc..73be16ae1bd 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -97,8 +97,6 @@
"Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.",
"PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9",
"Please upgrade your database version" : "Actualitzeu la versió de la base de dades",
- "Error occurred while checking PostgreSQL version" : "Hi ha hagut un error en comprovar la versió de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assegureu-vos que teniu PostgreSQL >= 9 o comproveu els registres per més informació quant a l'error",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.",
"Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris",
"Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida",
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
index 02d667e9cb8..0944b1a6a58 100644
--- a/lib/l10n/cs_CZ.js
+++ b/lib/l10n/cs_CZ.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.",
"PostgreSQL >= 9 required" : "Je vyžadováno PostgreSQL >= 9",
"Please upgrade your database version" : "Aktualizujte prosím verzi své databáze",
- "Error occurred while checking PostgreSQL version" : "Při zjišťování verze PostgreSQL došlo k chybě",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ujistěte se, že máte PostgreSQL >= 9, a zkontrolujte logy pro více informací o chybě.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.",
"Data directory (%s) is readable by other users" : "Datový adresář (%s) je čitelný i ostatními uživateli",
"Data directory (%s) must be an absolute path" : "Cesta k datovému adresáři (%s) musí být uvedena absolutně",
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
index d55cb2c9485..3dbe060740f 100644
--- a/lib/l10n/cs_CZ.json
+++ b/lib/l10n/cs_CZ.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.",
"PostgreSQL >= 9 required" : "Je vyžadováno PostgreSQL >= 9",
"Please upgrade your database version" : "Aktualizujte prosím verzi své databáze",
- "Error occurred while checking PostgreSQL version" : "Při zjišťování verze PostgreSQL došlo k chybě",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ujistěte se, že máte PostgreSQL >= 9, a zkontrolujte logy pro více informací o chybě.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.",
"Data directory (%s) is readable by other users" : "Datový adresář (%s) je čitelný i ostatními uživateli",
"Data directory (%s) must be an absolute path" : "Cesta k datovému adresáři (%s) musí být uvedena absolutně",
diff --git a/lib/l10n/da.js b/lib/l10n/da.js
index 232934fdcad..ff1004d6ff2 100644
--- a/lib/l10n/da.js
+++ b/lib/l10n/da.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 kræves",
"Please upgrade your database version" : "Opgradér venligst din databaseversion",
- "Error occurred while checking PostgreSQL version" : "Der opstod fejl under tjek af PostgreSQL-versionen",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sørg venligst for at du har PostgreSQL >= 9 eller tjek loggen for flere informationer om fejlen",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Tilpas venligst rettigheder til 0770, så mappen ikke fremvises for andre brugere.",
"Data directory (%s) is readable by other users" : "Datamappen (%s) kan læses af andre brugere",
"Data directory (%s) must be an absolute path" : "Datamappen (%s) skal have en absolut sti",
diff --git a/lib/l10n/da.json b/lib/l10n/da.json
index 8b1e7744583..531c591e75b 100644
--- a/lib/l10n/da.json
+++ b/lib/l10n/da.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 kræves",
"Please upgrade your database version" : "Opgradér venligst din databaseversion",
- "Error occurred while checking PostgreSQL version" : "Der opstod fejl under tjek af PostgreSQL-versionen",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sørg venligst for at du har PostgreSQL >= 9 eller tjek loggen for flere informationer om fejlen",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Tilpas venligst rettigheder til 0770, så mappen ikke fremvises for andre brugere.",
"Data directory (%s) is readable by other users" : "Datamappen (%s) kan læses af andre brugere",
"Data directory (%s) must be an absolute path" : "Datamappen (%s) skal have en absolut sti",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 7baf49e0650..697cedfdd6f 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Bitte kontaktiere Deinen Server-Administrator und bitte um den Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
"Please upgrade your database version" : "Bitte aktualisiere Deine Datenbankversion",
- "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stelle bitte sicher, dass Du PostgreSQL >= 9 verwendest oder prüfe die Logs für weitere Informationen über den Fehler",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändere die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
"Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
"Data directory (%s) must be an absolute path" : "Das Datenverzeichnis (%s) muss ein absoluter Pfad sein",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 927e610e0d0..bdee6657676 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Bitte kontaktiere Deinen Server-Administrator und bitte um den Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
"Please upgrade your database version" : "Bitte aktualisiere Deine Datenbankversion",
- "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stelle bitte sicher, dass Du PostgreSQL >= 9 verwendest oder prüfe die Logs für weitere Informationen über den Fehler",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändere die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
"Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
"Data directory (%s) must be an absolute path" : "Das Datenverzeichnis (%s) muss ein absoluter Pfad sein",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index c0c92a12037..ac05b409391 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -136,8 +136,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um den Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
"Please upgrade your database version" : "Bitte aktualisieren Sie Ihre Datenbankversion",
- "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stellen Sie sicher, dass Sie PostgreSQL >= 9 verwenden oder prüfen Sie die Logs für weitere Informationen über den Fehler",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändern Sie die Berechtigungen auf 0770, so dass das Verzeichnis nicht von anderen Benutzern angezeigt werden kann.",
"Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Benutzern lesbar",
"Data directory (%s) must be an absolute path" : "Das Datenverzeichnis (%s) muss ein absoluter Pfad sein",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index afa38ec4705..6a896b9fd6e 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -134,8 +134,6 @@
"Please ask your server administrator to restart the web server." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um den Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
"Please upgrade your database version" : "Bitte aktualisieren Sie Ihre Datenbankversion",
- "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stellen Sie sicher, dass Sie PostgreSQL >= 9 verwenden oder prüfen Sie die Logs für weitere Informationen über den Fehler",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändern Sie die Berechtigungen auf 0770, so dass das Verzeichnis nicht von anderen Benutzern angezeigt werden kann.",
"Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Benutzern lesbar",
"Data directory (%s) must be an absolute path" : "Das Datenverzeichnis (%s) muss ein absoluter Pfad sein",
diff --git a/lib/l10n/el.js b/lib/l10n/el.js
index 932028a22cd..d1a6e0100c2 100644
--- a/lib/l10n/el.js
+++ b/lib/l10n/el.js
@@ -137,8 +137,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
"PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
"Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας",
- "Error occurred while checking PostgreSQL version" : "Προέκυψε σφάλμα κατά τον έλεγχο της έκδοσης PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Παρακαλώ ελέγξτε ότι έχετε PostgreSQL >= 9 ή ελέγξτε στα ιστορικό σφαλμάτων για περισσότερες πληροφορίες για το σφάλμα",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.",
"Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες",
"Data directory (%s) must be an absolute path" : "Κατάλογος δεδομένων (%s) πρεπει να είναι απόλυτη η διαδρομή",
diff --git a/lib/l10n/el.json b/lib/l10n/el.json
index 33a6abe2494..753b7e5b046 100644
--- a/lib/l10n/el.json
+++ b/lib/l10n/el.json
@@ -135,8 +135,6 @@
"Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
"PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
"Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας",
- "Error occurred while checking PostgreSQL version" : "Προέκυψε σφάλμα κατά τον έλεγχο της έκδοσης PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Παρακαλώ ελέγξτε ότι έχετε PostgreSQL >= 9 ή ελέγξτε στα ιστορικό σφαλμάτων για περισσότερες πληροφορίες για το σφάλμα",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.",
"Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες",
"Data directory (%s) must be an absolute path" : "Κατάλογος δεδομένων (%s) πρεπει να είναι απόλυτη η διαδρομή",
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index 1ea5f9ef3ed..58721efe41f 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -132,8 +132,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 required",
"Please upgrade your database version" : "Please upgrade your database version",
- "Error occurred while checking PostgreSQL version" : "Error occurred while checking PostgreSQL version",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Please change the permissions to 0770 so that the directory cannot be listed by other users.",
"Data directory (%s) is readable by other users" : "Data directory (%s) is readable by other users",
"Data directory (%s) must be an absolute path" : "Data directory (%s) must be an absolute path",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index ddc0cb947e4..f09b192b3d1 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -130,8 +130,6 @@
"Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 required",
"Please upgrade your database version" : "Please upgrade your database version",
- "Error occurred while checking PostgreSQL version" : "Error occurred while checking PostgreSQL version",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Please change the permissions to 0770 so that the directory cannot be listed by other users.",
"Data directory (%s) is readable by other users" : "Data directory (%s) is readable by other users",
"Data directory (%s) must be an absolute path" : "Data directory (%s) must be an absolute path",
diff --git a/lib/l10n/eo.js b/lib/l10n/eo.js
index b69c0836197..21996ac557d 100644
--- a/lib/l10n/eo.js
+++ b/lib/l10n/eo.js
@@ -70,7 +70,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Bonvolu peti viajn serviladministranton, ke ŝi/li reekfunkciigu la TTT-servilon.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 necesas",
"Please upgrade your database version" : "Bonvolu ĝisdatigi la eldonon de via datumbazo",
- "Error occurred while checking PostgreSQL version" : "Eraro okazis dum kontrolo de eldono de PostgreSQL",
"Data directory (%s) is readable by other users" : "Dosierujo de datumoj (%s) legeblas de aliaj uzantoj",
"Data directory (%s) must be an absolute path" : "Dosierujo de datumoj (%s) devas specifiĝi per absoluta vojo",
"Data directory (%s) is invalid" : "Dosierujo de datumoj (%s) ne validas"
diff --git a/lib/l10n/eo.json b/lib/l10n/eo.json
index 37558aef9e2..b7e60a7fb55 100644
--- a/lib/l10n/eo.json
+++ b/lib/l10n/eo.json
@@ -68,7 +68,6 @@
"Please ask your server administrator to restart the web server." : "Bonvolu peti viajn serviladministranton, ke ŝi/li reekfunkciigu la TTT-servilon.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 necesas",
"Please upgrade your database version" : "Bonvolu ĝisdatigi la eldonon de via datumbazo",
- "Error occurred while checking PostgreSQL version" : "Eraro okazis dum kontrolo de eldono de PostgreSQL",
"Data directory (%s) is readable by other users" : "Dosierujo de datumoj (%s) legeblas de aliaj uzantoj",
"Data directory (%s) must be an absolute path" : "Dosierujo de datumoj (%s) devas specifiĝi per absoluta vojo",
"Data directory (%s) is invalid" : "Dosierujo de datumoj (%s) ne validas"
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index 9ee1f96f034..8f554001cfd 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.",
"Please upgrade your database version" : "Actualice su versión de base de datos.",
- "Error occurred while checking PostgreSQL version" : "Ha ocurrido un error mientras se comprobaba la versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.",
"Data directory (%s) is readable by other users" : "El directorio de datos (%s) se puede leer por otros usuarios.",
"Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index 2d67df87024..94ff1d3db2c 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.",
"Please upgrade your database version" : "Actualice su versión de base de datos.",
- "Error occurred while checking PostgreSQL version" : "Ha ocurrido un error mientras se comprobaba la versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.",
"Data directory (%s) is readable by other users" : "El directorio de datos (%s) se puede leer por otros usuarios.",
"Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta",
diff --git a/lib/l10n/es_AR.js b/lib/l10n/es_AR.js
index 58c5f473851..aff2406c699 100644
--- a/lib/l10n/es_AR.js
+++ b/lib/l10n/es_AR.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"lib",
{
+ "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!",
"Help" : "Ayuda",
"Personal" : "Personal",
"Users" : "Usuarios",
@@ -48,6 +49,7 @@ OC.L10N.register(
"Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
"Apps" : "Apps",
"A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
- "A valid password must be provided" : "Debe ingresar una contraseña válida"
+ "A valid password must be provided" : "Debe ingresar una contraseña válida",
+ "Storage not available" : "Almacenamiento no disponible"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_AR.json b/lib/l10n/es_AR.json
index 605aecb1ab1..4cbbb8ad93f 100644
--- a/lib/l10n/es_AR.json
+++ b/lib/l10n/es_AR.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!",
"Help" : "Ayuda",
"Personal" : "Personal",
"Users" : "Usuarios",
@@ -46,6 +47,7 @@
"Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
"Apps" : "Apps",
"A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
- "A valid password must be provided" : "Debe ingresar una contraseña válida"
+ "A valid password must be provided" : "Debe ingresar una contraseña válida",
+ "Storage not available" : "Almacenamiento no disponible"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index d2146e8af30..eaf98861f23 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -114,8 +114,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav",
"Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni",
- "Error occurred while checking PostgreSQL version" : "Viga PostgreSQL versiooni kontrollimisel",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Palun veendu, et kasutad PostgreSQL >=9 või vaata logidest vea kohta detailsemat informatsiooni",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav",
"Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav",
"Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index 6c223ecfa4f..7d28a75c59e 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -112,8 +112,6 @@
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav",
"Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni",
- "Error occurred while checking PostgreSQL version" : "Viga PostgreSQL versiooni kontrollimisel",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Palun veendu, et kasutad PostgreSQL >=9 või vaata logidest vea kohta detailsemat informatsiooni",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav",
"Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav",
"Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne",
diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js
index 7b69f456692..c6e75f37988 100644
--- a/lib/l10n/eu.js
+++ b/lib/l10n/eu.js
@@ -113,8 +113,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
"Please upgrade your database version" : "Mesedez eguneratu zure datu basearen bertsioa",
- "Error occurred while checking PostgreSQL version" : "Errore bat gertatu da PostgreSQLren bertsioa egiaztatzerakoan",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Mesedez ziurtatu PostgreSQL >= 9 duzula edo begiratu logak erroreari buruzko informazio gehiago lortzeko",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mesedez aldatu baimenak 0770ra beste erabiltzaileek karpetan sartu ezin izateko.",
"Data directory (%s) is readable by other users" : "Data karpeta (%s) beste erabiltzaileek irakur dezakete",
"Data directory (%s) is invalid" : "Datuen karpeta (%s) ez da baliogarria",
diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json
index 591c31869ab..cf6c5da9394 100644
--- a/lib/l10n/eu.json
+++ b/lib/l10n/eu.json
@@ -111,8 +111,6 @@
"Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
"Please upgrade your database version" : "Mesedez eguneratu zure datu basearen bertsioa",
- "Error occurred while checking PostgreSQL version" : "Errore bat gertatu da PostgreSQLren bertsioa egiaztatzerakoan",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Mesedez ziurtatu PostgreSQL >= 9 duzula edo begiratu logak erroreari buruzko informazio gehiago lortzeko",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mesedez aldatu baimenak 0770ra beste erabiltzaileek karpetan sartu ezin izateko.",
"Data directory (%s) is readable by other users" : "Data karpeta (%s) beste erabiltzaileek irakur dezakete",
"Data directory (%s) is invalid" : "Datuen karpeta (%s) ez da baliogarria",
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
index 950b37e631f..4e4d33d0ace 100644
--- a/lib/l10n/fa.js
+++ b/lib/l10n/fa.js
@@ -70,7 +70,6 @@ OC.L10N.register(
"PHP module %s not installed." : "ماژول PHP %s نصب نشده است.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
"Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید",
- "Error occurred while checking PostgreSQL version" : "خطا در هنگام بررسی نسخه‌ی PostgreSQL",
"Storage not available" : "فضای ذخیره سازی موجود نیست"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
index 2f6270c7e7a..4ca821758dc 100644
--- a/lib/l10n/fa.json
+++ b/lib/l10n/fa.json
@@ -68,7 +68,6 @@
"PHP module %s not installed." : "ماژول PHP %s نصب نشده است.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
"Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید",
- "Error occurred while checking PostgreSQL version" : "خطا در هنگام بررسی نسخه‌ی PostgreSQL",
"Storage not available" : "فضای ذخیره سازی موجود نیست"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
index c932fa35d60..3510ebdd956 100644
--- a/lib/l10n/fi_FI.js
+++ b/lib/l10n/fi_FI.js
@@ -122,8 +122,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
"Please upgrade your database version" : "Päivitä tietokantasi versio",
- "Error occurred while checking PostgreSQL version" : "Virhe PostgreSQL:n versiota tarkistaessa",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Varmista, että käytössäsi on PostgreSQL >= 9 tai tarkista lokit saadaksesi lisätietoja virheestä",
"Data directory (%s) is readable by other users" : "Datakansio (%s) on muiden käyttäjien luettavissa",
"Data directory (%s) must be an absolute path" : "Datahakemiston (%s) tulee olla absoluuttinen polku",
"Check the value of \"datadirectory\" in your configuration" : "Tarkista \"datadirectory\"-arvo asetuksistasi",
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
index 55209ee0b72..eb55bc2a8ff 100644
--- a/lib/l10n/fi_FI.json
+++ b/lib/l10n/fi_FI.json
@@ -120,8 +120,6 @@
"Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
"Please upgrade your database version" : "Päivitä tietokantasi versio",
- "Error occurred while checking PostgreSQL version" : "Virhe PostgreSQL:n versiota tarkistaessa",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Varmista, että käytössäsi on PostgreSQL >= 9 tai tarkista lokit saadaksesi lisätietoja virheestä",
"Data directory (%s) is readable by other users" : "Datakansio (%s) on muiden käyttäjien luettavissa",
"Data directory (%s) must be an absolute path" : "Datahakemiston (%s) tulee olla absoluuttinen polku",
"Check the value of \"datadirectory\" in your configuration" : "Tarkista \"datadirectory\"-arvo asetuksistasi",
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 305dea06792..9660650b4f1 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -139,8 +139,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requis",
"Please upgrade your database version" : "Veuillez mettre à jour votre gestionnaire de base de données",
- "Error occurred while checking PostgreSQL version" : "Une erreur s’est produite pendant la récupération du numéro de version de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Veuillez vérifier que vous utilisez PostgreSQL >= 9 , ou regardez dans le journal d’erreur pour plus d’informations sur ce problème",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu ne puisse pas être listé par les autres utilisateurs.",
"Data directory (%s) is readable by other users" : "Le répertoire de données (%s) est lisible par les autres utilisateurs",
"Data directory (%s) must be an absolute path" : "Le chemin du dossier de données (%s) doit être absolu",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 9ca7bce8d10..a388630993e 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -137,8 +137,6 @@
"Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requis",
"Please upgrade your database version" : "Veuillez mettre à jour votre gestionnaire de base de données",
- "Error occurred while checking PostgreSQL version" : "Une erreur s’est produite pendant la récupération du numéro de version de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Veuillez vérifier que vous utilisez PostgreSQL >= 9 , ou regardez dans le journal d’erreur pour plus d’informations sur ce problème",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu ne puisse pas être listé par les autres utilisateurs.",
"Data directory (%s) is readable by other users" : "Le répertoire de données (%s) est lisible par les autres utilisateurs",
"Data directory (%s) must be an absolute path" : "Le chemin du dossier de données (%s) doit être absolu",
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index d6894749c0d..2025f14d5f8 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -136,8 +136,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..",
"PostgreSQL >= 9 required" : "Requírese PostgreSQL >= 9",
"Please upgrade your database version" : "Anove a versión da súa base de datos",
- "Error occurred while checking PostgreSQL version" : "Produciuse un erro mentres comprobaba a versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Asegúrese de que dispón do PostgreSQL >= 9 ou comprobe os rexistros para obter máis información sobre este erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida seren listado por outros usuarios.",
"Data directory (%s) is readable by other users" : "O directorio de datos (%s) é lexíbel por outros usuarios",
"Data directory (%s) must be an absolute path" : "O directorio de datos (%s) debe ser unha ruta absoluta",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index 4dab647d768..8e93ad5253a 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -134,8 +134,6 @@
"Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..",
"PostgreSQL >= 9 required" : "Requírese PostgreSQL >= 9",
"Please upgrade your database version" : "Anove a versión da súa base de datos",
- "Error occurred while checking PostgreSQL version" : "Produciuse un erro mentres comprobaba a versión de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Asegúrese de que dispón do PostgreSQL >= 9 ou comprobe os rexistros para obter máis información sobre este erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida seren listado por outros usuarios.",
"Data directory (%s) is readable by other users" : "O directorio de datos (%s) é lexíbel por outros usuarios",
"Data directory (%s) must be an absolute path" : "O directorio de datos (%s) debe ser unha ruta absoluta",
diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js
index ef605582c78..4c3443fa294 100644
--- a/lib/l10n/hr.js
+++ b/lib/l10n/hr.js
@@ -106,8 +106,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.",
"PostgreSQL >= 9 required" : "Potreban je PostgreSQL >= 9",
"Please upgrade your database version" : "Molimo, ažurirajte svoju verziju baze podataka",
- "Error occurred while checking PostgreSQL version" : "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici",
"Data directory (%s) is readable by other users" : "Podatkovni direktorij (%s) čitljiv je za druge korisnike",
"Data directory (%s) is invalid" : "Podatkovni direktorij (%s) nije ispravan",
diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json
index 6e7e2bd432f..78d3ce21529 100644
--- a/lib/l10n/hr.json
+++ b/lib/l10n/hr.json
@@ -104,8 +104,6 @@
"Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.",
"PostgreSQL >= 9 required" : "Potreban je PostgreSQL >= 9",
"Please upgrade your database version" : "Molimo, ažurirajte svoju verziju baze podataka",
- "Error occurred while checking PostgreSQL version" : "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici",
"Data directory (%s) is readable by other users" : "Podatkovni direktorij (%s) čitljiv je za druge korisnike",
"Data directory (%s) is invalid" : "Podatkovni direktorij (%s) nije ispravan",
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
index df162844485..7025b1b59b0 100644
--- a/lib/l10n/hu_HU.js
+++ b/lib/l10n/hu_HU.js
@@ -127,8 +127,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges",
"Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!",
- "Error occurred while checking PostgreSQL version" : "Hiba történt a PostgreSQL verziójának ellenőrzése közben",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Kérjük gondoskodjon róla, hogy a PostgreSQL legalább 9-es verziójú legyen, vagy ellenőrizze a naplófájlokat, hogy mi okozta a hibát!",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!",
"Data directory (%s) is readable by other users" : "Az adatkönyvtár (%s) más felhasználók számára is olvasható ",
"Data directory (%s) must be an absolute path" : "Az adatkönyvtárnak (%s) abszolút elérési útnak kell lennie",
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
index a94321be0b6..e882e6dae54 100644
--- a/lib/l10n/hu_HU.json
+++ b/lib/l10n/hu_HU.json
@@ -125,8 +125,6 @@
"Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges",
"Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!",
- "Error occurred while checking PostgreSQL version" : "Hiba történt a PostgreSQL verziójának ellenőrzése közben",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Kérjük gondoskodjon róla, hogy a PostgreSQL legalább 9-es verziójú legyen, vagy ellenőrizze a naplófájlokat, hogy mi okozta a hibát!",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!",
"Data directory (%s) is readable by other users" : "Az adatkönyvtár (%s) más felhasználók számára is olvasható ",
"Data directory (%s) must be an absolute path" : "Az adatkönyvtárnak (%s) abszolút elérési útnak kell lennie",
diff --git a/lib/l10n/id.js b/lib/l10n/id.js
index 70a47a4d87a..9d7842935da 100644
--- a/lib/l10n/id.js
+++ b/lib/l10n/id.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.",
"PostgreSQL >= 9 required" : "Diperlukan PostgreSQL >= 9",
"Please upgrade your database version" : "Mohon perbarui versi basis data Anda",
- "Error occurred while checking PostgreSQL version" : "Terjadi kesalahan saat memeriksa versi PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.",
"Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain",
"Data directory (%s) must be an absolute path" : "Direktori Data (%s) harus berupa lokasi lengkap",
diff --git a/lib/l10n/id.json b/lib/l10n/id.json
index 01f60eee2f7..f6a042e5dd7 100644
--- a/lib/l10n/id.json
+++ b/lib/l10n/id.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.",
"PostgreSQL >= 9 required" : "Diperlukan PostgreSQL >= 9",
"Please upgrade your database version" : "Mohon perbarui versi basis data Anda",
- "Error occurred while checking PostgreSQL version" : "Terjadi kesalahan saat memeriksa versi PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.",
"Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain",
"Data directory (%s) must be an absolute path" : "Direktori Data (%s) harus berupa lokasi lengkap",
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index 92fd849ef7e..ab6c5119c82 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
"PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
"Please upgrade your database version" : "Aggiorna la versione del tuo database",
- "Error occurred while checking PostgreSQL version" : "Si è verificato un errore durante il controllo della versione di PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assicurati di avere PostgreSQL >= 9 o controlla i log per ulteriori informazioni sull'errore",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.",
"Data directory (%s) is readable by other users" : "La cartella dei dati (%s) è leggibile dagli altri utenti",
"Data directory (%s) must be an absolute path" : "La cartella dei dati (%s) deve essere un percorso assoluto",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index 080f2e87986..0eb2ddd825a 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
"PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
"Please upgrade your database version" : "Aggiorna la versione del tuo database",
- "Error occurred while checking PostgreSQL version" : "Si è verificato un errore durante il controllo della versione di PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assicurati di avere PostgreSQL >= 9 o controlla i log per ulteriori informazioni sull'errore",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.",
"Data directory (%s) is readable by other users" : "La cartella dei dati (%s) è leggibile dagli altri utenti",
"Data directory (%s) must be an absolute path" : "La cartella dei dati (%s) deve essere un percorso assoluto",
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index d00866d4ba6..21375b53925 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
"Please upgrade your database version" : "新しいバージョンのデータベースにアップグレードしてください",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL のバージョンチェック中にエラーが発生しました",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。",
"Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます",
"Data directory (%s) must be an absolute path" : "データディレクトリ (%s) は、絶対パスである必要があります。",
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index e939520703e..204eb63787b 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
"Please upgrade your database version" : "新しいバージョンのデータベースにアップグレードしてください",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL のバージョンチェック中にエラーが発生しました",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。",
"Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます",
"Data directory (%s) must be an absolute path" : "データディレクトリ (%s) は、絶対パスである必要があります。",
diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js
index 5a35f149f03..41a7e1921f2 100644
--- a/lib/l10n/ko.js
+++ b/lib/l10n/ko.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.",
"PostgreSQL >= 9 required" : "PostgreSQL 버전 9 이상이 필요합니다",
"Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL 버전을 확인하는 중 오류가 발생했습니다",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.",
"Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음",
"Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함",
diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json
index deb80e00e98..193ddb2d27b 100644
--- a/lib/l10n/ko.json
+++ b/lib/l10n/ko.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.",
"PostgreSQL >= 9 required" : "PostgreSQL 버전 9 이상이 필요합니다",
"Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL 버전을 확인하는 중 오류가 발생했습니다",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.",
"Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음",
"Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함",
diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js
index 4f85c4975e0..a8ea9cca6ab 100644
--- a/lib/l10n/nb_NO.js
+++ b/lib/l10n/nb_NO.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves",
"Please upgrade your database version" : "Vennligst oppgrader versjonen av databasen din",
- "Error occurred while checking PostgreSQL version" : "Det oppstod en feil ved sjekking av PostgreSQL-versjon",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sjekk at du har PostgreSQL >= 9 eller sjekk loggene for mer informasjon om feilen",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Endre tillatelsene til 0770 slik at mappen ikke kan listes av andre brukere.",
"Data directory (%s) is readable by other users" : "Data-mappen (%s) kan leses av andre brukere",
"Data directory (%s) must be an absolute path" : "Datamappen (%s) må være en absolutt sti",
diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json
index 80f1ba19fc9..22a3154f8f3 100644
--- a/lib/l10n/nb_NO.json
+++ b/lib/l10n/nb_NO.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves",
"Please upgrade your database version" : "Vennligst oppgrader versjonen av databasen din",
- "Error occurred while checking PostgreSQL version" : "Det oppstod en feil ved sjekking av PostgreSQL-versjon",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sjekk at du har PostgreSQL >= 9 eller sjekk loggene for mer informasjon om feilen",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Endre tillatelsene til 0770 slik at mappen ikke kan listes av andre brukere.",
"Data directory (%s) is readable by other users" : "Data-mappen (%s) kan leses av andre brukere",
"Data directory (%s) must be an absolute path" : "Datamappen (%s) må være en absolutt sti",
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index d1cfc134c38..24e087a50f5 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vereist",
"Please upgrade your database version" : "Werk uw database versie bij",
- "Error occurred while checking PostgreSQL version" : "Een fout trad op bij checken PostgreSQL versie",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verifieer dat u PostgreSQL >=9 draait of check de logs voor meer informatie over deze fout",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Wijzig de permissies in 0770 zodat de directory niet door anderen bekeken kan worden.",
"Data directory (%s) is readable by other users" : "De datadirectory (%s) is leesbaar voor andere gebruikers",
"Data directory (%s) must be an absolute path" : "De datadirectory (%s) moet een absoluut pad hebben",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index a38fbdbecc4..691f3e08240 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vereist",
"Please upgrade your database version" : "Werk uw database versie bij",
- "Error occurred while checking PostgreSQL version" : "Een fout trad op bij checken PostgreSQL versie",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verifieer dat u PostgreSQL >=9 draait of check de logs voor meer informatie over deze fout",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Wijzig de permissies in 0770 zodat de directory niet door anderen bekeken kan worden.",
"Data directory (%s) is readable by other users" : "De datadirectory (%s) is leesbaar voor andere gebruikers",
"Data directory (%s) must be an absolute path" : "De datadirectory (%s) moet een absoluut pad hebben",
diff --git a/lib/l10n/oc.js b/lib/l10n/oc.js
index b304ccaeec0..e99298f3737 100644
--- a/lib/l10n/oc.js
+++ b/lib/l10n/oc.js
@@ -139,8 +139,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Demandatz a vòstre administrator servidor que reavie lo servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requesit",
"Please upgrade your database version" : "Metètz a jorn vòstre gestionari de banca de donadas",
- "Error occurred while checking PostgreSQL version" : "Una error s’es produsida pendent la recuperacion del numèro de version de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verificatz qu'utilizatz PostgreSQL >= 9 , o agachatz dins lo jornal d’error per mai d’informacions sus aqueste problèma",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambiatz las permissions del repertòri en mòde 0770 per fin que son contengut pòsca èsser listat pels autres utilizaires.",
"Data directory (%s) is readable by other users" : "Lo repertòri de donadas (%s) es legible pels autres utilizaires",
"Data directory (%s) must be an absolute path" : "Lo camin del dorsièr de donadas (%s) deu èsser absolut",
diff --git a/lib/l10n/oc.json b/lib/l10n/oc.json
index 2341f7d199b..8a835f35872 100644
--- a/lib/l10n/oc.json
+++ b/lib/l10n/oc.json
@@ -137,8 +137,6 @@
"Please ask your server administrator to restart the web server." : "Demandatz a vòstre administrator servidor que reavie lo servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requesit",
"Please upgrade your database version" : "Metètz a jorn vòstre gestionari de banca de donadas",
- "Error occurred while checking PostgreSQL version" : "Una error s’es produsida pendent la recuperacion del numèro de version de PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verificatz qu'utilizatz PostgreSQL >= 9 , o agachatz dins lo jornal d’error per mai d’informacions sus aqueste problèma",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambiatz las permissions del repertòri en mòde 0770 per fin que son contengut pòsca èsser listat pels autres utilizaires.",
"Data directory (%s) is readable by other users" : "Lo repertòri de donadas (%s) es legible pels autres utilizaires",
"Data directory (%s) must be an absolute path" : "Lo camin del dorsièr de donadas (%s) deu èsser absolut",
diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js
index e347fd6249a..ffb1120a117 100644
--- a/lib/l10n/pl.js
+++ b/lib/l10n/pl.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
"PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
"Please upgrade your database version" : "Uaktualnij wersję bazy danych",
- "Error occurred while checking PostgreSQL version" : "Wystąpił błąd podczas sprawdzania wersji PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Upewnij się, że PostgreSQL jest w wersji co najmniej 9 lub sprawdź log by uzyskać więcej informacji na temat błędu",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Zmień uprawnienia na 0770, żeby ukryć zawartość katalogu przed innymi użytkownikami.",
"Data directory (%s) is readable by other users" : "Katalog danych (%s) jest możliwy do odczytania przez innych użytkowników",
"Data directory (%s) is invalid" : "Katalog danych (%s) jest nieprawidłowy",
diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json
index 5f4151f4012..0ac37f3d01d 100644
--- a/lib/l10n/pl.json
+++ b/lib/l10n/pl.json
@@ -108,8 +108,6 @@
"Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
"PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
"Please upgrade your database version" : "Uaktualnij wersję bazy danych",
- "Error occurred while checking PostgreSQL version" : "Wystąpił błąd podczas sprawdzania wersji PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Upewnij się, że PostgreSQL jest w wersji co najmniej 9 lub sprawdź log by uzyskać więcej informacji na temat błędu",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Zmień uprawnienia na 0770, żeby ukryć zawartość katalogu przed innymi użytkownikami.",
"Data directory (%s) is readable by other users" : "Katalog danych (%s) jest możliwy do odczytania przez innych użytkowników",
"Data directory (%s) is invalid" : "Katalog danych (%s) jest nieprawidłowy",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 5939fc1f3ca..8078d369b76 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requirido",
"Please upgrade your database version" : "Por favor, atualize sua versão do banco de dados",
- "Error occurred while checking PostgreSQL version" : "Erro ao verificar a versão do PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, verifique se você tem PostgreSQL> = 9 ou verificar os logs para obter mais informações sobre o erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, altere as permissões para 0770 para que o diretório não possa ser listado por outros usuários.",
"Data directory (%s) is readable by other users" : "Diretório de dados (%s) pode ser lido por outros usuários",
"Data directory (%s) must be an absolute path" : "Diretório de dados (%s) deve ser um caminho absoluto",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index e25e14daa13..5987c1e2ac7 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 requirido",
"Please upgrade your database version" : "Por favor, atualize sua versão do banco de dados",
- "Error occurred while checking PostgreSQL version" : "Erro ao verificar a versão do PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, verifique se você tem PostgreSQL> = 9 ou verificar os logs para obter mais informações sobre o erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, altere as permissões para 0770 para que o diretório não possa ser listado por outros usuários.",
"Data directory (%s) is readable by other users" : "Diretório de dados (%s) pode ser lido por outros usuários",
"Data directory (%s) must be an absolute path" : "Diretório de dados (%s) deve ser um caminho absoluto",
diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js
index a4207e996ad..5cf4eb92fee 100644
--- a/lib/l10n/pt_PT.js
+++ b/lib/l10n/pt_PT.js
@@ -131,8 +131,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.",
"PostgreSQL >= 9 required" : "Necessita PostgreSQL >= 9",
"Please upgrade your database version" : "Por favor actualize a sua versão da base de dados",
- "Error occurred while checking PostgreSQL version" : "Ocorreu um erro enquanto pesquisava a versão do PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor confirme que tem o PostgreSQL >= 9 ou verifique os registos para mais informação sobre o erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor altere as permissões para 0770 para que esse directório não possa ser listado por outros utilizadores.",
"Data directory (%s) is readable by other users" : "O directório de dados (%s) é legível para outros utilizadores",
"Data directory (%s) must be an absolute path" : "Diretório de dados (%s) deve ser um caminho absoluto",
diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json
index 94a85e0d371..d4996db5942 100644
--- a/lib/l10n/pt_PT.json
+++ b/lib/l10n/pt_PT.json
@@ -129,8 +129,6 @@
"Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.",
"PostgreSQL >= 9 required" : "Necessita PostgreSQL >= 9",
"Please upgrade your database version" : "Por favor actualize a sua versão da base de dados",
- "Error occurred while checking PostgreSQL version" : "Ocorreu um erro enquanto pesquisava a versão do PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor confirme que tem o PostgreSQL >= 9 ou verifique os registos para mais informação sobre o erro",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor altere as permissões para 0770 para que esse directório não possa ser listado por outros utilizadores.",
"Data directory (%s) is readable by other users" : "O directório de dados (%s) é legível para outros utilizadores",
"Data directory (%s) must be an absolute path" : "Diretório de dados (%s) deve ser um caminho absoluto",
diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js
index 008fcd83349..92e739b7d54 100644
--- a/lib/l10n/ro.js
+++ b/lib/l10n/ro.js
@@ -51,7 +51,6 @@ OC.L10N.register(
"PHP modules have been installed, but they are still listed as missing?" : "Modulele PHP au fost instalate, dar apar ca lipsind?",
"PostgreSQL >= 9 required" : "Este necesară versiunea 9 sau mai mare a PostgreSQL",
"Please upgrade your database version" : "Actualizați baza de date la o versiune mai nouă",
- "Error occurred while checking PostgreSQL version" : "A apărut o eroare la verificarea versiunii PostgreSQL",
"Storage not available" : "Spațiu de stocare indisponibil"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json
index b23f99f410a..9f6abb00413 100644
--- a/lib/l10n/ro.json
+++ b/lib/l10n/ro.json
@@ -49,7 +49,6 @@
"PHP modules have been installed, but they are still listed as missing?" : "Modulele PHP au fost instalate, dar apar ca lipsind?",
"PostgreSQL >= 9 required" : "Este necesară versiunea 9 sau mai mare a PostgreSQL",
"Please upgrade your database version" : "Actualizați baza de date la o versiune mai nouă",
- "Error occurred while checking PostgreSQL version" : "A apărut o eroare la verificarea versiunii PostgreSQL",
"Storage not available" : "Spațiu de stocare indisponibil"
},"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/lib/l10n/ru.js b/lib/l10n/ru.js
index 58b05ccd2e5..6b5932c0b55 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.",
"PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
"Please upgrade your database version" : "Обновите базу данных",
- "Error occurred while checking PostgreSQL version" : "Произошла ошибка при проверке версии PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Убедитесь что версия PostgreSQL >= 9 или проверьте журналы для получения дополнительной информацией об ошибке",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.",
"Data directory (%s) is readable by other users" : "Каталог данных (%s) доступен для чтения другим пользователям",
"Data directory (%s) must be an absolute path" : "Директория данных (%s) должна иметь абсолютный путь",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index a5cf92180bb..62567fd749a 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.",
"PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
"Please upgrade your database version" : "Обновите базу данных",
- "Error occurred while checking PostgreSQL version" : "Произошла ошибка при проверке версии PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Убедитесь что версия PostgreSQL >= 9 или проверьте журналы для получения дополнительной информацией об ошибке",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.",
"Data directory (%s) is readable by other users" : "Каталог данных (%s) доступен для чтения другим пользователям",
"Data directory (%s) must be an absolute path" : "Директория данных (%s) должна иметь абсолютный путь",
diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js
index 395b45b0dc5..03d2671d2e8 100644
--- a/lib/l10n/sk_SK.js
+++ b/lib/l10n/sk_SK.js
@@ -138,8 +138,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
"PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
"Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
- "Error occurred while checking PostgreSQL version" : "Nastala chyba pri overovaní verzie PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prosím, uistite sa, že máte PostgreSQL >= 9 alebo sa pozrite do protokolu, kde nájdete podrobnejšie informácie o chybe",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.",
"Data directory (%s) is readable by other users" : "Priečinok dát (%s) je prístupný na čítanie ostatným používateľom",
"Data directory (%s) must be an absolute path" : "Priečinok dát (%s) musí byť zadaný ako absolútna cesta",
diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json
index 6fbfca2602b..2c09cdac580 100644
--- a/lib/l10n/sk_SK.json
+++ b/lib/l10n/sk_SK.json
@@ -136,8 +136,6 @@
"Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
"PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
"Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
- "Error occurred while checking PostgreSQL version" : "Nastala chyba pri overovaní verzie PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prosím, uistite sa, že máte PostgreSQL >= 9 alebo sa pozrite do protokolu, kde nájdete podrobnejšie informácie o chybe",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.",
"Data directory (%s) is readable by other users" : "Priečinok dát (%s) je prístupný na čítanie ostatným používateľom",
"Data directory (%s) must be an absolute path" : "Priečinok dát (%s) musí byť zadaný ako absolútna cesta",
diff --git a/lib/l10n/sl.js b/lib/l10n/sl.js
index 07a21c894fb..b84110995e2 100644
--- a/lib/l10n/sl.js
+++ b/lib/l10n/sl.js
@@ -120,8 +120,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
"PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
"Please upgrade your database version" : "Posodobite različico podatkovne zbirke.",
- "Error occurred while checking PostgreSQL version" : "Prišlo je do napake med preverjanjem različice PostgreSQL.",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prepričajte se, da je nameščena različica PostgreSQL >= 9 in preverite dnevniški zapis za več podrobnosti o napaki.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Spremenite dovoljenja mape na 0770 in s tem onemogočite branje vsebine drugim uporabnikom.",
"Data directory (%s) is readable by other users" : "Podatkovna mapa (%s) ima določena dovoljenja za branje skupine.",
"Data directory (%s) is invalid" : "Podatkovna mapa (%s) ni veljavna.",
diff --git a/lib/l10n/sl.json b/lib/l10n/sl.json
index ed518f770bb..7f70f881b31 100644
--- a/lib/l10n/sl.json
+++ b/lib/l10n/sl.json
@@ -118,8 +118,6 @@
"Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
"PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
"Please upgrade your database version" : "Posodobite različico podatkovne zbirke.",
- "Error occurred while checking PostgreSQL version" : "Prišlo je do napake med preverjanjem različice PostgreSQL.",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prepričajte se, da je nameščena različica PostgreSQL >= 9 in preverite dnevniški zapis za več podrobnosti o napaki.",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Spremenite dovoljenja mape na 0770 in s tem onemogočite branje vsebine drugim uporabnikom.",
"Data directory (%s) is readable by other users" : "Podatkovna mapa (%s) ima določena dovoljenja za branje skupine.",
"Data directory (%s) is invalid" : "Podatkovna mapa (%s) ni veljavna.",
diff --git a/lib/l10n/sq.js b/lib/l10n/sq.js
index 2cf6eeecdef..ff319d2a01f 100644
--- a/lib/l10n/sq.js
+++ b/lib/l10n/sq.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Ju lutemi, kërkojini përgjegjësit të shërbyesit tuaj të rinisë shërbyesin web.",
"PostgreSQL >= 9 required" : "Lypset PostgreSQL >= 9",
"Please upgrade your database version" : "Ju lutemi, përmirësoni bazën tuaj të të dhënave me një version më të ri.",
- "Error occurred while checking PostgreSQL version" : "Ndodhi një gabim teksa kontrollohej versioni i PostgreSQL-së",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ju lutemi, sigurohuni që keni PostgreSQL >= 9 ose kontrolloni regjistrat për më tepër të dhëna rreth gabimit",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ju lutemi, kalojani lejet në 0770, që kështu atë drejtori të mos mund ta shfaqin përdorues të tjerë.",
"Data directory (%s) is readable by other users" : "Drejtoria e të dhënave (%s) është e lexueshme nga përdorues të tjerë",
"Data directory (%s) must be an absolute path" : "Drejtoria e të dhënave (%s) duhet të jepë një shteg absolut",
diff --git a/lib/l10n/sq.json b/lib/l10n/sq.json
index ec412dfff53..200bfd7a9ca 100644
--- a/lib/l10n/sq.json
+++ b/lib/l10n/sq.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Ju lutemi, kërkojini përgjegjësit të shërbyesit tuaj të rinisë shërbyesin web.",
"PostgreSQL >= 9 required" : "Lypset PostgreSQL >= 9",
"Please upgrade your database version" : "Ju lutemi, përmirësoni bazën tuaj të të dhënave me një version më të ri.",
- "Error occurred while checking PostgreSQL version" : "Ndodhi një gabim teksa kontrollohej versioni i PostgreSQL-së",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ju lutemi, sigurohuni që keni PostgreSQL >= 9 ose kontrolloni regjistrat për më tepër të dhëna rreth gabimit",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ju lutemi, kalojani lejet në 0770, që kështu atë drejtori të mos mund ta shfaqin përdorues të tjerë.",
"Data directory (%s) is readable by other users" : "Drejtoria e të dhënave (%s) është e lexueshme nga përdorues të tjerë",
"Data directory (%s) must be an absolute path" : "Drejtoria e të dhënave (%s) duhet të jepë një shteg absolut",
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index 677c14b92cc..07fe91c176e 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -138,8 +138,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.",
"PostgreSQL >= 9 required" : "Захтеван је ПостгреСкул >= 9",
"Please upgrade your database version" : "Надоградите ваше издање базе",
- "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере издања програма ПостгреСкул",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате ПостгреСкул >= 9 или проверите дневнике записа за више информација о грешци",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Промените дозволе у 0770 како директоријуми не би могли бити излистани од стране других корисника.",
"Data directory (%s) is readable by other users" : "Директоријум података (%s) могу читати остали корисници",
"Data directory (%s) must be an absolute path" : "Директоријум података (%s) мора бити апсолутна путања",
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index 7ac58babca4..38349a02baf 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -136,8 +136,6 @@
"Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.",
"PostgreSQL >= 9 required" : "Захтеван је ПостгреСкул >= 9",
"Please upgrade your database version" : "Надоградите ваше издање базе",
- "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере издања програма ПостгреСкул",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате ПостгреСкул >= 9 или проверите дневнике записа за више информација о грешци",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Промените дозволе у 0770 како директоријуми не би могли бити излистани од стране других корисника.",
"Data directory (%s) is readable by other users" : "Директоријум података (%s) могу читати остали корисници",
"Data directory (%s) must be an absolute path" : "Директоријум података (%s) мора бити апсолутна путања",
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index f5e0ceaf114..a27ea06c152 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -112,8 +112,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
"Please upgrade your database version" : "Vänligen uppgradera din databas-version",
- "Error occurred while checking PostgreSQL version" : "Ett fel inträffade vid kontroll utav PostgreSQL-version",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Vänligen säkerställ att du har PostgreSQL >= 9 eller kolla loggarna för mer information om felet",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
"Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
"Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 415f8de7e08..2e85e4bd507 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -110,8 +110,6 @@
"Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
"Please upgrade your database version" : "Vänligen uppgradera din databas-version",
- "Error occurred while checking PostgreSQL version" : "Ett fel inträffade vid kontroll utav PostgreSQL-version",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Vänligen säkerställ att du har PostgreSQL >= 9 eller kolla loggarna för mer information om felet",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
"Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
"Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
diff --git a/lib/l10n/th_TH.js b/lib/l10n/th_TH.js
index d7cc862481a..4da409b7d88 100644
--- a/lib/l10n/th_TH.js
+++ b/lib/l10n/th_TH.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "โปรดสอบถามผู้ดูแลระบบเซิร์ฟเวอร์ของคุณเพื่อเริ่มการทำงานของเว็บเซิร์ฟเวอร์",
"PostgreSQL >= 9 required" : "จำเป็นต้องใช้ PostgreSQL รุ่น >= 9",
"Please upgrade your database version" : "กรุณาอัพเดทฐานข้อมูลของคุณ",
- "Error occurred while checking PostgreSQL version" : "เกิดข้อผิดพลาดขึ้นขณะที่การตรวจสอบรุ่นของ PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "กรุณาให้แน่ใจว่าคุณมี PostgreSQL รุ่น >= 9 หรือตรวจสอบบันทึกสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "กรุณาเปลี่ยนสิทธิ์การเข้าถึงเป็น 0770 เพื่อให้ไดเรกทอรีไม่สามารถแก้ไขโดยผู้ใช้อื่น",
"Data directory (%s) is readable by other users" : "ไดเรกทอรีข้อมูล (%s) สามารถอ่านได้โดยผู้ใช้อื่น",
"Data directory (%s) must be an absolute path" : "ไดเรกทอรีข้อมูล (%s) จะต้องเป็นเส้นทางที่แน่นอน",
diff --git a/lib/l10n/th_TH.json b/lib/l10n/th_TH.json
index 3a9fc838bd7..a21802be63a 100644
--- a/lib/l10n/th_TH.json
+++ b/lib/l10n/th_TH.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "โปรดสอบถามผู้ดูแลระบบเซิร์ฟเวอร์ของคุณเพื่อเริ่มการทำงานของเว็บเซิร์ฟเวอร์",
"PostgreSQL >= 9 required" : "จำเป็นต้องใช้ PostgreSQL รุ่น >= 9",
"Please upgrade your database version" : "กรุณาอัพเดทฐานข้อมูลของคุณ",
- "Error occurred while checking PostgreSQL version" : "เกิดข้อผิดพลาดขึ้นขณะที่การตรวจสอบรุ่นของ PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "กรุณาให้แน่ใจว่าคุณมี PostgreSQL รุ่น >= 9 หรือตรวจสอบบันทึกสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "กรุณาเปลี่ยนสิทธิ์การเข้าถึงเป็น 0770 เพื่อให้ไดเรกทอรีไม่สามารถแก้ไขโดยผู้ใช้อื่น",
"Data directory (%s) is readable by other users" : "ไดเรกทอรีข้อมูล (%s) สามารถอ่านได้โดยผู้ใช้อื่น",
"Data directory (%s) must be an absolute path" : "ไดเรกทอรีข้อมูล (%s) จะต้องเป็นเส้นทางที่แน่นอน",
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index e2bf3c5a659..89beff7d2e1 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -140,8 +140,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 gerekli",
"Please upgrade your database version" : "Lütfen veritabanı sürümünüzü yükseltin",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL sürümü denetlenirken hata oluştu",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 sürümüne sahip olduğunuzu doğrulayın veya hata hakkında daha fazla bilgi için günlükleri denetleyin",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Lütfen izinleri 0770 olarak ayarlayıp dizinin diğer kullanıcılar tarafından görülememesini sağlayın.",
"Data directory (%s) is readable by other users" : "Veri dizini (%s) diğer kullanıcılar tarafından okunabilir",
"Data directory (%s) must be an absolute path" : "Veri dizini (%s) tam yol olmalıdır",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index fafe0c26f7a..02b3549baca 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -138,8 +138,6 @@
"Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 gerekli",
"Please upgrade your database version" : "Lütfen veritabanı sürümünüzü yükseltin",
- "Error occurred while checking PostgreSQL version" : "PostgreSQL sürümü denetlenirken hata oluştu",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 sürümüne sahip olduğunuzu doğrulayın veya hata hakkında daha fazla bilgi için günlükleri denetleyin",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Lütfen izinleri 0770 olarak ayarlayıp dizinin diğer kullanıcılar tarafından görülememesini sağlayın.",
"Data directory (%s) is readable by other users" : "Veri dizini (%s) diğer kullanıcılar tarafından okunabilir",
"Data directory (%s) must be an absolute path" : "Veri dizini (%s) tam yol olmalıdır",
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index b2537139cc2..25bd609d82e 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -129,8 +129,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер.",
"PostgreSQL >= 9 required" : "Потрібно PostgreSQL> = 9",
"Please upgrade your database version" : "Оновіть версію бази даних",
- "Error occurred while checking PostgreSQL version" : "Сталася помилка при перевірці версії PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Переконайтеся що версія PostgreSQL> = 9 або перевірте журнали для отримання додаткової інформацією про помилку",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Змініть права доступу на 0770, щоб інші користувачі не могли отримати список файлів цього каталогу.",
"Data directory (%s) is readable by other users" : "Каталог даних (%s) доступний для читання іншим користувачам",
"Data directory (%s) must be an absolute path" : "Тека з даними (%s) має бути задана абсолютним шляхом",
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index f5b1bc77465..1d07831ae70 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -127,8 +127,6 @@
"Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер.",
"PostgreSQL >= 9 required" : "Потрібно PostgreSQL> = 9",
"Please upgrade your database version" : "Оновіть версію бази даних",
- "Error occurred while checking PostgreSQL version" : "Сталася помилка при перевірці версії PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Переконайтеся що версія PostgreSQL> = 9 або перевірте журнали для отримання додаткової інформацією про помилку",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Змініть права доступу на 0770, щоб інші користувачі не могли отримати список файлів цього каталогу.",
"Data directory (%s) is readable by other users" : "Каталог даних (%s) доступний для читання іншим користувачам",
"Data directory (%s) must be an absolute path" : "Тека з даними (%s) має бути задана абсолютним шляхом",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 1ec317736af..a0d17de2796 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -88,7 +88,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
"PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
"Please upgrade your database version" : "请升级您的数据库版本",
- "Error occurred while checking PostgreSQL version" : "检查 PostgreSQL 版本时发生了一个错误",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录。",
"Data directory (%s) is readable by other users" : "文件目录 (%s) 可以被其他用户读取",
"Data directory (%s) is invalid" : "文件目录 (%s) 无效",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index d1ec158a8d3..b6bd6642114 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -86,7 +86,6 @@
"Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
"PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
"Please upgrade your database version" : "请升级您的数据库版本",
- "Error occurred while checking PostgreSQL version" : "检查 PostgreSQL 版本时发生了一个错误",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录。",
"Data directory (%s) is readable by other users" : "文件目录 (%s) 可以被其他用户读取",
"Data directory (%s) is invalid" : "文件目录 (%s) 无效",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index 1284f83e541..2fd08b7a8f7 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -135,8 +135,6 @@ OC.L10N.register(
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
"Please upgrade your database version" : "請升級您的資料庫版本",
- "Error occurred while checking PostgreSQL version" : "檢查 PostgreSQL 版本時發生錯誤",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "請確定您的 PostgreSQL 版本 >= 9,或是看看記錄檔是否有更詳細的訊息",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "請將該目錄權限設定為 0770 ,以免其他使用者讀取",
"Data directory (%s) is readable by other users" : "資料目錄 (%s) 可以被其他使用者讀取",
"Data directory (%s) must be an absolute path" : "資料夾目錄(%s) 必須式絕對路徑",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index 93aeea2c6e1..25b16b9cae0 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -133,8 +133,6 @@
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
"Please upgrade your database version" : "請升級您的資料庫版本",
- "Error occurred while checking PostgreSQL version" : "檢查 PostgreSQL 版本時發生錯誤",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "請確定您的 PostgreSQL 版本 >= 9,或是看看記錄檔是否有更詳細的訊息",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "請將該目錄權限設定為 0770 ,以免其他使用者讀取",
"Data directory (%s) is readable by other users" : "資料目錄 (%s) 可以被其他使用者讀取",
"Data directory (%s) must be an absolute path" : "資料夾目錄(%s) 必須式絕對路徑",
diff --git a/lib/private/config.php b/lib/private/config.php
index 3ad800a00be..94b4fd56daa 100644
--- a/lib/private/config.php
+++ b/lib/private/config.php
@@ -234,7 +234,9 @@ class Config {
// File does not exist, this can happen when doing a fresh install
if(!is_resource ($filePointer)) {
- $url = \OC_Helper::linkToDocs('admin-dir_permissions');
+ // TODO fix this via DI once it is very clear that this doesn't cause side effects due to initialization order
+ // currently this breaks app routes but also could have other side effects especially during setup and exception handling
+ $url = \OC::$server->getURLGenerator()->linkToDocs('admin-dir_permissions');
throw new HintException(
"Can't write into config directory!",
'This can usually be fixed by '
diff --git a/lib/private/db/adapteroci8.php b/lib/private/db/adapteroci8.php
index 6e7857e6620..76c265bc178 100644
--- a/lib/private/db/adapteroci8.php
+++ b/lib/private/db/adapteroci8.php
@@ -26,6 +26,9 @@ namespace OC\DB;
class AdapterOCI8 extends Adapter {
public function lastInsertId($table) {
+ if (is_null($table)) {
+ throw new \InvalidArgumentException('Oracle requires a table name to be passed into lastInsertId()');
+ }
if ($table !== null) {
$suffix = '_SEQ';
$table = '"' . $table . $suffix . '"';
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index 1b86d3d383a..85b1b7cd5ea 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -214,8 +214,7 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
* @param string $seqName Name of the sequence object from which the ID should be returned.
* @return string A string representation of the last inserted ID.
*/
- public function lastInsertId($seqName = null)
- {
+ public function lastInsertId($seqName = null) {
if ($seqName) {
$seqName = $this->replaceTablePrefix($seqName);
}
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 40477243324..e6110c1925d 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -160,6 +160,7 @@ class Cache {
} else {
//fix types
$data['fileid'] = (int)$data['fileid'];
+ $data['parent'] = (int)$data['parent'];
$data['size'] = 0 + $data['size'];
$data['mtime'] = (int)$data['mtime'];
$data['storage_mtime'] = (int)$data['storage_mtime'];
@@ -391,12 +392,17 @@ class Cache {
if ($file === '') {
return -1;
} else {
- $parent = dirname($file);
- if ($parent === '.') {
- $parent = '';
- }
- return $this->getId($parent);
+ $parent = $this->getParentPath($file);
+ return (int) $this->getId($parent);
+ }
+ }
+
+ private function getParentPath($path) {
+ $parent = dirname($path);
+ if ($parent === '.') {
+ $parent = '';
}
+ return $parent;
}
/**
diff --git a/lib/private/files/cache/changepropagator.php b/lib/private/files/cache/changepropagator.php
index 9696a82257e..2a48eb13c59 100644
--- a/lib/private/files/cache/changepropagator.php
+++ b/lib/private/files/cache/changepropagator.php
@@ -22,6 +22,7 @@
namespace OC\Files\Cache;
+use OC\Files\Filesystem;
use OC\Hooks\BasicEmitter;
/**
@@ -61,23 +62,30 @@ class ChangePropagator extends BasicEmitter {
* @param int $time (optional) the mtime to set for the folders, if not set the current time is used
*/
public function propagateChanges($time = null) {
- $parents = $this->getAllParents();
- $this->changedFiles = array();
+ $changes = $this->getChanges();
+ $this->changedFiles = [];
if (!$time) {
$time = time();
}
- foreach ($parents as $parent) {
+ foreach ($changes as $change) {
/**
* @var \OC\Files\Storage\Storage $storage
* @var string $internalPath
*/
- list($storage, $internalPath) = $this->view->resolvePath($parent);
+ $absolutePath = $this->view->getAbsolutePath($change);
+ $mount = $this->view->getMount($change);
+ $storage = $mount->getStorage();
+ $internalPath = $mount->getInternalPath($absolutePath);
if ($storage) {
- $cache = $storage->getCache();
- $entry = $cache->get($internalPath);
- $cache->update($entry['fileid'], array('mtime' => max($time, $entry['mtime']), 'etag' => $storage->getETag($internalPath)));
- $this->emit('\OC\Files', 'propagate', [$parent, $entry]);
+ $propagator = $storage->getPropagator();
+ $propagatedEntries = $propagator->propagateChange($internalPath, $time);
+
+ foreach ($propagatedEntries as $entry) {
+ $absolutePath = Filesystem::normalizePath($mount->getMountPoint() . '/' . $entry['path']);
+ $relativePath = $this->view->getRelativePath($absolutePath);
+ $this->emit('\OC\Files', 'propagate', [$relativePath, $entry]);
+ }
}
}
}
diff --git a/lib/private/files/cache/propagator.php b/lib/private/files/cache/propagator.php
new file mode 100644
index 00000000000..bd11cef5990
--- /dev/null
+++ b/lib/private/files/cache/propagator.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Files\Cache;
+
+/**
+ * Propagate etags and mtimes within the storage
+ */
+class Propagator {
+ /**
+ * @var \OC\Files\Storage\Storage
+ */
+ protected $storage;
+
+ /**
+ * @param \OC\Files\Storage\Storage $storage
+ */
+ public function __construct(\OC\Files\Storage\Storage $storage) {
+ $this->storage = $storage;
+ }
+
+
+ /**
+ * @param string $internalPath
+ * @param int $time
+ * @return array[] all propagated entries
+ */
+ public function propagateChange($internalPath, $time) {
+ $cache = $this->storage->getCache($internalPath);
+
+ $parentId = $cache->getParentId($internalPath);
+ $propagatedEntries = [];
+ while ($parentId !== -1) {
+ $entry = $cache->get($parentId);
+ $propagatedEntries[] = $entry;
+ if (!$entry) {
+ return $propagatedEntries;
+ }
+ $mtime = max($time, $entry['mtime']);
+
+ $cache->update($parentId, ['mtime' => $mtime, 'etag' => $this->storage->getETag($entry['path'])]);
+
+ $parentId = $entry['parent'];
+ }
+
+ return $propagatedEntries;
+ }
+}
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php
index 85dcc8589de..4d11fa3a251 100644
--- a/lib/private/files/cache/updater.php
+++ b/lib/private/files/cache/updater.php
@@ -29,8 +29,6 @@ namespace OC\Files\Cache;
/**
* Update the cache and propagate changes
*
- * Unlike most other classes an Updater is not related to a specific storage but handles updates for all storages in a users filesystem.
- * This is needed because the propagation of mtime and etags need to cross storage boundaries
*/
class Updater {
/**
@@ -39,21 +37,33 @@ class Updater {
protected $enabled = true;
/**
- * @var \OC\Files\View
+ * @var \OC\Files\Storage\Storage
*/
- protected $view;
+ protected $storage;
/**
- * @var \OC\Files\Cache\ChangePropagator
+ * @var \OC\Files\Cache\Propagator
*/
protected $propagator;
/**
- * @param \OC\Files\View $view the view the updater works on, usually the view of the logged in user
+ * @var Scanner
*/
- public function __construct($view) {
- $this->view = $view;
- $this->propagator = new ChangePropagator($view);
+ protected $scanner;
+
+ /**
+ * @var Cache
+ */
+ protected $cache;
+
+ /**
+ * @param \OC\Files\Storage\Storage $storage
+ */
+ public function __construct(\OC\Files\Storage\Storage $storage) {
+ $this->storage = $storage;
+ $this->propagator = $storage->getPropagator();
+ $this->scanner = $storage->getScanner();
+ $this->cache = $storage->getCache();
}
/**
@@ -73,7 +83,7 @@ class Updater {
/**
* Get the propagator for etags and mtime for the view the updater works on
*
- * @return ChangePropagator
+ * @return Propagator
*/
public function getPropagator() {
return $this->propagator;
@@ -89,8 +99,7 @@ class Updater {
if (Scanner::isPartialFile($path)) {
return;
}
- $this->propagator->addChange($path);
- $this->propagator->propagateChanges($time);
+ $this->propagator->propagateChange($path, $time);
}
/**
@@ -103,20 +112,14 @@ class Updater {
if (!$this->enabled or Scanner::isPartialFile($path)) {
return;
}
- /**
- * @var \OC\Files\Storage\Storage $storage
- * @var string $internalPath
- */
- list($storage, $internalPath) = $this->view->resolvePath($path);
- if ($storage) {
- $this->propagator->addChange($path);
- $cache = $storage->getCache($internalPath);
- $scanner = $storage->getScanner($internalPath);
- $data = $scanner->scan($internalPath, Scanner::SCAN_SHALLOW, -1, false);
- $this->correctParentStorageMtime($storage, $internalPath);
- $cache->correctFolderSize($internalPath, $data);
- $this->propagator->propagateChanges($time);
+ if (is_null($time)) {
+ $time = time();
}
+
+ $data = $this->scanner->scan($path, Scanner::SCAN_SHALLOW, -1, false);
+ $this->correctParentStorageMtime($path);
+ $this->cache->correctFolderSize($path, $data);
+ $this->propagator->propagateChange($path, $time);
}
/**
@@ -128,87 +131,71 @@ class Updater {
if (!$this->enabled or Scanner::isPartialFile($path)) {
return;
}
- /**
- * @var \OC\Files\Storage\Storage $storage
- * @var string $internalPath
- */
- list($storage, $internalPath) = $this->view->resolvePath($path);
- if ($storage) {
- $parent = dirname($internalPath);
- if ($parent === '.') {
- $parent = '';
- }
- $this->propagator->addChange($path);
- $cache = $storage->getCache($internalPath);
- $cache->remove($internalPath);
- $cache->correctFolderSize($parent);
- $this->correctParentStorageMtime($storage, $internalPath);
- $this->propagator->propagateChanges();
+
+ $parent = dirname($path);
+ if ($parent === '.') {
+ $parent = '';
}
+
+ $this->cache->remove($path);
+ $this->cache->correctFolderSize($parent);
+ $this->correctParentStorageMtime($path);
+ $this->propagator->propagateChange($path, time());
}
/**
* Rename a file or folder in the cache and update the size, etag and mtime of the parent folders
*
+ * @param \OC\Files\Storage\Storage $sourceStorage
* @param string $source
* @param string $target
*/
- public function rename($source, $target) {
+ public function renameFromStorage(\OC\Files\Storage\Storage $sourceStorage, $source, $target) {
if (!$this->enabled or Scanner::isPartialFile($source) or Scanner::isPartialFile($target)) {
return;
}
- /**
- * @var \OC\Files\Storage\Storage $sourceStorage
- * @var \OC\Files\Storage\Storage $targetStorage
- * @var string $sourceInternalPath
- * @var string $targetInternalPath
- */
- list($sourceStorage, $sourceInternalPath) = $this->view->resolvePath($source);
- // if it's a moved mountpoint we dont need to do anything
- if ($sourceInternalPath === '') {
- return;
- }
- list($targetStorage, $targetInternalPath) = $this->view->resolvePath($target);
-
- if ($sourceStorage && $targetStorage) {
- $targetCache = $targetStorage->getCache($sourceInternalPath);
- if ($sourceStorage->getCache($sourceInternalPath)->inCache($sourceInternalPath)) {
- if ($targetCache->inCache($targetInternalPath)) {
- $targetCache->remove($targetInternalPath);
- }
- if ($sourceStorage === $targetStorage) {
- $targetCache->move($sourceInternalPath, $targetInternalPath);
- } else {
- $targetCache->moveFromCache($sourceStorage->getCache(), $sourceInternalPath, $targetInternalPath);
- }
+
+ $time = time();
+
+ $sourceCache = $sourceStorage->getCache($source);
+ $sourceUpdater = $sourceStorage->getUpdater();
+ $sourcePropagator = $sourceStorage->getPropagator();
+
+ if ($sourceCache->inCache($source)) {
+ if ($this->cache->inCache($target)) {
+ $this->cache->remove($target);
}
- if (pathinfo($sourceInternalPath, PATHINFO_EXTENSION) !== pathinfo($targetInternalPath, PATHINFO_EXTENSION)) {
- // handle mime type change
- $mimeType = $targetStorage->getMimeType($targetInternalPath);
- $fileId = $targetCache->getId($targetInternalPath);
- $targetCache->update($fileId, array('mimetype' => $mimeType));
+ if ($sourceStorage === $this->storage) {
+ $this->cache->move($source, $target);
+ } else {
+ $this->cache->moveFromCache($sourceCache, $source, $target);
}
+ }
- $targetCache->correctFolderSize($sourceInternalPath);
- $targetCache->correctFolderSize($targetInternalPath);
- $this->correctParentStorageMtime($sourceStorage, $sourceInternalPath);
- $this->correctParentStorageMtime($targetStorage, $targetInternalPath);
- $this->updateStorageMTimeOnly($targetStorage, $targetInternalPath);
- $this->propagator->addChange($source);
- $this->propagator->addChange($target);
- $this->propagator->propagateChanges();
+ if (pathinfo($source, PATHINFO_EXTENSION) !== pathinfo($target, PATHINFO_EXTENSION)) {
+ // handle mime type change
+ $mimeType = $this->storage->getMimeType($target);
+ $fileId = $this->cache->getId($target);
+ $this->cache->update($fileId, ['mimetype' => $mimeType]);
}
+
+ $sourceCache->correctFolderSize($source);
+ $this->cache->correctFolderSize($target);
+ $sourceUpdater->correctParentStorageMtime($source);
+ $this->correctParentStorageMtime($target);
+ $this->updateStorageMTimeOnly($target);
+ $sourcePropagator->propagateChange($source, $time);
+ $this->propagator->propagateChange($target, $time);
}
- private function updateStorageMTimeOnly($storage, $internalPath) {
- $cache = $storage->getCache();
- $fileId = $cache->getId($internalPath);
+ private function updateStorageMTimeOnly($internalPath) {
+ $fileId = $this->cache->getId($internalPath);
if ($fileId !== -1) {
- $cache->update(
+ $this->cache->update(
$fileId, [
'mtime' => null, // this magic tells it to not overwrite mtime
- 'storage_mtime' => $storage->filemtime($internalPath)
+ 'storage_mtime' => $this->storage->filemtime($internalPath)
]
);
}
@@ -217,20 +204,13 @@ class Updater {
/**
* update the storage_mtime of the direct parent in the cache to the mtime from the storage
*
- * @param \OC\Files\Storage\Storage $storage
* @param string $internalPath
*/
- private function correctParentStorageMtime($storage, $internalPath) {
- $cache = $storage->getCache();
- $parentId = $cache->getParentId($internalPath);
+ public function correctParentStorageMtime($internalPath) {
+ $parentId = $this->cache->getParentId($internalPath);
$parent = dirname($internalPath);
if ($parentId != -1) {
- $cache->update($parentId, array('storage_mtime' => $storage->filemtime($parent)));
+ $this->cache->update($parentId, array('storage_mtime' => $this->storage->filemtime($parent)));
}
}
-
- public function __destruct() {
- // propagate any leftover changes
- $this->propagator->propagateChanges();
- }
}
diff --git a/lib/private/files/fileinfo.php b/lib/private/files/fileinfo.php
index bb810dd45ed..5b5e8697004 100644
--- a/lib/private/files/fileinfo.php
+++ b/lib/private/files/fileinfo.php
@@ -62,6 +62,11 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
private $owner;
/**
+ * @var string[]
+ */
+ private $childEtags = [];
+
+ /**
* @param string|boolean $path
* @param Storage\Storage $storage
* @param string $internalPath
@@ -93,6 +98,8 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
public function offsetGet($offset) {
if ($offset === 'type') {
return $this->getType();
+ } else if ($offset === 'etag') {
+ return $this->getEtag();
} elseif (isset($this->data[$offset])) {
return $this->data[$offset];
} else {
@@ -153,7 +160,12 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
* @return string
*/
public function getEtag() {
- return $this->data['etag'];
+ if (count($this->childEtags) > 0) {
+ $combinedEtag = $this->data['etag'] . '::' . implode('::', $this->childEtags);
+ return md5($combinedEtag);
+ } else {
+ return $this->data['etag'];
+ }
}
/**
@@ -285,4 +297,26 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
public function getOwner() {
return $this->owner;
}
+
+ /**
+ * Add a cache entry which is the child of this folder
+ *
+ * Sets the size, etag and size to for cross-storage childs
+ *
+ * @param array $data cache entry for the child
+ * @param string $entryPath full path of the child entry
+ */
+ public function addSubEntry($data, $entryPath) {
+ $this->data['size'] += isset($data['size']) ? $data['size'] : 0;
+ if (isset($data['mtime'])) {
+ $this->data['mtime'] = max($this->data['mtime'], $data['mtime']);
+ }
+ if (isset($data['etag'])) {
+ // prefix the etag with the relative path of the subentry to propagate etag on mount moves
+ $relativeEntryPath = substr($entryPath, strlen($this->getPath()));
+ // attach the permissions to propagate etag on permision changes of submounts
+ $permissions = isset($data['permissions']) ? $data['permissions'] : 0;
+ $this->childEtags[] = $relativeEntryPath . '/' . $data['etag'] . $permissions;
+ }
+ }
}
diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php
index e108d7662d4..5ec05a3529e 100644
--- a/lib/private/files/objectstore/objectstorestorage.php
+++ b/lib/private/files/objectstore/objectstorestorage.php
@@ -370,7 +370,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
$stat['size'] = filesize($tmpFile);
$stat['mtime'] = $mTime;
$stat['storage_mtime'] = $mTime;
- $stat['mimetype'] = \OC_Helper::getMimeType($tmpFile);
+ $stat['mimetype'] = \OC::$server->getMimeTypeDetector()->detect($tmpFile);
$stat['etag'] = $this->getETag($path);
$fileId = $this->getCache()->put($path, $stat);
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 8e4958a930d..0cd67e343ff 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -37,7 +37,9 @@
namespace OC\Files\Storage;
use OC\Files\Cache\Cache;
+use OC\Files\Cache\Propagator;
use OC\Files\Cache\Scanner;
+use OC\Files\Cache\Updater;
use OC\Files\Filesystem;
use OC\Files\Cache\Watcher;
use OCP\Files\FileNameTooLongException;
@@ -64,7 +66,9 @@ abstract class Common implements Storage {
protected $cache;
protected $scanner;
protected $watcher;
+ protected $propagator;
protected $storageCache;
+ protected $updater;
protected $mountOptions = [];
@@ -345,6 +349,32 @@ abstract class Common implements Storage {
return $this->watcher;
}
+ /**
+ * get a propagator instance for the cache
+ *
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
+ * @return \OC\Files\Cache\Propagator
+ */
+ public function getPropagator($storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ if (!isset($this->propagator)) {
+ $this->propagator = new Propagator($storage);
+ }
+ return $this->propagator;
+ }
+
+ public function getUpdater($storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ if (!isset($this->updater)) {
+ $this->updater = new Updater($storage);
+ }
+ return $this->updater;
+ }
+
public function getStorageCache($storage = null) {
if (!$storage) {
$storage = $this;
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index dcde7b8029b..9147f572461 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -47,6 +47,7 @@ use OCP\Files\StorageNotAvailableException;
use OCP\Util;
use Sabre\DAV\Client;
use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\Xml\Property\ResourceType;
use Sabre\HTTP\ClientException;
use Sabre\HTTP\ClientHttpException;
@@ -137,7 +138,7 @@ class DAV extends Common {
$this->client->setThrowExceptions(true);
if ($this->secure === true && $this->certPath) {
- $this->client->addTrustedCertificates($this->certPath);
+ $this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
}
}
@@ -280,7 +281,8 @@ class DAV extends Common {
$response = $this->propfind($path);
$responseType = array();
if (isset($response["{DAV:}resourcetype"])) {
- $responseType = $response["{DAV:}resourcetype"]->resourceType;
+ /** @var ResourceType[] $response */
+ $responseType = $response["{DAV:}resourcetype"]->getValue();
}
return (count($responseType) > 0 and $responseType[0] == "{DAV:}collection") ? 'dir' : 'file';
} catch (ClientHttpException $e) {
@@ -554,7 +556,8 @@ class DAV extends Common {
$response = $this->propfind($path);
$responseType = array();
if (isset($response["{DAV:}resourcetype"])) {
- $responseType = $response["{DAV:}resourcetype"]->resourceType;
+ /** @var ResourceType[] $response */
+ $responseType = $response["{DAV:}resourcetype"]->getValue();
}
$type = (count($responseType) > 0 and $responseType[0] == "{DAV:}collection") ? 'dir' : 'file';
if ($type == 'dir') {
diff --git a/lib/private/files/storage/storage.php b/lib/private/files/storage/storage.php
index f46ac544b56..fb59752ede1 100644
--- a/lib/private/files/storage/storage.php
+++ b/lib/private/files/storage/storage.php
@@ -68,6 +68,22 @@ interface Storage extends \OCP\Files\Storage {
public function getWatcher($path = '', $storage = null);
/**
+ * get a propagator instance for the cache
+ *
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
+ * @return \OC\Files\Cache\Propagator
+ */
+ public function getPropagator($storage = null);
+
+ /**
+ * get a updater instance for the cache
+ *
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
+ * @return \OC\Files\Cache\Updater
+ */
+ public function getUpdater($storage = null);
+
+ /**
* @return \OC\Files\Cache\Storage
*/
public function getStorageCache();
diff --git a/lib/private/files/storage/wrapper/wrapper.php b/lib/private/files/storage/wrapper/wrapper.php
index 048738170db..81284c7aa69 100644
--- a/lib/private/files/storage/wrapper/wrapper.php
+++ b/lib/private/files/storage/wrapper/wrapper.php
@@ -430,6 +430,20 @@ class Wrapper implements \OC\Files\Storage\Storage {
return $this->storage->getWatcher($path, $storage);
}
+ public function getPropagator($storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ return $this->storage->getPropagator($storage);
+ }
+
+ public function getUpdater($storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ return $this->storage->getUpdater($storage);
+ }
+
/**
* @return \OC\Files\Cache\Storage
*/
diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php
index 4c328993ef7..585a697c5d1 100644
--- a/lib/private/files/stream/encryption.php
+++ b/lib/private/files/stream/encryption.php
@@ -167,7 +167,7 @@ class Encryption extends Wrapper {
)
));
- return self::wrapSource($source, $mode, $context, 'ocencryption', $wrapper);
+ return self::wrapSource($source, $context, 'ocencryption', $wrapper, $mode);
}
/**
@@ -181,7 +181,7 @@ class Encryption extends Wrapper {
* @return resource
* @throws \BadMethodCallException
*/
- protected static function wrapSource($source, $mode, $context, $protocol, $class) {
+ protected static function wrapSource($source, $context, $protocol, $class, $mode = 'r+') {
try {
stream_wrapper_register($protocol, $class);
if (@rewinddir($source) === false) {
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index cee4b182425..7854790d0e5 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -46,6 +46,7 @@ namespace OC\Files;
use Icewind\Streams\CallbackWrapper;
use OC\Files\Cache\Updater;
use OC\Files\Mount\MoveableMount;
+use OC\Files\Storage\Storage;
use OC\User\User;
use OCP\Files\FileNameTooLongException;
use OCP\Files\InvalidCharacterInPathException;
@@ -76,9 +77,6 @@ class View {
/** @var string */
private $fakeRoot = '';
- /** @var \OC\Files\Cache\Updater */
- protected $updater;
-
/**
* @var \OCP\Lock\ILockingProvider
*/
@@ -86,6 +84,8 @@ class View {
private $lockingEnabled;
+ private $updaterEnabled = true;
+
/**
* @param string $root
* @throws \Exception If $root contains an invalid path
@@ -99,7 +99,6 @@ class View {
}
$this->fakeRoot = $root;
- $this->updater = new Updater($this);
$this->lockingProvider = \OC::$server->getLockingProvider();
$this->lockingEnabled = !($this->lockingProvider instanceof \OC\Lock\NoopLockingProvider);
}
@@ -286,6 +285,35 @@ class View {
}
}
+ public function disableCacheUpdate() {
+ $this->updaterEnabled = false;
+ }
+
+ public function enableCacheUpdate() {
+ $this->updaterEnabled = true;
+ }
+
+ protected function writeUpdate(Storage $storage, $internalPath, $time = null) {
+ if ($this->updaterEnabled) {
+ if (is_null($time)) {
+ $time = time();
+ }
+ $storage->getUpdater()->update($internalPath, $time);
+ }
+ }
+
+ protected function removeUpdate(Storage $storage, $internalPath) {
+ if ($this->updaterEnabled) {
+ $storage->getUpdater()->remove($internalPath);
+ }
+ }
+
+ protected function renameUpdate(Storage $sourceStorage, Storage $targetStorage, $sourceInternalPath, $targetInternalPath) {
+ if ($this->updaterEnabled) {
+ $targetStorage->getUpdater()->renameFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
+ }
+ }
+
/**
* @param string $path
* @return bool|mixed
@@ -569,7 +597,7 @@ class View {
fclose($target);
fclose($data);
- $this->updater->update($path);
+ $this->writeUpdate($storage, $internalPath);
$this->changeLock($path, ILockingProvider::LOCK_SHARED);
@@ -703,14 +731,11 @@ class View {
if ((Cache\Scanner::isPartialFile($path1) && !Cache\Scanner::isPartialFile($path2)) && $result !== false) {
// if it was a rename from a part file to a regular file it was a write and not a rename operation
- $this->updater->update($path2);
+
+ $this->writeUpdate($storage2, $internalPath2);
} else if ($result) {
if ($internalPath1 !== '') { // dont do a cache update for moved mounts
- $this->updater->rename($path1, $path2);
- } else { // only do etag propagation
- $this->getUpdater()->getPropagator()->addChange($path1);
- $this->getUpdater()->getPropagator()->addChange($path2);
- $this->getUpdater()->getPropagator()->propagateChanges();
+ $this->renameUpdate($storage1, $storage2, $internalPath1, $internalPath2);
}
}
@@ -807,7 +832,7 @@ class View {
$result = $storage2->copyFromStorage($storage1, $internalPath1, $internalPath2);
}
- $this->updater->update($path2);
+ $this->writeUpdate($storage2, $internalPath2);
$this->changeLock($path2, ILockingProvider::LOCK_SHARED);
$lockTypePath2 = ILockingProvider::LOCK_SHARED;
@@ -1017,6 +1042,7 @@ class View {
}
$run = $this->runHooks($hooks, $path);
+ /** @var \OC\Files\Storage\Storage $storage */
list($storage, $internalPath) = Filesystem::resolvePath($absolutePath . $postFix);
if ($run and $storage) {
if (in_array('write', $hooks) || in_array('delete', $hooks)) {
@@ -1038,13 +1064,13 @@ class View {
}
if (in_array('delete', $hooks) and $result) {
- $this->updater->remove($path);
+ $this->removeUpdate($storage, $internalPath);
}
if (in_array('write', $hooks) and $operation !== 'fopen') {
- $this->updater->update($path);
+ $this->writeUpdate($storage, $internalPath);
}
if (in_array('touch', $hooks)) {
- $this->updater->update($path, $extraParam);
+ $this->writeUpdate($storage, $internalPath, $extraParam);
}
if ((in_array('write', $hooks) || in_array('delete', $hooks)) && ($operation !== 'fopen' || $result === false)) {
@@ -1179,6 +1205,48 @@ class View {
}
/**
+ * Get file info from cache
+ *
+ * If the file is not in cached it will be scanned
+ * If the file has changed on storage the cache will be updated
+ *
+ * @param \OC\Files\Storage\Storage $storage
+ * @param string $internalPath
+ * @param string $relativePath
+ * @return array|bool
+ */
+ private function getCacheEntry($storage, $internalPath, $relativePath) {
+ $cache = $storage->getCache($internalPath);
+ $data = $cache->get($internalPath);
+ $watcher = $storage->getWatcher($internalPath);
+
+ try {
+ // if the file is not in the cache or needs to be updated, trigger the scanner and reload the data
+ if (!$data || $data['size'] === -1) {
+ $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED);
+ if (!$storage->file_exists($internalPath)) {
+ $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
+ return false;
+ }
+ $scanner = $storage->getScanner($internalPath);
+ $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
+ $data = $cache->get($internalPath);
+ $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
+ } else if (!Cache\Scanner::isPartialFile($internalPath) && $watcher->needsUpdate($internalPath, $data)) {
+ $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED);
+ $watcher->update($internalPath, $data);
+ $storage->getPropagator()->propagateChange($internalPath, time());
+ $data = $cache->get($internalPath);
+ $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
+ }
+ } catch (LockedException $e) {
+ // if the file is locked we just use the old cache info
+ }
+
+ return $data;
+ }
+
+ /**
* get the filesystem info
*
* @param string $path
@@ -1189,9 +1257,8 @@ class View {
*/
public function getFileInfo($path, $includeMountPoints = true) {
$this->assertPathLength($path);
- $data = array();
if (!Filesystem::isValidPath($path)) {
- return $data;
+ return false;
}
if (Cache\Scanner::isPartialFile($path)) {
return $this->getPartFileInfo($path);
@@ -1202,48 +1269,27 @@ class View {
$mount = Filesystem::getMountManager()->find($path);
$storage = $mount->getStorage();
$internalPath = $mount->getInternalPath($path);
- $data = null;
if ($storage) {
- $cache = $storage->getCache($internalPath);
+ $data = $this->getCacheEntry($storage, $internalPath, $relativePath);
- $data = $cache->get($internalPath);
- $watcher = $storage->getWatcher($internalPath);
+ if (!is_array($data)) {
+ return false;
+ }
- try {
- // if the file is not in the cache or needs to be updated, trigger the scanner and reload the data
- if (!$data) {
- $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED);
- if (!$storage->file_exists($internalPath)) {
- $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
- return false;
- }
- $scanner = $storage->getScanner($internalPath);
- $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
- $data = $cache->get($internalPath);
- $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
- } else if (!Cache\Scanner::isPartialFile($internalPath) && $watcher->needsUpdate($internalPath, $data)) {
- $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED);
- $watcher->update($internalPath, $data);
- $this->updater->propagate($path);
- $data = $cache->get($internalPath);
- $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED);
- }
- } catch (LockedException $e) {
- // if the file is locked we just use the old cache info
+ if ($mount instanceof MoveableMount && $internalPath === '') {
+ $data['permissions'] |= \OCP\Constants::PERMISSION_DELETE;
}
+ $owner = $this->getUserObjectForOwner($storage->getOwner($internalPath));
+ $info = new FileInfo($path, $storage, $internalPath, $data, $mount, $owner);
+
if ($data and isset($data['fileid'])) {
- // upgrades from oc6 or lower might not have the permissions set in the file cache
- if ($data['permissions'] === 0) {
- $data['permissions'] = $storage->getPermissions($data['path']);
- $cache->update($data['fileid'], array('permissions' => $data['permissions']));
- }
if ($includeMountPoints and $data['mimetype'] === 'httpd/unix-directory') {
//add the sizes of other mount points to the folder
$extOnly = ($includeMountPoints === 'ext');
- $mountPoints = Filesystem::getMountPoints($path);
- foreach ($mountPoints as $mountPoint) {
- $subStorage = Filesystem::getStorage($mountPoint);
+ $mounts = Filesystem::getMountManager()->findIn($path);
+ foreach ($mounts as $mount) {
+ $subStorage = $mount->getStorage();
if ($subStorage) {
// exclude shared storage ?
if ($extOnly && $subStorage instanceof \OC\Files\Storage\Shared) {
@@ -1251,22 +1297,16 @@ class View {
}
$subCache = $subStorage->getCache('');
$rootEntry = $subCache->get('');
- $data['size'] += isset($rootEntry['size']) ? $rootEntry['size'] : 0;
+ $info->addSubEntry($rootEntry, $mount->getMountPoint());
}
}
}
}
- }
- if (!$data) {
- return false;
- }
- if ($mount instanceof MoveableMount && $internalPath === '') {
- $data['permissions'] |= \OCP\Constants::PERMISSION_DELETE;
+ return $info;
}
- $owner = $this->getUserObjectForOwner($storage->getOwner($internalPath));
- return new FileInfo($path, $storage, $internalPath, $data, $mount, $owner);
+ return false;
}
/**
@@ -1278,9 +1318,8 @@ class View {
*/
public function getDirectoryContent($directory, $mimetype_filter = '') {
$this->assertPathLength($directory);
- $result = array();
if (!Filesystem::isValidPath($directory)) {
- return $result;
+ return [];
}
$path = $this->getAbsolutePath($directory);
$path = Filesystem::normalizePath($path);
@@ -1291,50 +1330,25 @@ class View {
$cache = $storage->getCache($internalPath);
$user = \OC_User::getUser();
- /**
- * @var \OC\Files\FileInfo[] $files
- */
- $files = array();
+ $data = $this->getCacheEntry($storage, $internalPath, $directory);
- $data = $cache->get($internalPath);
- $watcher = $storage->getWatcher($internalPath);
- try {
- if (!$data or $data['size'] === -1) {
- $this->lockFile($directory, ILockingProvider::LOCK_SHARED);
- if (!$storage->file_exists($internalPath)) {
- $this->unlockFile($directory, ILockingProvider::LOCK_SHARED);
- return array();
- }
- $scanner = $storage->getScanner($internalPath);
- $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
- $data = $cache->get($internalPath);
- $this->unlockFile($directory, ILockingProvider::LOCK_SHARED);
- } else if ($watcher->needsUpdate($internalPath, $data)) {
- $this->lockFile($directory, ILockingProvider::LOCK_SHARED);
- $watcher->update($internalPath, $data);
- $this->updater->propagate($path);
- $data = $cache->get($internalPath);
- $this->unlockFile($directory, ILockingProvider::LOCK_SHARED);
- }
- } catch (LockedException $e) {
- // if the file is locked we just use the old cache info
+ if (!is_array($data) || !isset($data['fileid'])) {
+ return [];
}
$folderId = $data['fileid'];
$contents = $cache->getFolderContentsById($folderId); //TODO: mimetype_filter
- foreach ($contents as $content) {
- if ($content['permissions'] === 0) {
- $content['permissions'] = $storage->getPermissions($content['path']);
- $cache->update($content['fileid'], array('permissions' => $content['permissions']));
- }
- // if sharing was disabled for the user we remove the share permissions
+ /**
+ * @var \OC\Files\FileInfo[] $files
+ */
+ $files = array_map(function (array $content) use ($path, $storage, $mount) {
if (\OCP\Util::isSharingDisabledForUser()) {
$content['permissions'] = $content['permissions'] & ~\OCP\Constants::PERMISSION_SHARE;
}
$owner = $this->getUserObjectForOwner($storage->getOwner($content['path']));
- $files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content, $mount, $owner);
- }
+ return new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content, $mount, $owner);
+ }, $contents);
//add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders
$mounts = Filesystem::getMountManager()->findIn($path);
@@ -1345,7 +1359,8 @@ class View {
if ($subStorage) {
$subCache = $subStorage->getCache('');
- if ($subCache->getStatus('') === Cache\Cache::NOT_FOUND) {
+ $rootEntry = $subCache->get('');
+ if (!$rootEntry) {
$subScanner = $subStorage->getScanner('');
try {
$subScanner->scanFile('');
@@ -1363,17 +1378,17 @@ class View {
);
continue;
}
+ $rootEntry = $subCache->get('');
}
- $rootEntry = $subCache->get('');
if ($rootEntry) {
$relativePath = trim(substr($mountPoint, $dirLength), '/');
if ($pos = strpos($relativePath, '/')) {
//mountpoint inside subfolder add size to the correct folder
$entryName = substr($relativePath, 0, $pos);
foreach ($files as &$entry) {
- if ($entry['name'] === $entryName) {
- $entry['size'] += $rootEntry['size'];
+ if ($entry->getName() === $entryName) {
+ $entry->addSubEntry($rootEntry, $mountPoint);
}
}
} else { //mountpoint in this folder, add an entry for it
@@ -1410,23 +1425,23 @@ class View {
}
if ($mimetype_filter) {
- foreach ($files as $file) {
+ $files = array_filter($files, function (FileInfo $file) use ($mimetype_filter) {
if (strpos($mimetype_filter, '/')) {
- if ($file['mimetype'] === $mimetype_filter) {
+ if ($file->getMimetype() === $mimetype_filter) {
$result[] = $file;
}
} else {
- if ($file['mimepart'] === $mimetype_filter) {
+ if ($file->getMimePart() === $mimetype_filter) {
$result[] = $file;
}
}
- }
- } else {
- $result = $files;
+ });
}
- }
- return $result;
+ return $files;
+ } else {
+ return [];
+ }
}
/**
@@ -1707,13 +1722,6 @@ class View {
}
/**
- * @return Updater
- */
- public function getUpdater() {
- return $this->updater;
- }
-
- /**
* @param string $path
* @param string $fileName
* @throws InvalidPathException
diff --git a/lib/private/helper.php b/lib/private/helper.php
index ee2f520fe2b..fb8e38cc26e 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -82,15 +82,6 @@ class OC_Helper {
}
/**
- * @param string $key
- * @return string url to the online documentation
- * @deprecated Use \OC::$server->getURLGenerator()->linkToDocs($key)
- */
- public static function linkToDocs($key) {
- return OC::$server->getURLGenerator()->linkToDocs($key);
- }
-
- /**
* Creates an absolute url
* @param string $app app
* @param string $file file
@@ -402,18 +393,6 @@ class OC_Helper {
}
/**
- * get the mimetype form a local file
- *
- * @param string $path
- * @return string
- * does NOT work for ownClouds filesystem, use OC_FileSystem::getMimeType instead
- * @deprecated 8.2.0 Use \OC::$server->getMimeTypeDetector()->detect($path)
- */
- static function getMimeType($path) {
- return \OC::$server->getMimeTypeDetector()->detect($path);
- }
-
- /**
* Get a secure mimetype that won't expose potential XSS.
*
* @param string $mimeType
@@ -645,37 +624,6 @@ class OC_Helper {
}
/**
- * replaces a copy of string delimited by the start and (optionally) length parameters with the string given in replacement.
- *
- * @param string $string
- * @param string $replacement The replacement string.
- * @param int $start If start is positive, the replacing will begin at the start'th offset into string. If start is negative, the replacing will begin at the start'th character from the end of string.
- * @param int $length Length of the part to be replaced
- * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8
- * @return string
- * @deprecated 8.2.0 Use substr_replace() instead.
- */
- public static function mb_substr_replace($string, $replacement, $start, $length = 0, $encoding = 'UTF-8') {
- return substr_replace($string, $replacement, $start, $length);
- }
-
- /**
- * Replace all occurrences of the search string with the replacement string
- *
- * @param string $search The value being searched for, otherwise known as the needle.
- * @param string $replace The replacement
- * @param string $subject The string or array being searched and replaced on, otherwise known as the haystack.
- * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8
- * @param int $count If passed, this will be set to the number of replacements performed.
- * @return string
- * @deprecated 8.2.0 Use str_replace() instead.
- *
- */
- public static function mb_str_replace($search, $replace, $subject, $encoding = 'UTF-8', &$count = null) {
- return str_replace($search, $replace, $subject, $count);
- }
-
- /**
* performs a search in a nested array
* @param array $haystack the array to be searched
* @param string $needle the search string
diff --git a/lib/private/installer.php b/lib/private/installer.php
index 86968a7c189..021e496392f 100644
--- a/lib/private/installer.php
+++ b/lib/private/installer.php
@@ -278,7 +278,7 @@ class OC_Installer{
}
//detect the archive type
- $mime=OC_Helper::getMimeType($path);
+ $mime = \OC::$server->getMimeTypeDetector()->detect($path);
if ($mime !=='application/zip' && $mime !== 'application/x-gzip' && $mime !== 'application/x-bzip2') {
throw new \Exception($l->t("Archives of type %s are not supported", array($mime)));
}
diff --git a/lib/private/notification/inotification.php b/lib/private/notification/inotification.php
index b79b7f6d9d3..0187abab152 100644
--- a/lib/private/notification/inotification.php
+++ b/lib/private/notification/inotification.php
@@ -76,10 +76,11 @@ interface INotification {
/**
* @param string $type
- * @param int $id
+ * @param string $id
* @return $this
- * @throws \InvalidArgumentException if the object type or id are invalid
+ * @throws \InvalidArgumentException if the object type or id is invalid
* @since 8.2.0
+ * @changed 9.0.0 Type of $id changed to string
*/
public function setObject($type, $id);
@@ -90,8 +91,9 @@ interface INotification {
public function getObjectType();
/**
- * @return int
+ * @return string
* @since 8.2.0
+ * @changed 9.0.0 Return type changed to string
*/
public function getObjectId();
diff --git a/lib/private/notification/notification.php b/lib/private/notification/notification.php
index a22d5446f45..70964fc0366 100644
--- a/lib/private/notification/notification.php
+++ b/lib/private/notification/notification.php
@@ -35,7 +35,7 @@ class Notification implements INotification {
/** @var string */
protected $objectType;
- /** @var int */
+ /** @var string */
protected $objectId;
/** @var string */
@@ -83,7 +83,7 @@ class Notification implements INotification {
$this->dateTime = new \DateTime();
$this->dateTime->setTimestamp(0);
$this->objectType = '';
- $this->objectId = 0;
+ $this->objectId = '';
$this->subject = '';
$this->subjectParameters = [];
$this->subjectParsed = '';
@@ -164,10 +164,11 @@ class Notification implements INotification {
/**
* @param string $type
- * @param int $id
+ * @param string $id
* @return $this
* @throws \InvalidArgumentException if the object type or id is invalid
* @since 8.2.0
+ * @changed 9.0.0 Type of $id changed to string
*/
public function setObject($type, $id) {
if (!is_string($type) || $type === '' || isset($type[64])) {
@@ -175,10 +176,10 @@ class Notification implements INotification {
}
$this->objectType = $type;
- if (!is_int($id)) {
+ if (!is_int($id) && (!is_string($id) || $id === '' || isset($id[64]))) {
throw new \InvalidArgumentException('The given object id is invalid');
}
- $this->objectId = $id;
+ $this->objectId = (string) $id;
return $this;
}
@@ -191,8 +192,9 @@ class Notification implements INotification {
}
/**
- * @return int
+ * @return string
* @since 8.2.0
+ * @changed 9.0.0 Return type changed to string
*/
public function getObjectId() {
return $this->objectId;
@@ -443,7 +445,7 @@ class Notification implements INotification {
&&
$this->getObjectType() !== ''
&&
- $this->getObjectId() !== 0
+ $this->getObjectId() !== ''
;
}
}
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index d377708a268..1308c99f804 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -2332,22 +2332,7 @@ class Share extends Constants {
$id = false;
if ($result) {
- $id = \OC::$server->getDatabaseConnection()->lastInsertId();
- // Fallback, if lastInterId() doesn't work we need to perform a select
- // to get the ID (seems to happen sometimes on Oracle)
- if (!$id) {
- $getId = \OC_DB::prepare('
- SELECT `id`
- FROM`*PREFIX*share`
- WHERE `uid_owner` = ? AND `item_target` = ? AND `item_source` = ? AND `stime` = ?
- ');
- $r = $getId->execute(array($shareData['uidOwner'], $shareData['itemTarget'], $shareData['itemSource'], $shareData['shareTime']));
- if ($r) {
- $row = $r->fetchRow();
- $id = $row['id'];
- }
- }
-
+ $id = \OC::$server->getDatabaseConnection()->lastInsertId('*PREFIX*share');
}
return $id;
@@ -2581,7 +2566,10 @@ class Share extends Constants {
$result = self::tryHttpPost($url, $fields);
$status = json_decode($result['result'], true);
- return ($result['success'] && $status['ocs']['meta']['statuscode'] === 100);
+ if ($result['success'] && $status['ocs']['meta']['statuscode'] === 100) {
+ \OC_Hook::emit('OCP\Share', 'federated_share_added', ['server' => $remote]);
+ return true;
+ }
}
diff --git a/lib/private/share20/defaultshareprovider.php b/lib/private/share20/defaultshareprovider.php
index 7f21d3aadf5..bc3bc0ce9ed 100644
--- a/lib/private/share20/defaultshareprovider.php
+++ b/lib/private/share20/defaultshareprovider.php
@@ -23,65 +23,78 @@ namespace OC\Share20;
use OC\Share20\Exception\ShareNotFound;
use OC\Share20\Exception\BackendError;
use OCP\IUser;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\Files\IRootFolder;
+use OCP\IDBConnection;
+use OCP\Files\Node;
class DefaultShareProvider implements IShareProvider {
- /** @var \OCP\IDBConnection */
+ /** @var IDBConnection */
private $dbConn;
- /** @var \OCP\IUserManager */
+ /** @var IUserManager */
private $userManager;
- /** @var \OCP\IGroupManager */
+ /** @var IGroupManager */
private $groupManager;
- /** @var \OCP\Files\Folder */
- private $userFolder;
+ /** @var IRootFolder */
+ private $rootFolder;
- public function __construct(\OCP\IDBConnection $connection,
- \OCP\IUserManager $userManager,
- \OCP\IGroupManager $groupManager,
- \OCP\Files\Folder $userFolder) {
+ /**
+ * DefaultShareProvider constructor.
+ *
+ * @param IDBConnection $connection
+ * @param IUserManager $userManager
+ * @param IGroupManager $groupManager
+ * @param IRootFolder $rootFolder
+ */
+ public function __construct(
+ IDBConnection $connection,
+ IUserManager $userManager,
+ IGroupManager $groupManager,
+ IRootFolder $rootFolder) {
$this->dbConn = $connection;
$this->userManager = $userManager;
$this->groupManager = $groupManager;
- $this->userFolder = $userFolder;
+ $this->rootFolder = $rootFolder;
}
/**
* Share a path
*
- * @param Share $share
- * @return Share The share object
+ * @param IShare $share
+ * @return IShare The share object
*/
- public function create(Share $share) {
- throw new \Exception();
+ public function create(IShare $share) {
}
/**
* Update a share
*
- * @param Share $share
- * @return Share The share object
+ * @param IShare $share
+ * @return IShare The share object
*/
- public function update(Share $share) {
- throw new \Exception();
+ public function update(IShare $share) {
}
/**
- * Get all childre of this share
+ * Get all children of this share
*
- * @param IShare $share
+ * @param IShare $parent
* @return IShare[]
*/
- private function getChildren(IShare $share) {
+ public function getChildren(IShare $parent) {
$children = [];
$qb = $this->dbConn->getQueryBuilder();
$qb->select('*')
->from('share')
->where($qb->expr()->eq('parent', $qb->createParameter('parent')))
- ->setParameter(':parent', $share->getId());
+ ->setParameter(':parent', $parent->getId())
+ ->orderBy('id');
$cursor = $qb->execute();
while($data = $cursor->fetch()) {
@@ -93,50 +106,15 @@ class DefaultShareProvider implements IShareProvider {
}
/**
- * Delete all the children of this share
- *
- * @param IShare $share
- */
- protected function deleteChildren(IShare $share) {
- foreach($this->getChildren($share) as $child) {
- $this->delete($child);
- }
- }
-
- /**
* Delete a share
*
- * @param Share $share
+ * @param IShare $share
* @throws BackendError
*/
public function delete(IShare $share) {
- $this->deleteChildren($share);
-
// Fetch share to make sure it exists
$share = $this->getShareById($share->getId());
- $shareType = $share->getShareType();
- $sharedWith = '';
- if ($shareType === \OCP\Share::SHARE_TYPE_USER) {
- $sharedWith = $share->getSharedWith()->getUID();
- } else if ($shareType === \OCP\Share::SHARE_TYPE_GROUP) {
- $sharedWith = $share->getSharedWith()->getGID();
- }
-
- $hookParams = [
- 'id' => $share->getId(),
- 'itemType' => $share->getPath() instanceof \OCP\Files\File ? 'file' : 'folder',
- 'itemSource' => $share->getPath()->getId(),
- 'shareType' => $shareType,
- 'shareWith' => $sharedWith,
- 'itemparent' => $share->getParent(),
- 'uidOwner' => $share->getSharedBy()->getUID(),
- 'fileSource' => $share->getPath()->getId(),
- 'fileTarget' => $share->getTarget()
- ];
-
- \OC_Hook::emit('OCP\Share', 'pre_unshare', $hookParams);
-
$qb = $this->dbConn->getQueryBuilder();
$qb->delete('share')
->where($qb->expr()->eq('id', $qb->createParameter('id')))
@@ -147,8 +125,6 @@ class DefaultShareProvider implements IShareProvider {
} catch (\Exception $e) {
throw new BackendError();
}
-
- \OC_Hook::emit('OCP\Share', 'post_unshare', $hookParams);
}
/**
@@ -161,7 +137,6 @@ class DefaultShareProvider implements IShareProvider {
* @return Share[]
*/
public function getShares(IUser $user, $shareType, $offset, $limit) {
- throw new \Exception();
}
/**
@@ -195,11 +170,11 @@ class DefaultShareProvider implements IShareProvider {
/**
* Get shares for a given path
*
+ * @param \OCP\IUser $user
* @param \OCP\Files\Node $path
- * @param Share[]
+ * @return IShare[]
*/
- public function getSharesByPath(\OCP\IUser $user, \OCP\Files\Node $path) {
- throw new \Exception();
+ public function getSharesByPath(IUser $user, Node $path) {
}
/**
@@ -210,7 +185,6 @@ class DefaultShareProvider implements IShareProvider {
* @param Share
*/
public function getSharedWithMe(IUser $user, $shareType = null) {
- throw new \Exception();
}
/**
@@ -221,7 +195,6 @@ class DefaultShareProvider implements IShareProvider {
* @param Share
*/
public function getShareByToken($token, $password = null) {
- throw new \Exception();
}
/**
@@ -253,14 +226,14 @@ class DefaultShareProvider implements IShareProvider {
$share->setSharedBy($this->userManager->get($data['uid_owner']));
// TODO: getById can return an array. How to handle this properly??
- $path = $this->userFolder->getById($data['file_source']);
- $path = $path[0];
- $share->setPath($path);
+ $folder = $this->rootFolder->getUserFolder($share->getSharedBy()->getUID());
+ $path = $folder->getById((int)$data['file_source'])[0];
- $owner = $path->getStorage()->getOwner('.');
- if ($owner !== false) {
- $share->setShareOwner($this->userManager->get($owner));
- }
+ $owner = $path->getOwner();
+ $share->setShareOwner($owner);
+
+ $path = $this->rootFolder->getUserFolder($owner->getUID())->getById((int)$data['file_source'])[0];
+ $share->setPath($path);
if ($data['expiration'] !== null) {
$expiration = \DateTime::createFromFormat('Y-m-d H:i:s', $data['expiration']);
@@ -270,5 +243,4 @@ class DefaultShareProvider implements IShareProvider {
return $share;
}
-
-}
+} \ No newline at end of file
diff --git a/lib/private/share20/ishare.php b/lib/private/share20/ishare.php
index a80abebd71c..2e54da7a029 100644
--- a/lib/private/share20/ishare.php
+++ b/lib/private/share20/ishare.php
@@ -38,7 +38,7 @@ interface IShare {
/**
* Set the path of this share
*
- * @param File|Folder $path
+ * @param Node $path
* @return Share The modified object
*/
public function setPath(Node $path);
diff --git a/lib/private/share20/ishareprovider.php b/lib/private/share20/ishareprovider.php
index b3f4eb6868f..56a550acf71 100644
--- a/lib/private/share20/ishareprovider.php
+++ b/lib/private/share20/ishareprovider.php
@@ -29,23 +29,23 @@ interface IShareProvider {
/**
* Share a path
*
- * @param Share $share
- * @return Share The share object
+ * @param IShare $share
+ * @return IShare The share object
*/
- public function create(Share $share);
+ public function create(IShare $share);
/**
* Update a share
*
- * @param Share $share
- * @return Share The share object
+ * @param IShare $share
+ * @return IShare The share object
*/
- public function update(Share $share);
+ public function update(IShare $share);
/**
* Delete a share
*
- * @param Share $share
+ * @param IShare $share
* @throws BackendError
*/
public function delete(IShare $share);
@@ -71,10 +71,19 @@ interface IShareProvider {
public function getShareById($id);
/**
+ * Get children
+ *
+ * @param IShare $parent
+ * @return IShare[]
+ */
+ public function getChildren(IShare $parent);
+
+ /**
* Get shares for a given path
*
+ * @param \OCP\IUser $user
* @param \OCP\Files\Node $path
- * @param Share[]
+ * @return IShare[]
*/
public function getSharesByPath(\OCP\IUser $user, \OCP\Files\Node $path);
diff --git a/lib/private/share20/manager.php b/lib/private/share20/manager.php
index 52e43a9aa9f..882b281c490 100644
--- a/lib/private/share20/manager.php
+++ b/lib/private/share20/manager.php
@@ -22,11 +22,7 @@ namespace OC\Share20;
use OCP\IAppConfig;
-use OCP\IUserManager;
-use OCP\IGroupManager;
-use OCP\IUser;
use OCP\ILogger;
-use OCP\Files\Folder;
use OC\Share20\Exception\ShareNotFound;
@@ -40,37 +36,26 @@ class Manager {
*/
private $defaultProvider;
- /** @var IUser */
- private $currentUser;
-
- /** @var IUserManager */
- private $userManager;
-
- /** @var IGroupManager */
- private $groupManager;
-
/** @var ILogger */
private $logger;
/** @var IAppConfig */
private $appConfig;
- /** @var IFolder */
- private $userFolder;
-
- public function __construct(IUser $user,
- IUserManager $userManager,
- IGroupManager $groupManager,
- ILogger $logger,
- IAppConfig $appConfig,
- Folder $userFolder,
- IShareProvider $defaultProvider) {
- $this->currentUser = $user;
- $this->userManager = $userManager;
- $this->groupManager = $groupManager;
+ /**
+ * Manager constructor.
+ *
+ * @param ILogger $logger
+ * @param IAppConfig $appConfig
+ * @param IShareProvider $defaultProvider
+ */
+ public function __construct(
+ ILogger $logger,
+ IAppConfig $appConfig,
+ IShareProvider $defaultProvider
+ ) {
$this->logger = $logger;
$this->appConfig = $appConfig;
- $this->userFolder = $userFolder;
// TEMP SOLUTION JUST TO GET STARTED
$this->defaultProvider = $defaultProvider;
@@ -78,12 +63,11 @@ class Manager {
/**
* Share a path
- *
+ *
* @param Share $share
* @return Share The share object
*/
public function createShare(Share $share) {
- throw new \Exception();
}
/**
@@ -93,22 +77,87 @@ class Manager {
* @return Share The share object
*/
public function updateShare(Share $share) {
- throw new \Exception();
+ }
+
+ /**
+ * Delete all the children of this share
+ *
+ * @param IShare $share
+ * @return IShare[] List of deleted shares
+ */
+ protected function deleteChildren(IShare $share) {
+ $deletedShares = [];
+ foreach($this->defaultProvider->getChildren($share) as $child) {
+ $deletedChildren = $this->deleteChildren($child);
+ $deletedShares = array_merge($deletedShares, $deletedChildren);
+
+ $this->defaultProvider->delete($child);
+ $deletedShares[] = $child;
+ }
+
+ return $deletedShares;
}
/**
* Delete a share
*
- * @param Share $share
+ * @param IShare $share
* @throws ShareNotFound
* @throws \OC\Share20\Exception\BackendError
*/
public function deleteShare(IShare $share) {
- if ($share->getId() === null) {
- throw new ShareNotFound();
- }
-
+ // Just to make sure we have all the info
+ $share = $this->getShareById($share->getId());
+
+ $formatHookParams = function(IShare $share) {
+ // Prepare hook
+ $shareType = $share->getShareType();
+ $sharedWith = '';
+ if ($shareType === \OCP\Share::SHARE_TYPE_USER) {
+ $sharedWith = $share->getSharedWith()->getUID();
+ } else if ($shareType === \OCP\Share::SHARE_TYPE_GROUP) {
+ $sharedWith = $share->getSharedWith()->getGID();
+ } else if ($shareType === \OCP\Share::SHARE_TYPE_REMOTE) {
+ $sharedWith = $share->getSharedWith();
+ }
+
+ $hookParams = [
+ 'id' => $share->getId(),
+ 'itemType' => $share->getPath() instanceof \OCP\Files\File ? 'file' : 'folder',
+ 'itemSource' => $share->getPath()->getId(),
+ 'shareType' => $shareType,
+ 'shareWith' => $sharedWith,
+ 'itemparent' => $share->getParent(),
+ 'uidOwner' => $share->getSharedBy()->getUID(),
+ 'fileSource' => $share->getPath()->getId(),
+ 'fileTarget' => $share->getTarget()
+ ];
+ return $hookParams;
+ };
+
+ $hookParams = $formatHookParams($share);
+
+ // Emit pre-hook
+ \OC_Hook::emit('OCP\Share', 'pre_unshare', $hookParams);
+
+ // Get all children and delete them as well
+ $deletedShares = $this->deleteChildren($share);
+
+ // Do the actual delete
$this->defaultProvider->delete($share);
+
+ // All the deleted shares caused by this delete
+ $deletedShares[] = $share;
+
+ //Format hook info
+ $formattedDeletedShares = array_map(function($share) use ($formatHookParams) {
+ return $formatHookParams($share);
+ }, $deletedShares);
+
+ $hookParams['deletedShares'] = $formattedDeletedShares;
+
+ // Emit post hook
+ \OC_Hook::emit('OCP\Share', 'post_unshare', $hookParams);
}
/**
@@ -119,7 +168,6 @@ class Manager {
* @return Share[]
*/
public function getShares($page=0, $perPage=50) {
- throw new \Exception();
}
/**
@@ -131,14 +179,12 @@ class Manager {
* @throws ShareNotFound
*/
public function getShareById($id) {
- $share = $this->defaultProvider->getShareById($id);
-
- if ($share->getSharedWith() !== $this->currentUser &&
- $share->getSharedBy() !== $this->currentUser &&
- $share->getShareOwner() !== $this->currentUser) {
+ if ($id === null) {
throw new ShareNotFound();
}
+ $share = $this->defaultProvider->getShareById($id);
+
return $share;
}
@@ -152,7 +198,6 @@ class Manager {
* @return Share[]
*/
public function getSharesByPath(\OCP\Files\Node $path, $page=0, $perPage=50) {
- throw new \Exception();
}
/**
@@ -165,7 +210,6 @@ class Manager {
* @return Share[]
*/
public function getSharedWithMe($shareType = null, $page=0, $perPage=50) {
- throw new \Exception();
}
/**
@@ -176,10 +220,9 @@ class Manager {
*
* @return Share
*
- * @throws ShareNotFoundException
+ * @throws ShareNotFound
*/
public function getShareByToken($token, $password=null) {
- throw new \Exception();
}
/**
@@ -207,6 +250,5 @@ class Manager {
* @param \OCP\Files\Node $path
*/
public function getAccessList(\OCP\Files\Node $path) {
- throw new \Exception();
}
}
diff --git a/lib/private/share20/share.php b/lib/private/share20/share.php
index 4200816799e..b7ce38ac61d 100644
--- a/lib/private/share20/share.php
+++ b/lib/private/share20/share.php
@@ -58,7 +58,7 @@ class Share implements IShare {
/**
* Set the id of the share
*
- * @param int id
+ * @param string $id
* @return Share The modified object
*/
public function setId($id) {
@@ -292,7 +292,7 @@ class Share implements IShare {
/**
* Set the target of this share
*
- * @param string target
+ * @param string $target
* @return Share The modified object
*/
public function setTarget($target) {
diff --git a/lib/private/template/functions.php b/lib/private/template/functions.php
index 1c6eaa9a389..79d18632d2f 100644
--- a/lib/private/template/functions.php
+++ b/lib/private/template/functions.php
@@ -30,7 +30,7 @@
/**
* Prints a sanitized string
- * @param string|array $string the string which will be escaped and printed
+ * @param string $string the string which will be escaped and printed
*/
function p($string) {
print(OC_Util::sanitizeHTML($string));
@@ -154,7 +154,7 @@ function link_to( $app, $file, $args = array() ) {
* @return string url to the online documentation
*/
function link_to_docs($key) {
- return OC_Helper::linkToDocs($key);
+ return \OC::$server->getURLGenerator()->linkToDocs($key);
}
/**
diff --git a/lib/private/util.php b/lib/private/util.php
index 69f01c22be9..84a8c49c383 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -621,6 +621,9 @@ class OC_Util {
$webServerRestart = false;
$setup = new \OC\Setup($config, \OC::$server->getIniWrapper(), \OC::$server->getL10N('lib'),
new \OC_Defaults(), \OC::$server->getLogger(), \OC::$server->getSecureRandom());
+
+ $urlGenerator = \OC::$server->getURLGenerator();
+
$availableDatabases = $setup->getSupportedDatabases();
if (empty($availableDatabases)) {
$errors[] = array(
@@ -649,7 +652,7 @@ class OC_Util {
'error' => $l->t('Cannot write into "config" directory'),
'hint' => $l->t('This can usually be fixed by '
. '%sgiving the webserver write access to the config directory%s.',
- array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
+ array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
);
}
@@ -664,7 +667,7 @@ class OC_Util {
'hint' => $l->t('This can usually be fixed by '
. '%sgiving the webserver write access to the apps directory%s'
. ' or disabling the appstore in the config file.',
- array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
+ array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
);
}
}
@@ -679,14 +682,14 @@ class OC_Util {
'error' => $l->t('Cannot create "data" directory (%s)', array($CONFIG_DATADIRECTORY)),
'hint' => $l->t('This can usually be fixed by '
. '<a href="%s" target="_blank">giving the webserver write access to the root directory</a>.',
- array(OC_Helper::linkToDocs('admin-dir_permissions')))
+ array($urlGenerator->linkToDocs('admin-dir_permissions')))
);
}
} else if (!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) {
//common hint for all file permissions error messages
$permissionsHint = $l->t('Permissions can usually be fixed by '
. '%sgiving the webserver write access to the root directory%s.',
- array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'));
+ array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'));
$errors[] = array(
'error' => 'Data directory (' . $CONFIG_DATADIRECTORY . ') not writable by ownCloud',
'hint' => $permissionsHint
diff --git a/lib/public/comments/icomment.php b/lib/public/comments/icomment.php
new file mode 100644
index 00000000000..c8f407624a0
--- /dev/null
+++ b/lib/public/comments/icomment.php
@@ -0,0 +1,199 @@
+<?php
+
+namespace OCP\Comments;
+
+/**
+ * Interface IComment
+ *
+ * This class represents a comment and offers methods for modification.
+ *
+ * @package OCP\Comments
+ * @since 9.0.0
+ */
+interface IComment {
+
+ /**
+ * returns the ID of the comment
+ *
+ * It may return an empty string, if the comment was not stored.
+ * It is expected that the concrete Comment implementation gives an ID
+ * by itself (e.g. after saving).
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getId();
+
+ /**
+ * sets the ID of the comment and returns itself
+ *
+ * It is only allowed to set the ID only, if the current id is an empty
+ * string (which means it is not stored in a database, storage or whatever
+ * the concrete implementation does), or vice versa. Changing a given ID is
+ * not permitted and must result in an IllegalIDChangeException.
+ *
+ * @param string $id
+ * @return IComment
+ * @throws IllegalIDChangeException
+ * @since 9.0.0
+ */
+ public function setId($id);
+
+ /**
+ * returns the parent ID of the comment
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getParentId();
+
+ /**
+ * sets the parent ID and returns itself
+ *
+ * @param string $parentId
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setParentId($parentId);
+
+ /**
+ * returns the number of children
+ *
+ * @return int
+ * @since 9.0.0
+ */
+ public function getChildrenCount();
+
+ /**
+ * sets the number of children
+ *
+ * @param int $count
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setChildrenCount($count);
+
+ /**
+ * returns the message of the comment
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getMessage();
+
+ /**
+ * sets the message of the comment and returns itself
+ *
+ * @param string $message
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setMessage($message);
+
+ /**
+ * returns the verb of the comment
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getVerb();
+
+ /**
+ * sets the verb of the comment, e.g. 'comment' or 'like'
+ *
+ * @param string $verb
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setVerb($verb);
+
+ /**
+ * returns the actor type
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getActorType();
+
+ /**
+ * returns the actor ID
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getActorId();
+
+ /**
+ * sets (overwrites) the actor type and id
+ *
+ * @param string $actorType e.g. 'user'
+ * @param string $actorId e.g. 'zombie234'
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setActor($actorType, $actorId);
+
+ /**
+ * returns the creation date of the comment.
+ *
+ * If not explicitly set, it shall default to the time of initialization.
+ *
+ * @return \DateTime
+ * @since 9.0.0
+ */
+ public function getCreationDateTime();
+
+ /**
+ * sets the creation date of the comment and returns itself
+ *
+ * @param \DateTime $dateTime
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setCreationDateTime(\DateTime $dateTime);
+
+ /**
+ * returns the date of the most recent child
+ *
+ * @return \DateTime
+ * @since 9.0.0
+ */
+ public function getLatestChildDateTime();
+
+ /**
+ * sets the date of the most recent child
+ *
+ * @param \DateTime $dateTime
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setLatestChildDateTime(\DateTime $dateTime);
+
+ /**
+ * returns the object type the comment is attached to
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getObjectType();
+
+ /**
+ * returns the object id the comment is attached to
+ *
+ * @return string
+ * @since 9.0.0
+ */
+ public function getObjectId();
+
+ /**
+ * sets (overwrites) the object of the comment
+ *
+ * @param string $objectType e.g. 'file'
+ * @param string $objectId e.g. '16435'
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function setObject($objectType, $objectId);
+
+}
+
diff --git a/lib/public/comments/icommentsmanager.php b/lib/public/comments/icommentsmanager.php
new file mode 100644
index 00000000000..ebf7a34bf27
--- /dev/null
+++ b/lib/public/comments/icommentsmanager.php
@@ -0,0 +1,161 @@
+<?php
+
+namespace OCP\Comments;
+
+/**
+ * Interface ICommentsManager
+ *
+ * This class manages the access to comments
+ *
+ * @package OCP\Comments
+ * @since 9.0.0
+ */
+interface ICommentsManager {
+
+ /**
+ * returns a comment instance
+ *
+ * @param string $id the ID of the comment
+ * @return IComment
+ * @throws NotFoundException
+ * @since 9.0.0
+ */
+ public function get($id);
+
+ /**
+ * returns the comment specified by the id and all it's child comments
+ *
+ * @param string $id
+ * @param int $limit max number of entries to return, 0 returns all
+ * @param int $offset the start entry
+ * @return []
+ * @since 9.0.0
+ *
+ * The return array looks like this
+ * [
+ * 'comment' => IComment, // root comment
+ * 'replies' =>
+ * [
+ * 0 =>
+ * [
+ * 'comment' => IComment,
+ * 'replies' =>
+ * [
+ * 0 =>
+ * [
+ * 'comment' => IComment,
+ * 'replies' => [ … ]
+ * ],
+ * …
+ * ]
+ * ]
+ * 1 =>
+ * [
+ * 'comment' => IComment,
+ * 'replies'=> [ … ]
+ * ],
+ * …
+ * ]
+ * ]
+ */
+ public function getTree($id, $limit = 0, $offset = 0);
+
+ /**
+ * returns comments for a specific object (e.g. a file).
+ *
+ * The sort order is always newest to oldest.
+ *
+ * @param string $objectType the object type, e.g. 'files'
+ * @param string $objectId the id of the object
+ * @param int $limit optional, number of maximum comments to be returned. if
+ * not specified, all comments are returned.
+ * @param int $offset optional, starting point
+ * @param \DateTime $notOlderThan optional, timestamp of the oldest comments
+ * that may be returned
+ * @return IComment[]
+ * @throws NotFoundException in case the requested type or id is not present
+ * @since 9.0.0
+ */
+ public function getForObject(
+ $objectType,
+ $objectId,
+ $limit = 0,
+ $offset = 0,
+ \DateTime $notOlderThan = null
+ );
+
+ /**
+ * @param $objectType string the object type, e.g. 'files'
+ * @param $objectId string the id of the object
+ * @return Int
+ * @throws NotFoundException in case the requested type or id is not present
+ * @since 9.0.0
+ */
+ public function getNumberOfCommentsForObject($objectType, $objectId);
+
+ /**
+ * creates a new comment and returns it. At this point of time, it is not
+ * saved in the used data storage. Use save() after setting other fields
+ * of the comment (e.g. message or verb).
+ *
+ * @param string $actorType the actor type (e.g. 'user')
+ * @param string $actorId a user id
+ * @param string $objectType the object type the comment is attached to
+ * @param string $objectId the object id the comment is attached to
+ * @return IComment
+ * @since 9.0.0
+ */
+ public function create($actorType, $actorId, $objectType, $objectId);
+
+ /**
+ * permanently deletes the comment specified by the ID
+ *
+ * When the comment has child comments, their parent ID will be changed to
+ * the parent ID of the item that is to be deleted.
+ *
+ * @param string $id
+ * @return bool
+ * @since 9.0.0
+ */
+ public function delete($id);
+
+ /**
+ * saves the comment permanently and returns it
+ *
+ * if the supplied comment has an empty ID, a new entry comment will be
+ * saved and the instance updated with the new ID.
+ *
+ * Otherwise, an existing comment will be updated.
+ *
+ * Throws NotFoundException when a comment that is to be updated does not
+ * exist anymore at this point of time.
+ *
+ * @param IComment
+ * @return bool
+ * @throws NotFoundException
+ * @since 9.0.0
+ */
+ public function save(&$comment);
+
+ /**
+ * removes references to specific actor (e.g. on user delete) of a comment.
+ * The comment itself must not get lost/deleted.
+ *
+ * @param string $actorType the actor type (e.g. 'user')
+ * @param string $actorId a user id
+ * @return boolean
+ * @since 9.0.0
+ */
+ public function deleteReferencesOfActor($actorType, $actorId);
+
+ /**
+ * deletes all comments made of a specific object (e.g. on file delete)
+ *
+ * @param string $objectType the object type (e.g. 'file')
+ * @param string $objectId e.g. the file id
+ * @return boolean
+ * @since 9.0.0
+ */
+ public function deleteCommentsAtObject($objectType, $objectId);
+
+}
diff --git a/lib/public/comments/illegalidchangeexception.php b/lib/public/comments/illegalidchangeexception.php
new file mode 100644
index 00000000000..4e13ef6e444
--- /dev/null
+++ b/lib/public/comments/illegalidchangeexception.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace OCP\Comments;
+
+/**
+ * Exception for illegal attempts to modify a comment ID
+ * @since 9.0.0
+ */
+class IllegalIDChangeException extends \Exception {}
diff --git a/lib/public/comments/notfoundexception.php b/lib/public/comments/notfoundexception.php
new file mode 100644
index 00000000000..a82e703b79e
--- /dev/null
+++ b/lib/public/comments/notfoundexception.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace OCP\Comments;
+
+/**
+ * Exception for not found entity
+ * @since 9.0.0
+ */
+class NotFoundException extends \Exception {}
diff --git a/lib/public/files.php b/lib/public/files.php
index c1dcffcbefb..e3582375f38 100644
--- a/lib/public/files.php
+++ b/lib/public/files.php
@@ -60,7 +60,7 @@ class Files {
* @since 5.0.0
*/
static function getMimeType( $path ) {
- return(\OC_Helper::getMimeType( $path ));
+ return \OC::$server->getMimeTypeDetector()->detect($path);
}
/**
diff --git a/lib/public/files/node.php b/lib/public/files/node.php
index 866b9b6f61f..aa1115f8c28 100644
--- a/lib/public/files/node.php
+++ b/lib/public/files/node.php
@@ -225,12 +225,4 @@ interface Node extends FileInfo {
* @since 6.0.0
*/
public function getName();
-
- /**
- * Get the file owner
- *
- * @since 9.0.0
- * @return string
- */
- public function getOwner();
}
diff --git a/lib/public/util.php b/lib/public/util.php
index 07bc47c18b4..50fe9185006 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -544,7 +544,7 @@ class Util {
* @deprecated 8.2.0 Use substr_replace() instead.
*/
public static function mb_substr_replace($string, $replacement, $start, $length = null, $encoding = 'UTF-8') {
- return(\OC_Helper::mb_substr_replace($string, $replacement, $start, $length, $encoding));
+ return substr_replace($string, $replacement, $start, $length);
}
/**
@@ -560,7 +560,7 @@ class Util {
* @deprecated 8.2.0 Use str_replace() instead.
*/
public static function mb_str_replace($search, $replace, $subject, $encoding = 'UTF-8', &$count = null) {
- return(\OC_Helper::mb_str_replace($search, $replace, $subject, $encoding, $count));
+ return str_replace($search, $replace, $subject, $count);
}
/**
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index a0c762076bb..2034a6650e7 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -12,12 +12,10 @@ OC.L10N.register(
"Log" : "Log",
"Tips & tricks" : "Tipps & Tricks",
"Updates" : "Updates",
- "Authentication error" : "Authentifizierungsfehler",
- "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
- "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Language changed" : "Sprache geändert",
"Invalid request" : "Fehlerhafte Anfrage",
+ "Authentication error" : "Authentifizierungsfehler",
"Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
"Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
"Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
@@ -53,6 +51,8 @@ OC.L10N.register(
"Invalid user" : "Ungültiger Benutzer",
"Unable to change mail address" : "E-Mail-Adresse konnte nicht geändert werden",
"Email saved" : "E-Mail-Adresse gespeichert",
+ "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du wirklich sicher, dass Du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warte, bis die Migration beendet ist",
@@ -80,6 +80,7 @@ OC.L10N.register(
"Uninstall" : "Deinstallieren",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Du wirst in 5 Sekunden zu Aktualisierungsseite weitergeleitet",
"App update" : "App aktualisiert",
+ "No apps found for \"{query}\"" : "Es wurden keine Apps für \"{query}\"",
"An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
"Select a profile picture" : "Wähle ein Profilbild",
"Very weak password" : "Sehr schwaches Passwort",
@@ -185,6 +186,7 @@ OC.L10N.register(
"More" : "Mehr",
"Less" : "Weniger",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!",
+ "What to log" : "Was für ein Protokoll",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite wird als Datenbank verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Kommandozeile: 'occ db:convert-type', oder in die <a target=\"_blank\" href=\"%s\">Dokumentation ↗</a> schauen.",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index be68541cab9..31f677bd66b 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -10,12 +10,10 @@
"Log" : "Log",
"Tips & tricks" : "Tipps & Tricks",
"Updates" : "Updates",
- "Authentication error" : "Authentifizierungsfehler",
- "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
- "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Language changed" : "Sprache geändert",
"Invalid request" : "Fehlerhafte Anfrage",
+ "Authentication error" : "Authentifizierungsfehler",
"Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
"Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
"Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
@@ -51,6 +49,8 @@
"Invalid user" : "Ungültiger Benutzer",
"Unable to change mail address" : "E-Mail-Adresse konnte nicht geändert werden",
"Email saved" : "E-Mail-Adresse gespeichert",
+ "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du wirklich sicher, dass Du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warte, bis die Migration beendet ist",
@@ -78,6 +78,7 @@
"Uninstall" : "Deinstallieren",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Du wirst in 5 Sekunden zu Aktualisierungsseite weitergeleitet",
"App update" : "App aktualisiert",
+ "No apps found for \"{query}\"" : "Es wurden keine Apps für \"{query}\"",
"An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
"Select a profile picture" : "Wähle ein Profilbild",
"Very weak password" : "Sehr schwaches Passwort",
@@ -183,6 +184,7 @@
"More" : "Mehr",
"Less" : "Weniger",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!",
+ "What to log" : "Was für ein Protokoll",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite wird als Datenbank verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Kommandozeile: 'occ db:convert-type', oder in die <a target=\"_blank\" href=\"%s\">Dokumentation ↗</a> schauen.",
diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js
index 14b4c6457da..ed34e871e83 100644
--- a/settings/l10n/es_AR.js
+++ b/settings/l10n/es_AR.js
@@ -1,16 +1,15 @@
OC.L10N.register(
"settings",
{
+ "APCu" : "APCu",
"Sharing" : "Compartiendo",
"External Storage" : "Almacenamiento externo",
"Cron" : "Cron",
"Log" : "Log",
"Updates" : "Actualizaciones",
- "Authentication error" : "Error al autenticar",
- "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
- "Unable to change full name" : "Imposible cambiar el nombre completo",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Pedido inválido",
+ "Authentication error" : "Error al autenticar",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
"Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s",
"Unable to remove user from group %s" : "No es posible borrar al usuario del grupo %s",
@@ -26,6 +25,8 @@ OC.L10N.register(
"Email sent" : "e-mail mandado",
"You need to set your user email before being able to send test emails." : "Necesita especificar el usuario de correo electrónico antes de poder enviar correos electrónicos de prueba.",
"Email saved" : "e-mail guardado",
+ "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
+ "Unable to change full name" : "Imposible cambiar el nombre completo",
"Sending..." : "Enviando...",
"All" : "Todos",
"Please wait...." : "Por favor, esperá....",
diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json
index c03a8ef96db..f337de3b801 100644
--- a/settings/l10n/es_AR.json
+++ b/settings/l10n/es_AR.json
@@ -1,14 +1,13 @@
{ "translations": {
+ "APCu" : "APCu",
"Sharing" : "Compartiendo",
"External Storage" : "Almacenamiento externo",
"Cron" : "Cron",
"Log" : "Log",
"Updates" : "Actualizaciones",
- "Authentication error" : "Error al autenticar",
- "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
- "Unable to change full name" : "Imposible cambiar el nombre completo",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Pedido inválido",
+ "Authentication error" : "Error al autenticar",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
"Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s",
"Unable to remove user from group %s" : "No es posible borrar al usuario del grupo %s",
@@ -24,6 +23,8 @@
"Email sent" : "e-mail mandado",
"You need to set your user email before being able to send test emails." : "Necesita especificar el usuario de correo electrónico antes de poder enviar correos electrónicos de prueba.",
"Email saved" : "e-mail guardado",
+ "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
+ "Unable to change full name" : "Imposible cambiar el nombre completo",
"Sending..." : "Enviando...",
"All" : "Todos",
"Please wait...." : "Por favor, esperá....",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index e3c2a792389..805b5c05d5c 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -12,12 +12,10 @@ OC.L10N.register(
"Log" : "Log",
"Tips & tricks" : "Trucs et astuces",
"Updates" : "Mises à jour",
- "Authentication error" : "Erreur d'authentification",
- "Your full name has been changed." : "Votre nom complet a été modifié.",
- "Unable to change full name" : "Impossible de changer le nom complet",
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Language changed" : "Langue changée",
"Invalid request" : "Requête non valide",
+ "Authentication error" : "Erreur d'authentification",
"Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
"Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
"Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
@@ -53,6 +51,8 @@ OC.L10N.register(
"Invalid user" : "Utilisateur non valable",
"Unable to change mail address" : "Impossible de modifier l'adresse e-mail",
"Email saved" : "E-mail sauvegardé",
+ "Your full name has been changed." : "Votre nom complet a été modifié.",
+ "Unable to change full name" : "Impossible de changer le nom complet",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
"Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine",
@@ -192,6 +192,7 @@ OC.L10N.register(
"More" : "Plus",
"Less" : "Moins",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!",
+ "What to log" : "Ce qu'il faut journaliser",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la <a target=\"_blank\" href=\"%s\">documentation ↗</a>.",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index a0722035b7e..61c3129a8c1 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -10,12 +10,10 @@
"Log" : "Log",
"Tips & tricks" : "Trucs et astuces",
"Updates" : "Mises à jour",
- "Authentication error" : "Erreur d'authentification",
- "Your full name has been changed." : "Votre nom complet a été modifié.",
- "Unable to change full name" : "Impossible de changer le nom complet",
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Language changed" : "Langue changée",
"Invalid request" : "Requête non valide",
+ "Authentication error" : "Erreur d'authentification",
"Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
"Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
"Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
@@ -51,6 +49,8 @@
"Invalid user" : "Utilisateur non valable",
"Unable to change mail address" : "Impossible de modifier l'adresse e-mail",
"Email saved" : "E-mail sauvegardé",
+ "Your full name has been changed." : "Votre nom complet a été modifié.",
+ "Unable to change full name" : "Impossible de changer le nom complet",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
"Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine",
@@ -190,6 +190,7 @@
"More" : "Plus",
"Less" : "Moins",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!",
+ "What to log" : "Ce qu'il faut journaliser",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la <a target=\"_blank\" href=\"%s\">documentation ↗</a>.",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index 4730cba46d7..326be4e8917 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -12,12 +12,10 @@ OC.L10N.register(
"Log" : "日志",
"Tips & tricks" : "技巧提示",
"Updates" : "更新",
- "Authentication error" : "认证错误",
- "Your full name has been changed." : "您的全名已修改。",
- "Unable to change full name" : "无法修改全名",
"Couldn't remove app." : "无法删除应用。",
"Language changed" : "语言已修改",
"Invalid request" : "无效请求",
+ "Authentication error" : "认证错误",
"Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组。",
"Unable to add user to group %s" : "无法把用户增加到组 %s",
"Unable to remove user from group %s" : "无法从组%s中移除用户",
@@ -53,6 +51,8 @@ OC.L10N.register(
"Invalid user" : "用户无效",
"Unable to change mail address" : "无法更改邮箱地址",
"Email saved" : "电子邮件已保存",
+ "Your full name has been changed." : "您的全名已修改。",
+ "Unable to change full name" : "无法修改全名",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?",
"Add trusted domain" : "添加信任域",
"Migration in progress. Please wait until the migration is finished" : "迁移正在进行中。请等待,直到完成迁移",
@@ -78,6 +78,9 @@ OC.L10N.register(
"Uninstalling ...." : "卸载中....",
"Error while uninstalling app" : "卸载应用时发生了一个错误",
"Uninstall" : "卸载",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
+ "App update" : "应用更新",
+ "No apps found for \"{query}\"" : "未找到应用适合 \"{query}\"",
"An error occurred: {message}" : "发生错误: {message}",
"Select a profile picture" : "选择头像",
"Very weak password" : "非常弱的密码",
@@ -150,6 +153,7 @@ OC.L10N.register(
"Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户",
"Exclude groups from sharing" : "在分享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中的自动补全用户名。如果被禁用,需要输入用户全名。",
"Last cron job execution: %s." : "上次定时任务执行于: %s.",
"Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 似乎有些问题。",
"Cron was not executed yet!" : "定时任务还未被执行!",
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index 69d6dbf014e..31463488b64 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -10,12 +10,10 @@
"Log" : "日志",
"Tips & tricks" : "技巧提示",
"Updates" : "更新",
- "Authentication error" : "认证错误",
- "Your full name has been changed." : "您的全名已修改。",
- "Unable to change full name" : "无法修改全名",
"Couldn't remove app." : "无法删除应用。",
"Language changed" : "语言已修改",
"Invalid request" : "无效请求",
+ "Authentication error" : "认证错误",
"Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组。",
"Unable to add user to group %s" : "无法把用户增加到组 %s",
"Unable to remove user from group %s" : "无法从组%s中移除用户",
@@ -51,6 +49,8 @@
"Invalid user" : "用户无效",
"Unable to change mail address" : "无法更改邮箱地址",
"Email saved" : "电子邮件已保存",
+ "Your full name has been changed." : "您的全名已修改。",
+ "Unable to change full name" : "无法修改全名",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?",
"Add trusted domain" : "添加信任域",
"Migration in progress. Please wait until the migration is finished" : "迁移正在进行中。请等待,直到完成迁移",
@@ -76,6 +76,9 @@
"Uninstalling ...." : "卸载中....",
"Error while uninstalling app" : "卸载应用时发生了一个错误",
"Uninstall" : "卸载",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
+ "App update" : "应用更新",
+ "No apps found for \"{query}\"" : "未找到应用适合 \"{query}\"",
"An error occurred: {message}" : "发生错误: {message}",
"Select a profile picture" : "选择头像",
"Very weak password" : "非常弱的密码",
@@ -148,6 +151,7 @@
"Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户",
"Exclude groups from sharing" : "在分享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中的自动补全用户名。如果被禁用,需要输入用户全名。",
"Last cron job execution: %s." : "上次定时任务执行于: %s.",
"Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 似乎有些问题。",
"Cron was not executed yet!" : "定时任务还未被执行!",
diff --git a/tests/lib/files/cache/changepropagator.php b/tests/lib/files/cache/changepropagator.php
index 1b56da5e97c..9108330eb9b 100644
--- a/tests/lib/files/cache/changepropagator.php
+++ b/tests/lib/files/cache/changepropagator.php
@@ -94,4 +94,37 @@ class ChangePropagator extends \Test\TestCase {
$this->assertEquals(100, $time - $cache->get('foo')['mtime']);
$this->assertEquals(100, $time - $cache->get('foo/bar')['mtime']);
}
+
+ public function testPropagateCrossStorage() {
+ $storage = new Temporary();
+ $this->view->mkdir('/foo');
+ Filesystem::mount($storage, [], $this->view->getAbsolutePath('/foo/submount'));
+ $this->view->mkdir('/foo/submount/bar');
+ $this->view->file_put_contents('/foo/submount/bar/sad.txt', 'qwerty');
+
+ $oldInfo1 = $this->view->getFileInfo('/');
+ $oldInfo2 = $this->view->getFileInfo('/foo');
+ $oldInfo3 = $this->view->getFileInfo('/foo/submount');
+ $oldInfo4 = $this->view->getFileInfo('/foo/submount/bar');
+
+ $time = time() + 50;
+
+ $this->propagator->addChange('/foo/submount/bar/sad.txt');
+ $this->propagator->propagateChanges($time);
+
+ $newInfo1 = $this->view->getFileInfo('/');
+ $newInfo2 = $this->view->getFileInfo('/foo');
+ $newInfo3 = $this->view->getFileInfo('/foo/submount');
+ $newInfo4 = $this->view->getFileInfo('/foo/submount/bar');
+
+ $this->assertEquals($newInfo1->getMTime(), $time);
+ $this->assertEquals($newInfo2->getMTime(), $time);
+ $this->assertEquals($newInfo3->getMTime(), $time);
+ $this->assertEquals($newInfo4->getMTime(), $time);
+
+ $this->assertNotSame($oldInfo1->getEtag(), $newInfo1->getEtag());
+ $this->assertNotSame($oldInfo2->getEtag(), $newInfo2->getEtag());
+ $this->assertNotSame($oldInfo3->getEtag(), $newInfo3->getEtag());
+ $this->assertNotSame($oldInfo4->getEtag(), $newInfo3->getEtag());
+ }
}
diff --git a/tests/lib/files/cache/updater.php b/tests/lib/files/cache/updater.php
index b7e76aeace4..807dcd596fb 100644
--- a/tests/lib/files/cache/updater.php
+++ b/tests/lib/files/cache/updater.php
@@ -39,9 +39,7 @@ class Updater extends \Test\TestCase {
$this->loginAsUser();
$this->storage = new Temporary(array());
- Filesystem::mount($this->storage, array(), '/');
- $this->view = new View('');
- $this->updater = new \OC\Files\Cache\Updater($this->view);
+ $this->updater = $this->storage->getUpdater();
$this->cache = $this->storage->getCache();
}
@@ -56,7 +54,7 @@ class Updater extends \Test\TestCase {
$this->storage->file_put_contents('foo.txt', 'bar');
$this->assertFalse($this->cache->inCache('foo.txt'));
- $this->updater->update('/foo.txt');
+ $this->updater->update('foo.txt');
$this->assertTrue($this->cache->inCache('foo.txt'));
$cached = $this->cache->get('foo.txt');
@@ -65,7 +63,9 @@ class Updater extends \Test\TestCase {
}
public function testUpdatedFile() {
- $this->view->file_put_contents('/foo.txt', 'bar');
+ $this->storage->file_put_contents('foo.txt', 'bar');
+ $this->updater->update('foo.txt');
+
$cached = $this->cache->get('foo.txt');
$this->assertEquals(3, $cached['size']);
$this->assertEquals('text/plain', $cached['mimetype']);
@@ -131,7 +131,7 @@ class Updater extends \Test\TestCase {
$this->assertTrue($this->cache->inCache('foo.txt'));
$this->assertFalse($this->cache->inCache('bar.txt'));
- $this->updater->rename('foo.txt', 'bar.txt');
+ $this->updater->renameFromStorage($this->storage, 'foo.txt', 'bar.txt');
$this->assertFalse($this->cache->inCache('foo.txt'));
$this->assertTrue($this->cache->inCache('bar.txt'));
@@ -149,7 +149,7 @@ class Updater extends \Test\TestCase {
$cached = $this->cache->get('bar.txt');
- $this->updater->rename('foo.txt', 'bar.txt');
+ $this->updater->renameFromStorage($this->storage, 'foo.txt', 'bar.txt');
$this->assertFalse($this->cache->inCache('foo.txt'));
$this->assertTrue($this->cache->inCache('bar.txt'));
@@ -186,7 +186,7 @@ class Updater extends \Test\TestCase {
// some storages (like Dropbox) change storage mtime on rename
$this->storage->touch('sub2/bar.txt', $testmtime);
- $this->updater->rename('sub/foo.txt', 'sub2/bar.txt');
+ $this->updater->renameFromStorage($this->storage, 'sub/foo.txt', 'sub2/bar.txt');
$cachedTargetParent = $this->cache->get('sub2');
$cachedTarget = $this->cache->get('sub2/bar.txt');
@@ -212,26 +212,6 @@ class Updater extends \Test\TestCase {
$this->assertFalse($this->cache->inCache('foo.txt'));
}
- public function testMoveDisabled() {
- $this->storage->file_put_contents('foo.txt', 'qwerty');
- $this->updater->update('foo.txt');
-
- $this->assertTrue($this->cache->inCache('foo.txt'));
- $this->assertFalse($this->cache->inCache('bar.txt'));
- $cached = $this->cache->get('foo.txt');
-
- $this->storage->rename('foo.txt', 'bar.txt');
-
- $this->assertTrue($this->cache->inCache('foo.txt'));
- $this->assertFalse($this->cache->inCache('bar.txt'));
-
- $this->updater->disable();
- $this->updater->rename('foo.txt', 'bar.txt');
-
- $this->assertTrue($this->cache->inCache('foo.txt'));
- $this->assertFalse($this->cache->inCache('bar.txt'));
- }
-
public function testMoveCrossStorage() {
$storage2 = new Temporary(array());
$cache2 = $storage2->getCache();
@@ -251,7 +231,7 @@ class Updater extends \Test\TestCase {
$this->assertTrue($this->cache->inCache('foo.txt'));
$this->assertFalse($cache2->inCache('bar.txt'));
- $this->updater->rename('foo.txt', 'bar/bar.txt');
+ $storage2->getUpdater()->renameFromStorage($this->storage, 'foo.txt', 'bar.txt');
$this->assertFalse($this->cache->inCache('foo.txt'));
$this->assertTrue($cache2->inCache('bar.txt'));
@@ -288,7 +268,8 @@ class Updater extends \Test\TestCase {
$cached[] = $this->cache->get('foo/bar/bar.txt');
// add extension to trigger the possible mimetype change
- $this->view->rename('/foo', '/bar/foo.b');
+ $storage2->moveFromStorage($this->storage, 'foo', 'foo.b');
+ $storage2->getUpdater()->renameFromStorage($this->storage, 'foo', 'foo.b');
$this->assertFalse($this->cache->inCache('foo'));
$this->assertFalse($this->cache->inCache('foo/foo.txt'));
diff --git a/tests/lib/files/cache/updaterlegacy.php b/tests/lib/files/cache/updaterlegacy.php
index f4d52e9a390..c1a0d3d8230 100644
--- a/tests/lib/files/cache/updaterlegacy.php
+++ b/tests/lib/files/cache/updaterlegacy.php
@@ -10,6 +10,7 @@ namespace Test\Files\Cache;
use \OC\Files\Filesystem as Filesystem;
use OC\Files\Storage\Temporary;
+use OC\Files\View;
class UpdaterLegacy extends \Test\TestCase {
/**
@@ -111,7 +112,8 @@ class UpdaterLegacy extends \Test\TestCase {
$storage2->getScanner()->scan(''); //initialize etags
$cache2 = $storage2->getCache();
Filesystem::mount($storage2, array(), '/' . self::$user . '/files/folder/substorage');
- $folderCachedData = $this->cache->get('folder');
+ $view = new View('/' . self::$user . '/files');
+ $folderCachedData = $view->getFileInfo('folder');
$substorageCachedData = $cache2->get('');
Filesystem::file_put_contents('folder/substorage/foo.txt', 'asd');
$this->assertTrue($cache2->inCache('foo.txt'));
@@ -124,7 +126,7 @@ class UpdaterLegacy extends \Test\TestCase {
$this->assertInternalType('string', $cachedData['etag']);
$this->assertNotSame($substorageCachedData['etag'], $cachedData['etag']);
- $cachedData = $this->cache->get('folder');
+ $cachedData = $view->getFileInfo('folder');
$this->assertInternalType('string', $folderCachedData['etag']);
$this->assertInternalType('string', $cachedData['etag']);
$this->assertNotSame($folderCachedData['etag'], $cachedData['etag']);
@@ -168,8 +170,9 @@ class UpdaterLegacy extends \Test\TestCase {
$cache2 = $storage2->getCache();
Filesystem::mount($storage2, array(), '/' . self::$user . '/files/folder/substorage');
Filesystem::file_put_contents('folder/substorage/foo.txt', 'asd');
+ $view = new View('/' . self::$user . '/files');
$this->assertTrue($cache2->inCache('foo.txt'));
- $folderCachedData = $this->cache->get('folder');
+ $folderCachedData = $view->getFileInfo('folder');
$substorageCachedData = $cache2->get('');
Filesystem::unlink('folder/substorage/foo.txt');
$this->assertFalse($cache2->inCache('foo.txt'));
@@ -180,7 +183,7 @@ class UpdaterLegacy extends \Test\TestCase {
$this->assertNotSame($substorageCachedData['etag'], $cachedData['etag']);
$this->assertGreaterThanOrEqual($substorageCachedData['mtime'], $cachedData['mtime']);
- $cachedData = $this->cache->get('folder');
+ $cachedData = $view->getFileInfo('folder');
$this->assertInternalType('string', $folderCachedData['etag']);
$this->assertInternalType('string', $cachedData['etag']);
$this->assertNotSame($folderCachedData['etag'], $cachedData['etag']);
@@ -222,8 +225,9 @@ class UpdaterLegacy extends \Test\TestCase {
$cache2 = $storage2->getCache();
Filesystem::mount($storage2, array(), '/' . self::$user . '/files/folder/substorage');
Filesystem::file_put_contents('folder/substorage/foo.txt', 'asd');
+ $view = new View('/' . self::$user . '/files');
$this->assertTrue($cache2->inCache('foo.txt'));
- $folderCachedData = $this->cache->get('folder');
+ $folderCachedData = $view->getFileInfo('folder');
$substorageCachedData = $cache2->get('');
$fooCachedData = $cache2->get('foo.txt');
Filesystem::rename('folder/substorage/foo.txt', 'folder/substorage/bar.txt');
@@ -240,7 +244,7 @@ class UpdaterLegacy extends \Test\TestCase {
// rename can cause mtime change - invalid assert
// $this->assertEquals($mtime, $cachedData['mtime']);
- $cachedData = $this->cache->get('folder');
+ $cachedData = $view->getFileInfo('folder');
$this->assertInternalType('string', $folderCachedData['etag']);
$this->assertInternalType('string', $cachedData['etag']);
$this->assertNotSame($folderCachedData['etag'], $cachedData['etag']);
@@ -287,35 +291,4 @@ class UpdaterLegacy extends \Test\TestCase {
$this->assertEquals($time, $cachedData['mtime']);
}
- public function testTouchWithMountPoints() {
- $storage2 = new \OC\Files\Storage\Temporary(array());
- $cache2 = $storage2->getCache();
- Filesystem::mount($storage2, array(), '/' . self::$user . '/files/folder/substorage');
- Filesystem::file_put_contents('folder/substorage/foo.txt', 'asd');
- $this->assertTrue($cache2->inCache('foo.txt'));
- $folderCachedData = $this->cache->get('folder');
- $substorageCachedData = $cache2->get('');
- $fooCachedData = $cache2->get('foo.txt');
- $cachedData = $cache2->get('foo.txt');
- $time = 1371006070;
- $this->cache->put('folder', ['mtime' => $time - 100]);
- Filesystem::touch('folder/substorage/foo.txt', $time);
- $cachedData = $cache2->get('foo.txt');
- $this->assertInternalType('string', $fooCachedData['etag']);
- $this->assertInternalType('string', $cachedData['etag']);
- $this->assertNotSame($fooCachedData['etag'], $cachedData['etag']);
- $this->assertEquals($time, $cachedData['mtime']);
-
- $cachedData = $cache2->get('');
- $this->assertInternalType('string', $substorageCachedData['etag']);
- $this->assertInternalType('string', $cachedData['etag']);
- $this->assertNotSame($substorageCachedData['etag'], $cachedData['etag']);
-
- $cachedData = $this->cache->get('folder');
- $this->assertInternalType('string', $folderCachedData['etag']);
- $this->assertInternalType('string', $cachedData['etag']);
- $this->assertNotSame($folderCachedData['etag'], $cachedData['etag']);
- $this->assertEquals($time, $cachedData['mtime']);
- }
-
}
diff --git a/tests/lib/files/etagtest.php b/tests/lib/files/etagtest.php
index 1a11b29cf00..192768d04af 100644
--- a/tests/lib/files/etagtest.php
+++ b/tests/lib/files/etagtest.php
@@ -27,7 +27,6 @@ class EtagTest extends \Test\TestCase {
\OC_Hook::clear('OC_Filesystem', 'setup');
$application = new \OCA\Files_Sharing\AppInfo\Application();
$application->registerMountProviders();
- $application->setupPropagation();
\OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
\OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
diff --git a/tests/lib/helper.php b/tests/lib/helper.php
index ca3e0e46d82..b7deb3fc13d 100644
--- a/tests/lib/helper.php
+++ b/tests/lib/helper.php
@@ -71,29 +71,6 @@ class Test_Helper extends \Test\TestCase {
];
}
- function testGetMimeType() {
- $dir=OC::$SERVERROOT.'/tests/data';
- $result = OC_Helper::getMimeType($dir."/");
- $expected = 'httpd/unix-directory';
- $this->assertEquals($result, $expected);
-
- $result = OC_Helper::getMimeType($dir."/data.tar.gz");
- $expected = 'application/x-gzip';
- $this->assertEquals($result, $expected);
-
- $result = OC_Helper::getMimeType($dir."/data.zip");
- $expected = 'application/zip';
- $this->assertEquals($result, $expected);
-
- $result = OC_Helper::getMimeType($dir."/desktopapp.svg");
- $expected = 'image/svg+xml';
- $this->assertEquals($result, $expected);
-
- $result = OC_Helper::getMimeType($dir."/desktopapp.png");
- $expected = 'image/png';
- $this->assertEquals($result, $expected);
- }
-
function testGetSecureMimeType() {
$dir=OC::$SERVERROOT.'/tests/data';
@@ -164,18 +141,6 @@ class Test_Helper extends \Test\TestCase {
$this->assertEquals($result, $expected);
}
- function testMb_substr_replace() {
- $result = OC_Helper::mb_substr_replace("This is a teststring", "string", 5);
- $expected = "This string is a teststring";
- $this->assertEquals($result, $expected);
- }
-
- function testMb_str_replace() {
- $result = OC_Helper::mb_str_replace("teststring", "string", "This is a teststring");
- $expected = "This is a string";
- $this->assertEquals($result, $expected);
- }
-
function testRecursiveArraySearch() {
$haystack = array(
"Foo" => "own",
diff --git a/tests/lib/notification/notificationtest.php b/tests/lib/notification/notificationtest.php
index da3ada440e2..91fa1de8b42 100644
--- a/tests/lib/notification/notificationtest.php
+++ b/tests/lib/notification/notificationtest.php
@@ -176,22 +176,23 @@ class NotificationTest extends TestCase {
public function dataSetObject() {
return [
- ['a', 1],
- [str_repeat('a', 64), time()],
+ ['a', '21', '21'],
+ [str_repeat('a', 64), 42, '42'],
];
}
/**
* @dataProvider dataSetObject
* @param string $type
- * @param int $id
+ * @param int|string $id
+ * @param string $exptectedId
*/
- public function testSetObject($type, $id) {
+ public function testSetObject($type, $id, $exptectedId) {
$this->assertSame('', $this->notification->getObjectType());
- $this->assertSame(0, $this->notification->getObjectId());
+ $this->assertSame('', $this->notification->getObjectId());
$this->assertSame($this->notification, $this->notification->setObject($type, $id));
$this->assertSame($type, $this->notification->getObjectType());
- $this->assertSame($id, $this->notification->getObjectId());
+ $this->assertSame($exptectedId, $this->notification->getObjectId());
}
public function dataSetObjectTypeInvalid() {
@@ -210,7 +211,14 @@ class NotificationTest extends TestCase {
}
public function dataSetObjectIdInvalid() {
- return $this->dataInvalidInt();
+ return [
+ [true],
+ [false],
+ [''],
+ [str_repeat('a', 64 + 1)],
+ [[]],
+ [[str_repeat('a', 64 + 1)]],
+ ];
}
/**
@@ -560,12 +568,12 @@ class NotificationTest extends TestCase {
public function dataIsValidCommon() {
return [
- ['', '', 0, '', 0, false],
- ['app', '', 0, '', 0, false],
- ['app', 'user', 0, '', 0, false],
- ['app', 'user', time(), '', 0, false],
- ['app', 'user', time(), 'type', 0, false],
- ['app', 'user', time(), 'type', 42, true],
+ ['', '', 0, '', '', false],
+ ['app', '', 0, '', '', false],
+ ['app', 'user', 0, '', '', false],
+ ['app', 'user', time(), '', '', false],
+ ['app', 'user', time(), 'type', '', false],
+ ['app', 'user', time(), 'type', '42', true],
];
}
@@ -576,7 +584,7 @@ class NotificationTest extends TestCase {
* @param string $user
* @param int $timestamp
* @param string $objectType
- * @param int $objectId
+ * @param string $objectId
* @param bool $expected
*/
public function testIsValidCommon($app, $user, $timestamp, $objectType, $objectId, $expected) {
diff --git a/tests/lib/repair/cleantags.php b/tests/lib/repair/cleantags.php
index a511daa03d6..896dd333cc2 100644
--- a/tests/lib/repair/cleantags.php
+++ b/tests/lib/repair/cleantags.php
@@ -165,20 +165,6 @@ class CleanTags extends \Test\TestCase {
* @return int
*/
protected function getLastInsertID($tableName, $idName) {
- $id = $this->connection->lastInsertId();
- if ($id) {
- return $id;
- }
-
- // FIXME !!!! ORACLE WORKAROUND DO NOT COPY
- // FIXME INSTEAD HELP FIXING DOCTRINE
- // FIXME https://github.com/owncloud/core/issues/13303
- // FIXME ALSO FIX https://github.com/owncloud/core/commit/2dd85ec984c12d3be401518f22c90d2327bec07a
- $qb = $this->connection->getQueryBuilder();
- $result = $qb->select($qb->createFunction('MAX(`' . $idName . '`)'))
- ->from($tableName)
- ->execute();
-
- return (int) $result->fetchColumn();
+ return $this->connection->lastInsertId("*PREFIX*$tableName");
}
}
diff --git a/tests/lib/repair/oldgroupmembershipsharestest.php b/tests/lib/repair/oldgroupmembershipsharestest.php
index 74f68bd7899..272e1ef09c4 100644
--- a/tests/lib/repair/oldgroupmembershipsharestest.php
+++ b/tests/lib/repair/oldgroupmembershipsharestest.php
@@ -72,7 +72,7 @@ class OldGroupMembershipSharesTest extends \Test\TestCase {
->orderBy('id', 'ASC')
->execute();
$rows = $result->fetchAll();
- $this->assertSame([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member], ['id' => $notAMember]], $rows);
+ $this->assertEquals([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member], ['id' => $notAMember]], $rows);
$result->closeCursor();
$repair->run();
@@ -83,7 +83,7 @@ class OldGroupMembershipSharesTest extends \Test\TestCase {
->orderBy('id', 'ASC')
->execute();
$rows = $result->fetchAll();
- $this->assertSame([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member]], $rows);
+ $this->assertEquals([['id' => $parent], ['id' => $group2], ['id' => $user1], ['id' => $member]], $rows);
$result->closeCursor();
}
@@ -118,21 +118,6 @@ class OldGroupMembershipSharesTest extends \Test\TestCase {
->values($shareValues)
->execute();
- return $this->getLastShareId();
- }
-
- /**
- * @return int
- */
- protected function getLastShareId() {
- // select because lastInsertId does not work with OCI
- $query = $this->connection->getQueryBuilder();
- $result = $query->select('id')
- ->from('share')
- ->orderBy('id', 'DESC')
- ->execute();
- $row = $result->fetch();
- $result->closeCursor();
- return $row['id'];
+ return $this->connection->lastInsertId('*PREFIX*share');
}
}
diff --git a/tests/lib/repair/repairinvalidsharestest.php b/tests/lib/repair/repairinvalidsharestest.php
index 005a2db2344..e8dcaa4da97 100644
--- a/tests/lib/repair/repairinvalidsharestest.php
+++ b/tests/lib/repair/repairinvalidsharestest.php
@@ -162,7 +162,7 @@ class RepairInvalidSharesTest extends TestCase {
->orderBy('id', 'ASC')
->execute();
$rows = $result->fetchAll();
- $this->assertSame([['id' => $parent], ['id' => $validChild], ['id' => $invalidChild]], $rows);
+ $this->assertEquals([['id' => $parent], ['id' => $validChild], ['id' => $invalidChild]], $rows);
$result->closeCursor();
$this->repair->run();
@@ -173,7 +173,7 @@ class RepairInvalidSharesTest extends TestCase {
->orderBy('id', 'ASC')
->execute();
$rows = $result->fetchAll();
- $this->assertSame([['id' => $parent], ['id' => $validChild]], $rows);
+ $this->assertEquals([['id' => $parent], ['id' => $validChild]], $rows);
$result->closeCursor();
}
@@ -181,15 +181,7 @@ class RepairInvalidSharesTest extends TestCase {
* @return int
*/
protected function getLastShareId() {
- // select because lastInsertId does not work with OCI
- $query = $this->connection->getQueryBuilder();
- $result = $query->select('id')
- ->from('share')
- ->orderBy('id', 'DESC')
- ->execute();
- $row = $result->fetch();
- $result->closeCursor();
- return $row['id'];
+ return $this->connection->lastInsertId('*PREFIX*share');
}
}
diff --git a/tests/lib/share20/defaultshareprovidertest.php b/tests/lib/share20/defaultshareprovidertest.php
index f8b6f98be7c..dc45bc7c085 100644
--- a/tests/lib/share20/defaultshareprovidertest.php
+++ b/tests/lib/share20/defaultshareprovidertest.php
@@ -23,7 +23,7 @@ namespace Test\Share20;
use OCP\IDBConnection;
use OCP\IUserManager;
use OCP\IGroupManager;
-use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
use OC\Share20\DefaultShareProvider;
class DefaultShareProviderTest extends \Test\TestCase {
@@ -37,8 +37,8 @@ class DefaultShareProviderTest extends \Test\TestCase {
/** @var IGroupManager */
protected $groupManager;
- /** @var Folder */
- protected $userFolder;
+ /** @var IRootFolder */
+ protected $rootFolder;
/** @var DefaultShareProvider */
protected $provider;
@@ -47,7 +47,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->dbConn = \OC::$server->getDatabaseConnection();
$this->userManager = $this->getMock('OCP\IUserManager');
$this->groupManager = $this->getMock('OCP\IGroupManager');
- $this->userFolder = $this->getMock('OCP\Files\Folder');
+ $this->rootFolder = $this->getMock('OCP\Files\IRootFolder');
//Empty share table
$this->dbConn->getQueryBuilder()->delete('share')->execute();
@@ -56,7 +56,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->dbConn,
$this->userManager,
$this->groupManager,
- $this->userFolder
+ $this->rootFolder
);
}
@@ -65,7 +65,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
}
/**
- * @expectedException OC\Share20\Exception\ShareNotFound
+ * @expectedException \OC\Share20\Exception\ShareNotFound
*/
public function testGetShareByIdNotExist() {
$this->provider->getShareById(1);
@@ -97,25 +97,30 @@ class DefaultShareProviderTest extends \Test\TestCase {
$id = $id['id'];
$cursor->closeCursor();
- $storage = $this->getMock('OC\Files\Storage\Storage');
- $storage
- ->expects($this->once())
- ->method('getOwner')
- ->willReturn('shareOwner');
- $path = $this->getMock('OCP\Files\File');
- $path
- ->expects($this->once())
- ->method('getStorage')
- ->wilLReturn($storage);
- $this->userFolder
- ->expects($this->once())
- ->method('getById')
- ->with(42)
- ->willReturn([$path]);
-
$sharedWith = $this->getMock('OCP\IUser');
$sharedBy = $this->getMock('OCP\IUser');
+ $sharedBy->method('getUID')->willReturn('sharedBy');
$shareOwner = $this->getMock('OCP\IUser');
+ $shareOwner->method('getUID')->willReturn('shareOwner');
+
+ $sharedByPath = $this->getMock('\OCP\Files\File');
+ $ownerPath = $this->getMock('\OCP\Files\File');
+
+ $sharedByPath->method('getOwner')->willReturn($shareOwner);
+
+ $sharedByFolder = $this->getMock('\OCP\Files\Folder');
+ $sharedByFolder->method('getById')->with(42)->willReturn([$sharedByPath]);
+
+ $shareOwnerFolder = $this->getMock('\OCP\Files\Folder');
+ $shareOwnerFolder->method('getById')->with(42)->willReturn([$ownerPath]);
+
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->will($this->returnValueMap([
+ ['sharedBy', $sharedByFolder],
+ ['shareOwner', $shareOwnerFolder],
+ ]));
+
$this->userManager
->method('get')
->will($this->returnValueMap([
@@ -131,7 +136,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertEquals($sharedWith, $share->getSharedWith());
$this->assertEquals($sharedBy, $share->getSharedBy());
$this->assertEquals($shareOwner, $share->getShareOwner());
- $this->assertEquals($path, $share->getPath());
+ $this->assertEquals($ownerPath, $share->getPath());
$this->assertEquals(13, $share->getPermissions());
$this->assertEquals(null, $share->getToken());
$this->assertEquals(null, $share->getExpirationDate());
@@ -164,25 +169,30 @@ class DefaultShareProviderTest extends \Test\TestCase {
$id = $id['id'];
$cursor->closeCursor();
- $storage = $this->getMock('OC\Files\Storage\Storage');
- $storage
- ->expects($this->once())
- ->method('getOwner')
- ->willReturn('shareOwner');
- $path = $this->getMock('OCP\Files\Folder');
- $path
- ->expects($this->once())
- ->method('getStorage')
- ->wilLReturn($storage);
- $this->userFolder
- ->expects($this->once())
- ->method('getById')
- ->with(42)
- ->willReturn([$path]);
-
$sharedWith = $this->getMock('OCP\IGroup');
$sharedBy = $this->getMock('OCP\IUser');
+ $sharedBy->method('getUID')->willReturn('sharedBy');
$shareOwner = $this->getMock('OCP\IUser');
+ $shareOwner->method('getUID')->willReturn('shareOwner');
+
+ $sharedByPath = $this->getMock('\OCP\Files\Folder');
+ $ownerPath = $this->getMock('\OCP\Files\Folder');
+
+ $sharedByPath->method('getOwner')->willReturn($shareOwner);
+
+ $sharedByFolder = $this->getMock('\OCP\Files\Folder');
+ $sharedByFolder->method('getById')->with(42)->willReturn([$sharedByPath]);
+
+ $shareOwnerFolder = $this->getMock('\OCP\Files\Folder');
+ $shareOwnerFolder->method('getById')->with(42)->willReturn([$ownerPath]);
+
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->will($this->returnValueMap([
+ ['sharedBy', $sharedByFolder],
+ ['shareOwner', $shareOwnerFolder],
+ ]));
+
$this->userManager
->method('get')
->will($this->returnValueMap([
@@ -202,7 +212,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertEquals($sharedWith, $share->getSharedWith());
$this->assertEquals($sharedBy, $share->getSharedBy());
$this->assertEquals($shareOwner, $share->getShareOwner());
- $this->assertEquals($path, $share->getPath());
+ $this->assertEquals($ownerPath, $share->getPath());
$this->assertEquals(13, $share->getPermissions());
$this->assertEquals(null, $share->getToken());
$this->assertEquals(null, $share->getExpirationDate());
@@ -237,90 +247,29 @@ class DefaultShareProviderTest extends \Test\TestCase {
$id = $id['id'];
$cursor->closeCursor();
- $storage = $this->getMock('OC\Files\Storage\Storage');
- $storage
- ->expects($this->once())
- ->method('getOwner')
- ->willReturn('shareOwner');
- $path = $this->getMock('OCP\Files\Node');
- $path
- ->expects($this->once())
- ->method('getStorage')
- ->wilLReturn($storage);
- $this->userFolder
- ->expects($this->once())
- ->method('getById')
- ->with(42)
- ->willReturn([$path]);
-
$sharedBy = $this->getMock('OCP\IUser');
+ $sharedBy->method('getUID')->willReturn('sharedBy');
$shareOwner = $this->getMock('OCP\IUser');
- $this->userManager
- ->method('get')
- ->will($this->returnValueMap([
- ['sharedBy', $sharedBy],
- ['shareOwner', $shareOwner],
- ]));
+ $shareOwner->method('getUID')->willReturn('shareOwner');
- $share = $this->provider->getShareById($id);
+ $sharedByPath = $this->getMock('\OCP\Files\Folder');
+ $ownerPath = $this->getMock('\OCP\Files\Folder');
- $this->assertEquals($id, $share->getId());
- $this->assertEquals(\OCP\Share::SHARE_TYPE_LINK, $share->getShareType());
- $this->assertEquals('sharedWith', $share->getPassword());
- $this->assertEquals($sharedBy, $share->getSharedBy());
- $this->assertEquals($shareOwner, $share->getShareOwner());
- $this->assertEquals($path, $share->getPath());
- $this->assertEquals(13, $share->getPermissions());
- $this->assertEquals('token', $share->getToken());
- $this->assertEquals(\DateTime::createFromFormat('Y-m-d H:i:s', '2000-01-02 00:00:00'), $share->getExpirationDate());
- $this->assertEquals('myTarget', $share->getTarget());
- }
-
- public function testGetShareByIdRemoteShare() {
- $qb = $this->dbConn->getQueryBuilder();
+ $sharedByPath->method('getOwner')->willReturn($shareOwner);
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_REMOTE),
- 'share_with' => $qb->expr()->literal('sharedWith'),
- 'uid_owner' => $qb->expr()->literal('sharedBy'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(42),
- 'file_target' => $qb->expr()->literal('myTarget'),
- 'permissions' => $qb->expr()->literal(13),
- ]);
- $this->assertEquals(1, $qb->execute());
-
- // Get the id
- $qb = $this->dbConn->getQueryBuilder();
- $cursor = $qb->select('id')
- ->from('share')
- ->setMaxResults(1)
- ->orderBy('id', 'DESC')
- ->execute();
- $id = $cursor->fetch();
- $id = $id['id'];
- $cursor->closeCursor();
+ $sharedByFolder = $this->getMock('\OCP\Files\Folder');
+ $sharedByFolder->method('getById')->with(42)->willReturn([$sharedByPath]);
+ $shareOwnerFolder = $this->getMock('\OCP\Files\Folder');
+ $shareOwnerFolder->method('getById')->with(42)->willReturn([$ownerPath]);
- $storage = $this->getMock('OC\Files\Storage\Storage');
- $storage
- ->expects($this->once())
- ->method('getOwner')
- ->willReturn('shareOwner');
- $path = $this->getMock('OCP\Files\Node');
- $path
- ->expects($this->once())
- ->method('getStorage')
- ->wilLReturn($storage);
- $this->userFolder
- ->expects($this->once())
- ->method('getById')
- ->with(42)
- ->willReturn([$path]);
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->will($this->returnValueMap([
+ ['sharedBy', $sharedByFolder],
+ ['shareOwner', $shareOwnerFolder],
+ ]));
- $sharedBy = $this->getMock('OCP\IUser');
- $shareOwner = $this->getMock('OCP\IUser');
$this->userManager
->method('get')
->will($this->returnValueMap([
@@ -331,14 +280,14 @@ class DefaultShareProviderTest extends \Test\TestCase {
$share = $this->provider->getShareById($id);
$this->assertEquals($id, $share->getId());
- $this->assertEquals(\OCP\Share::SHARE_TYPE_REMOTE, $share->getShareType());
- $this->assertEquals('sharedWith', $share->getSharedWith());
+ $this->assertEquals(\OCP\Share::SHARE_TYPE_LINK, $share->getShareType());
+ $this->assertEquals('sharedWith', $share->getPassword());
$this->assertEquals($sharedBy, $share->getSharedBy());
$this->assertEquals($shareOwner, $share->getShareOwner());
- $this->assertEquals($path, $share->getPath());
+ $this->assertEquals($ownerPath, $share->getPath());
$this->assertEquals(13, $share->getPermissions());
- $this->assertEquals(null, $share->getToken());
- $this->assertEquals(null, $share->getExpirationDate());
+ $this->assertEquals('token', $share->getToken());
+ $this->assertEquals(\DateTime::createFromFormat('Y-m-d H:i:s', '2000-01-02 00:00:00'), $share->getExpirationDate());
$this->assertEquals('myTarget', $share->getTarget());
}
@@ -368,88 +317,24 @@ class DefaultShareProviderTest extends \Test\TestCase {
$cursor->closeCursor();
- $path = $this->getMock('OCP\Files\File');
- $path
- ->expects($this->exactly(2))
- ->method('getId')
- ->willReturn(42);
-
- $sharedWith = $this->getMock('OCP\IUser');
- $sharedWith
- ->expects($this->once())
- ->method('getUID')
- ->willReturn('sharedWith');
- $sharedBy = $this->getMock('OCP\IUser');
- $sharedBy
- ->expects($this->once())
- ->method('getUID')
- ->willReturn('sharedBy');
-
$share = $this->getMock('OC\Share20\IShare');
- $share
- ->method('getId')
- ->willReturn($id);
- $share
- ->expects($this->once())
- ->method('getShareType')
- ->willReturn(\OCP\Share::SHARE_TYPE_USER);
- $share
- ->expects($this->exactly(3))
- ->method('getPath')
- ->willReturn($path);
- $share
- ->expects($this->once())
- ->method('getSharedWith')
- ->willReturn($sharedWith);
- $share
- ->expects($this->once())
- ->method('getSharedBy')
- ->willReturn($sharedBy);
- $share
- ->expects($this->once())
- ->method('getTarget')
- ->willReturn('myTarget');
+ $share->method('getId')->willReturn($id);
$provider = $this->getMockBuilder('OC\Share20\DefaultShareProvider')
->setConstructorArgs([
$this->dbConn,
$this->userManager,
$this->groupManager,
- $this->userFolder,
+ $this->rootFolder,
]
)
- ->setMethods(['deleteChildren', 'getShareById'])
+ ->setMethods(['getShareById'])
->getMock();
$provider
->expects($this->once())
- ->method('deleteChildren');
- $provider
- ->expects($this->once())
->method('getShareById')
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listen'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'pre_unshare', $hookListner, 'listen');
- \OCP\Util::connectHook('OCP\Share', 'post_unshare', $hookListner, 'listen');
-
- $hookListnerExpects = [
- 'id' => $id,
- 'itemType' => 'file',
- 'itemSource' => 42,
- 'shareType' => \OCP\Share::SHARE_TYPE_USER,
- 'shareWith' => 'sharedWith',
- 'itemparent' => null,
- 'uidOwner' => 'sharedBy',
- 'fileSource' => 42,
- 'fileTarget' => 'myTarget',
- ];
-
- $hookListner
- ->expects($this->exactly(2))
- ->method('listen')
- ->with($hookListnerExpects);
-
-
$provider->delete($share);
$qb = $this->dbConn->getQueryBuilder();
@@ -463,116 +348,6 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertEmpty($result);
}
- public function testDeleteNestedShares() {
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
- 'share_with' => $qb->expr()->literal('sharedWith'),
- 'uid_owner' => $qb->expr()->literal('sharedBy'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(42),
- 'file_target' => $qb->expr()->literal('myTarget'),
- 'permissions' => $qb->expr()->literal(13),
- ]);
- $this->assertEquals(1, $qb->execute());
-
- // Get the id
- $qb = $this->dbConn->getQueryBuilder();
- $cursor = $qb->select('id')
- ->from('share')
- ->setMaxResults(1)
- ->orderBy('id', 'DESC')
- ->execute();
- $id1 = $cursor->fetch();
- $id1 = $id1['id'];
- $cursor->closeCursor();
-
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
- 'share_with' => $qb->expr()->literal('sharedWith'),
- 'uid_owner' => $qb->expr()->literal('sharedBy'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(42),
- 'file_target' => $qb->expr()->literal('myTarget'),
- 'permissions' => $qb->expr()->literal(13),
- 'parent' => $qb->expr()->literal($id1),
- ]);
- $this->assertEquals(1, $qb->execute());
-
- // Get the id
- $qb = $this->dbConn->getQueryBuilder();
- $cursor = $qb->select('id')
- ->from('share')
- ->setMaxResults(1)
- ->orderBy('id', 'DESC')
- ->execute();
- $id2 = $cursor->fetch();
- $id2 = $id2['id'];
- $cursor->closeCursor();
-
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
- 'share_with' => $qb->expr()->literal('sharedWith'),
- 'uid_owner' => $qb->expr()->literal('sharedBy'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(42),
- 'file_target' => $qb->expr()->literal('myTarget'),
- 'permissions' => $qb->expr()->literal(13),
- 'parent' => $qb->expr()->literal($id2),
- ]);
- $this->assertEquals(1, $qb->execute());
-
- $storage = $this->getMock('OC\Files\Storage\Storage');
- $storage
- ->method('getOwner')
- ->willReturn('shareOwner');
- $path = $this->getMock('OCP\Files\Node');
- $path
- ->method('getStorage')
- ->wilLReturn($storage);
- $this->userFolder
- ->method('getById')
- ->with(42)
- ->willReturn([$path]);
-
- $sharedWith = $this->getMock('OCP\IUser');
- $sharedWith
- ->method('getUID')
- ->willReturn('sharedWith');
- $sharedBy = $this->getMock('OCP\IUser');
- $sharedBy
- ->method('getUID')
- ->willReturn('sharedBy');
- $shareOwner = $this->getMock('OCP\IUser');
- $this->userManager
- ->method('get')
- ->will($this->returnValueMap([
- ['sharedWith', $sharedWith],
- ['sharedBy', $sharedBy],
- ['shareOwner', $shareOwner],
- ]));
-
- $share = $this->provider->getShareById($id1);
- $this->provider->delete($share);
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->select('*')
- ->from('share');
-
- $cursor = $qb->execute();
- $result = $cursor->fetchAll();
- $cursor->closeCursor();
-
- $this->assertEmpty($result);
- }
-
/**
* @expectedException \OC\Share20\Exception\BackendError
*/
@@ -581,29 +356,6 @@ class DefaultShareProviderTest extends \Test\TestCase {
$share
->method('getId')
->willReturn(42);
- $share
- ->expects($this->once())
- ->method('getShareType')
- ->willReturn(\OCP\Share::SHARE_TYPE_LINK);
-
- $path = $this->getMock('OCP\Files\Folder');
- $path
- ->expects($this->exactly(2))
- ->method('getId')
- ->willReturn(100);
- $share
- ->expects($this->exactly(3))
- ->method('getPath')
- ->willReturn($path);
-
- $sharedBy = $this->getMock('OCP\IUser');
- $sharedBy
- ->expects($this->once())
- ->method('getUID');
- $share
- ->expects($this->once())
- ->method('getSharedBy')
- ->willReturn($sharedBy);
$expr = $this->getMock('OCP\DB\QueryBuilder\IExpressionBuilder');
$qb = $this->getMock('OCP\DB\QueryBuilder\IQueryBuilder');
@@ -634,21 +386,151 @@ class DefaultShareProviderTest extends \Test\TestCase {
$db,
$this->userManager,
$this->groupManager,
- $this->userFolder,
+ $this->rootFolder,
]
)
- ->setMethods(['deleteChildren', 'getShareById'])
+ ->setMethods(['getShareById'])
->getMock();
$provider
->expects($this->once())
- ->method('deleteChildren')
- ->with($share);
- $provider
- ->expects($this->once())
->method('getShareById')
->with(42)
->willReturn($share);
$provider->delete($share);
}
+
+ public function testGetChildren() {
+ $qb = $this->dbConn->getQueryBuilder();
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
+ 'share_with' => $qb->expr()->literal('sharedWith'),
+ 'uid_owner' => $qb->expr()->literal('sharedBy'),
+ 'item_type' => $qb->expr()->literal('file'),
+ 'file_source' => $qb->expr()->literal(42),
+ 'file_target' => $qb->expr()->literal('myTarget'),
+ 'permissions' => $qb->expr()->literal(13),
+ ]);
+ $qb->execute();
+
+ // Get the id
+ $qb = $this->dbConn->getQueryBuilder();
+ $cursor = $qb->select('id')
+ ->from('share')
+ ->setMaxResults(1)
+ ->orderBy('id', 'DESC')
+ ->execute();
+ $id = $cursor->fetch();
+ $id = $id['id'];
+ $cursor->closeCursor();
+
+ $qb = $this->dbConn->getQueryBuilder();
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
+ 'share_with' => $qb->expr()->literal('user1'),
+ 'uid_owner' => $qb->expr()->literal('user2'),
+ 'item_type' => $qb->expr()->literal('file'),
+ 'file_source' => $qb->expr()->literal(1),
+ 'file_target' => $qb->expr()->literal('myTarget1'),
+ 'permissions' => $qb->expr()->literal(2),
+ 'parent' => $qb->expr()->literal($id),
+ ]);
+ $qb->execute();
+
+ $qb = $this->dbConn->getQueryBuilder();
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_GROUP),
+ 'share_with' => $qb->expr()->literal('group1'),
+ 'uid_owner' => $qb->expr()->literal('user3'),
+ 'item_type' => $qb->expr()->literal('folder'),
+ 'file_source' => $qb->expr()->literal(3),
+ 'file_target' => $qb->expr()->literal('myTarget2'),
+ 'permissions' => $qb->expr()->literal(4),
+ 'parent' => $qb->expr()->literal($id),
+ ]);
+ $qb->execute();
+
+ $shareOwner = $this->getMock('OCP\IUser');
+ $shareOwner->method('getUID')->willReturn('shareOwner');
+ $user1 = $this->getMock('OCP\IUser');
+ $user2 = $this->getMock('OCP\IUser');
+ $user2->method('getUID')->willReturn('user2');
+ $user3 = $this->getMock('OCP\IUser');
+ $user3->method('getUID')->willReturn('user3');
+
+ $user2Path = $this->getMock('\OCP\Files\File');
+ $user2Path->expects($this->once())->method('getOwner')->willReturn($shareOwner);
+ $user2Folder = $this->getMock('\OCP\Files\Folder');
+ $user2Folder->expects($this->once())
+ ->method('getById')
+ ->with(1)
+ ->willReturn([$user2Path]);
+
+ $user3Path = $this->getMock('\OCP\Files\Folder');
+ $user3Path->expects($this->once())->method('getOwner')->willReturn($shareOwner);
+ $user3Folder = $this->getMock('\OCP\Files\Folder');
+ $user3Folder->expects($this->once())
+ ->method('getById')
+ ->with(3)
+ ->willReturn([$user3Path]);
+
+ $ownerPath = $this->getMock('\OCP\Files\Folder');
+ $ownerFolder = $this->getMock('\OCP\Files\Folder');
+ $ownerFolder->method('getById')->willReturn([$ownerPath]);
+
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->will($this->returnValueMap([
+ ['shareOwner', $ownerFolder],
+ ['user2', $user2Folder],
+ ['user3', $user3Folder],
+ ]));
+
+ $this->userManager
+ ->method('get')
+ ->will($this->returnValueMap([
+ ['user1', $user1],
+ ['user2', $user2],
+ ['user3', $user3],
+ ]));
+
+ $group1 = $this->getMock('OCP\IGroup');
+ $this->groupManager
+ ->method('get')
+ ->will($this->returnValueMap([
+ ['group1', $group1]
+ ]));
+
+ $share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getId')->willReturn($id);
+
+ $children = $this->provider->getChildren($share);
+
+ $this->assertCount(2, $children);
+
+ //Child1
+ $this->assertEquals(\OCP\Share::SHARE_TYPE_USER, $children[0]->getShareType());
+ $this->assertEquals($user1, $children[0]->getSharedWith());
+ $this->assertEquals($user2, $children[0]->getSharedBy());
+ $this->assertEquals($shareOwner, $children[0]->getShareOwner());
+ $this->assertEquals($ownerPath, $children[0]->getPath());
+ $this->assertEquals(2, $children[0]->getPermissions());
+ $this->assertEquals(null, $children[0]->getToken());
+ $this->assertEquals(null, $children[0]->getExpirationDate());
+ $this->assertEquals('myTarget1', $children[0]->getTarget());
+
+ //Child2
+ $this->assertEquals(\OCP\Share::SHARE_TYPE_GROUP, $children[1]->getShareType());
+ $this->assertEquals($group1, $children[1]->getSharedWith());
+ $this->assertEquals($user3, $children[1]->getSharedBy());
+ $this->assertEquals($shareOwner, $children[1]->getShareOwner());
+ $this->assertEquals($ownerPath, $children[1]->getPath());
+ $this->assertEquals(4, $children[1]->getPermissions());
+ $this->assertEquals(null, $children[1]->getToken());
+ $this->assertEquals(null, $children[1]->getExpirationDate());
+ $this->assertEquals('myTarget2', $children[1]->getTarget());
+ }
}
diff --git a/tests/lib/share20/managertest.php b/tests/lib/share20/managertest.php
index fc6c30692f5..e4d0bfad584 100644
--- a/tests/lib/share20/managertest.php
+++ b/tests/lib/share20/managertest.php
@@ -23,64 +23,39 @@ namespace Test\Share20;
use OC\Share20\Manager;
use OC\Share20\Exception;
-
-use OCP\IUser;
-use OCP\IUserManager;
-use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IAppConfig;
-use OCP\Files\Folder;
-use OCP\Share20\IShareProvider;
+use OC\Share20\IShareProvider;
class ManagerTest extends \Test\TestCase {
/** @var Manager */
protected $manager;
- /** @var IUser */
- protected $user;
-
- /** @var IUserManager */
- protected $userManager;
-
- /** @var IGroupManager */
- protected $groupManager;
-
/** @var ILogger */
protected $logger;
/** @var IAppConfig */
protected $appConfig;
- /** @var Folder */
- protected $userFolder;
-
/** @var IShareProvider */
protected $defaultProvider;
public function setUp() {
- $this->user = $this->getMock('\OCP\IUser');
- $this->userManager = $this->getMock('\OCP\IUserManager');
- $this->groupManager = $this->getMock('\OCP\IGroupManager');
$this->logger = $this->getMock('\OCP\ILogger');
$this->appConfig = $this->getMock('\OCP\IAppConfig');
- $this->userFolder = $this->getMock('\OCP\Files\Folder');
$this->defaultProvider = $this->getMock('\OC\Share20\IShareProvider');
$this->manager = new Manager(
- $this->user,
- $this->userManager,
- $this->groupManager,
$this->logger,
$this->appConfig,
- $this->userFolder,
$this->defaultProvider
);
}
/**
- * @expectedException OC\Share20\Exception\ShareNotFound
+ * @expectedException \OC\Share20\Exception\ShareNotFound
*/
public function testDeleteNoShareId() {
$share = $this->getMock('\OC\Share20\IShare');
@@ -94,98 +69,293 @@ class ManagerTest extends \Test\TestCase {
$this->manager->deleteShare($share);
}
- public function testDelete() {
+ public function dataTestDelete() {
+ $user = $this->getMock('\OCP\IUser');
+ $user->method('getUID')->willReturn('sharedWithUser');
+
+ $group = $this->getMock('\OCP\IGroup');
+ $group->method('getGID')->willReturn('sharedWithGroup');
+
+ return [
+ [\OCP\Share::SHARE_TYPE_USER, $user, 'sharedWithUser'],
+ [\OCP\Share::SHARE_TYPE_GROUP, $group, 'sharedWithGroup'],
+ [\OCP\Share::SHARE_TYPE_LINK, '', ''],
+ [\OCP\Share::SHARE_TYPE_REMOTE, 'foo@bar.com', 'foo@bar.com'],
+ ];
+ }
+
+ /**
+ * @dataProvider dataTestDelete
+ */
+ public function testDelete($shareType, $sharedWith, $sharedWith_string) {
+ $manager = $this->getMockBuilder('\OC\Share20\Manager')
+ ->setConstructorArgs([
+ $this->logger,
+ $this->appConfig,
+ $this->defaultProvider
+ ])
+ ->setMethods(['getShareById', 'deleteChildren'])
+ ->getMock();
+
+ $sharedBy = $this->getMock('\OCP\IUser');
+ $sharedBy->method('getUID')->willReturn('sharedBy');
+
+ $path = $this->getMock('\OCP\Files\File');
+ $path->method('getId')->willReturn(1);
+
$share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getId')->willReturn(42);
+ $share->method('getShareType')->willReturn($shareType);
+ $share->method('getSharedWith')->willReturn($sharedWith);
+ $share->method('getSharedBy')->willReturn($sharedBy);
+ $share->method('getPath')->willReturn($path);
+ $share->method('getTarget')->willReturn('myTarget');
+
+ $manager->expects($this->once())->method('getShareById')->with(42)->willReturn($share);
+ $manager->expects($this->once())->method('deleteChildren')->with($share);
- $share
- ->expects($this->once())
- ->method('getId')
- ->with()
- ->willReturn(42);
$this->defaultProvider
->expects($this->once())
->method('delete')
->with($share);
- $this->manager->deleteShare($share);
+ $hookListner = $this->getMockBuilder('Dummy')->setMethods(['pre', 'post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'pre_unshare', $hookListner, 'pre');
+ \OCP\Util::connectHook('OCP\Share', 'post_unshare', $hookListner, 'post');
+
+ $hookListnerExpectsPre = [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => $shareType,
+ 'shareWith' => $sharedWith_string,
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget',
+ ];
+
+ $hookListnerExpectsPost = [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => $shareType,
+ 'shareWith' => $sharedWith_string,
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget',
+ 'deletedShares' => [
+ [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => $shareType,
+ 'shareWith' => $sharedWith_string,
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget',
+ ],
+ ],
+ ];
+
+
+ $hookListner
+ ->expects($this->exactly(1))
+ ->method('pre')
+ ->with($hookListnerExpectsPre);
+ $hookListner
+ ->expects($this->exactly(1))
+ ->method('post')
+ ->with($hookListnerExpectsPost);
+
+ $manager->deleteShare($share);
}
- /**
- * @expectedException OC\Share20\Exception\ShareNotFound
- */
- public function testGetShareByIdNotFoundInBackend() {
+ public function testDeleteNested() {
+ $manager = $this->getMockBuilder('\OC\Share20\Manager')
+ ->setConstructorArgs([
+ $this->logger,
+ $this->appConfig,
+ $this->defaultProvider
+ ])
+ ->setMethods(['getShareById'])
+ ->getMock();
+
+ $sharedBy1 = $this->getMock('\OCP\IUser');
+ $sharedBy1->method('getUID')->willReturn('sharedBy1');
+ $sharedBy2 = $this->getMock('\OCP\IUser');
+ $sharedBy2->method('getUID')->willReturn('sharedBy2');
+ $sharedBy3 = $this->getMock('\OCP\IUser');
+ $sharedBy3->method('getUID')->willReturn('sharedBy3');
+
+ $sharedWith1 = $this->getMock('\OCP\IUser');
+ $sharedWith1->method('getUID')->willReturn('sharedWith1');
+ $sharedWith2 = $this->getMock('\OCP\IGroup');
+ $sharedWith2->method('getGID')->willReturn('sharedWith2');
+
+ $path = $this->getMock('\OCP\Files\File');
+ $path->method('getId')->willReturn(1);
+
+ $share1 = $this->getMock('\OC\Share20\IShare');
+ $share1->method('getId')->willReturn(42);
+ $share1->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER);
+ $share1->method('getSharedWith')->willReturn($sharedWith1);
+ $share1->method('getSharedBy')->willReturn($sharedBy1);
+ $share1->method('getPath')->willReturn($path);
+ $share1->method('getTarget')->willReturn('myTarget1');
+
+ $share2 = $this->getMock('\OC\Share20\IShare');
+ $share2->method('getId')->willReturn(43);
+ $share2->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_GROUP);
+ $share2->method('getSharedWith')->willReturn($sharedWith2);
+ $share2->method('getSharedBy')->willReturn($sharedBy2);
+ $share2->method('getPath')->willReturn($path);
+ $share2->method('getTarget')->willReturn('myTarget2');
+ $share2->method('getParent')->willReturn(42);
+
+ $share3 = $this->getMock('\OC\Share20\IShare');
+ $share3->method('getId')->willReturn(44);
+ $share3->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_LINK);
+ $share3->method('getSharedBy')->willReturn($sharedBy3);
+ $share3->method('getPath')->willReturn($path);
+ $share3->method('getTarget')->willReturn('myTarget3');
+ $share3->method('getParent')->willReturn(43);
+
+ $manager->expects($this->once())->method('getShareById')->with(42)->willReturn($share1);
+
$this->defaultProvider
- ->expects($this->once())
- ->method('getShareById')
- ->with(42)
- ->will($this->throwException(new \OC\Share20\Exception\ShareNotFound()));
+ ->method('getChildren')
+ ->will($this->returnValueMap([
+ [$share1, [$share2]],
+ [$share2, [$share3]],
+ [$share3, []],
+ ]));
- $this->manager->getShareById(42);
+ $this->defaultProvider
+ ->method('delete')
+ ->withConsecutive($share3, $share2, $share1);
+
+ $hookListner = $this->getMockBuilder('Dummy')->setMethods(['pre', 'post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'pre_unshare', $hookListner, 'pre');
+ \OCP\Util::connectHook('OCP\Share', 'post_unshare', $hookListner, 'post');
+
+ $hookListnerExpectsPre = [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => \OCP\Share::SHARE_TYPE_USER,
+ 'shareWith' => 'sharedWith1',
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy1',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget1',
+ ];
+
+ $hookListnerExpectsPost = [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => \OCP\Share::SHARE_TYPE_USER,
+ 'shareWith' => 'sharedWith1',
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy1',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget1',
+ 'deletedShares' => [
+ [
+ 'id' => 44,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => \OCP\Share::SHARE_TYPE_LINK,
+ 'shareWith' => '',
+ 'itemparent' => 43,
+ 'uidOwner' => 'sharedBy3',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget3',
+ ],
+ [
+ 'id' => 43,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => \OCP\Share::SHARE_TYPE_GROUP,
+ 'shareWith' => 'sharedWith2',
+ 'itemparent' => 42,
+ 'uidOwner' => 'sharedBy2',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget2',
+ ],
+ [
+ 'id' => 42,
+ 'itemType' => 'file',
+ 'itemSource' => 1,
+ 'shareType' => \OCP\Share::SHARE_TYPE_USER,
+ 'shareWith' => 'sharedWith1',
+ 'itemparent' => null,
+ 'uidOwner' => 'sharedBy1',
+ 'fileSource' => 1,
+ 'fileTarget' => 'myTarget1',
+ ],
+ ],
+ ];
+
+
+ $hookListner
+ ->expects($this->exactly(1))
+ ->method('pre')
+ ->with($hookListnerExpectsPre);
+ $hookListner
+ ->expects($this->exactly(1))
+ ->method('post')
+ ->with($hookListnerExpectsPost);
+
+ $manager->deleteShare($share1);
}
- /**
- * @expectedException OC\Share20\Exception\ShareNotFound
- */
- public function testGetShareByIdNotAuthorized() {
- $otherUser1 = $this->getMock('\OCP\IUser');
- $otherUser2 = $this->getMock('\OCP\IUser');
- $otherUser3 = $this->getMock('\OCP\IUser');
+ public function testDeleteChildren() {
+ $manager = $this->getMockBuilder('\OC\Share20\Manager')
+ ->setConstructorArgs([
+ $this->logger,
+ $this->appConfig,
+ $this->defaultProvider
+ ])
+ ->setMethods(['deleteShare'])
+ ->getMock();
$share = $this->getMock('\OC\Share20\IShare');
- $share
- ->expects($this->once())
- ->method('getSharedWith')
- ->with()
- ->willReturn($otherUser1);
- $share
- ->expects($this->once())
- ->method('getSharedBy')
- ->with()
- ->willReturn($otherUser2);
- $share
- ->expects($this->once())
- ->method('getShareOwner')
- ->with()
- ->willReturn($otherUser3);
+
+ $child1 = $this->getMock('\OC\Share20\IShare');
+ $child2 = $this->getMock('\OC\Share20\IShare');
+ $child3 = $this->getMock('\OC\Share20\IShare');
+
+ $shares = [
+ $child1,
+ $child2,
+ $child3,
+ ];
$this->defaultProvider
- ->expects($this->once())
- ->method('getShareById')
- ->with(42)
- ->willReturn($share);
+ ->expects($this->exactly(4))
+ ->method('getChildren')
+ ->will($this->returnCallback(function($_share) use ($share, $shares) {
+ if ($_share === $share) {
+ return $shares;
+ }
+ return [];
+ }));
- $this->manager->getShareById(42);
- }
+ $this->defaultProvider
+ ->expects($this->exactly(3))
+ ->method('delete')
+ ->withConsecutive($child1, $child2, $child3);
- public function dataGetShareById() {
- return [
- ['getSharedWith'],
- ['getSharedBy'],
- ['getShareOwner'],
- ];
+ $result = $this->invokePrivate($manager, 'deleteChildren', [$share]);
+ $this->assertSame($shares, $result);
}
- /**
- * @dataProvider dataGetShareById
- */
- public function testGetShareById($currentUserIs) {
- $otherUser1 = $this->getMock('\OCP\IUser');
- $otherUser2 = $this->getMock('\OCP\IUser');
- $otherUser3 = $this->getMock('\OCP\IUser');
-
+ public function testGetShareById() {
$share = $this->getMock('\OC\Share20\IShare');
- $share
- ->method('getSharedWith')
- ->with()
- ->willReturn($currentUserIs === 'getSharedWith' ? $this->user : $otherUser1);
- $share
- ->method('getSharedBy')
- ->with()
- ->willReturn($currentUserIs === 'getSharedBy' ? $this->user : $otherUser2);
- $share
- ->method('getShareOwner')
- ->with()
- ->willReturn($currentUserIs === 'getShareOwner' ? $this->user : $otherUser3);
$this->defaultProvider
->expects($this->once())
diff --git a/version.php b/version.php
index 7f45f5899e1..50adcf5db60 100644
--- a/version.php
+++ b/version.php
@@ -25,7 +25,7 @@
// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = array(9, 0, 0, 2);
+$OC_Version = array(9, 0, 0, 3);
// The human readable string
$OC_VersionString = '9.0 pre alpha';