summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.htaccess2
-rw-r--r--.idea/codeStyleSettings.xml2
m---------3rdparty0
-rw-r--r--apps/files/ajax/newfile.php3
-rw-r--r--apps/files/ajax/upload.php24
-rw-r--r--apps/files/command/scan.php43
-rw-r--r--apps/files/css/files.css37
-rw-r--r--apps/files/css/upload.css22
-rw-r--r--apps/files/index.php3
-rw-r--r--apps/files/js/file-upload.js15
-rw-r--r--apps/files/js/fileactions.js352
-rw-r--r--apps/files/js/filelist.js47
-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.js2
-rw-r--r--apps/files/l10n/ar.json2
-rw-r--r--apps/files/l10n/ast.js2
-rw-r--r--apps/files/l10n/ast.json2
-rw-r--r--apps/files/l10n/az.js1
-rw-r--r--apps/files/l10n/az.json1
-rw-r--r--apps/files/l10n/bg_BG.js2
-rw-r--r--apps/files/l10n/bg_BG.json2
-rw-r--r--apps/files/l10n/bn_BD.js1
-rw-r--r--apps/files/l10n/bn_BD.json1
-rw-r--r--apps/files/l10n/bn_IN.js2
-rw-r--r--apps/files/l10n/bn_IN.json2
-rw-r--r--apps/files/l10n/bs.js1
-rw-r--r--apps/files/l10n/bs.json1
-rw-r--r--apps/files/l10n/ca.js2
-rw-r--r--apps/files/l10n/ca.json2
-rw-r--r--apps/files/l10n/cs_CZ.js2
-rw-r--r--apps/files/l10n/cs_CZ.json2
-rw-r--r--apps/files/l10n/cy_GB.js2
-rw-r--r--apps/files/l10n/cy_GB.json2
-rw-r--r--apps/files/l10n/da.js2
-rw-r--r--apps/files/l10n/da.json2
-rw-r--r--apps/files/l10n/de.js2
-rw-r--r--apps/files/l10n/de.json2
-rw-r--r--apps/files/l10n/de_AT.js1
-rw-r--r--apps/files/l10n/de_AT.json1
-rw-r--r--apps/files/l10n/de_DE.js2
-rw-r--r--apps/files/l10n/de_DE.json2
-rw-r--r--apps/files/l10n/el.js2
-rw-r--r--apps/files/l10n/el.json2
-rw-r--r--apps/files/l10n/en_GB.js2
-rw-r--r--apps/files/l10n/en_GB.json2
-rw-r--r--apps/files/l10n/eo.js2
-rw-r--r--apps/files/l10n/eo.json2
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/es_AR.js2
-rw-r--r--apps/files/l10n/es_AR.json2
-rw-r--r--apps/files/l10n/es_CL.js1
-rw-r--r--apps/files/l10n/es_CL.json1
-rw-r--r--apps/files/l10n/es_MX.js2
-rw-r--r--apps/files/l10n/es_MX.json2
-rw-r--r--apps/files/l10n/et_EE.js2
-rw-r--r--apps/files/l10n/et_EE.json2
-rw-r--r--apps/files/l10n/eu.js2
-rw-r--r--apps/files/l10n/eu.json2
-rw-r--r--apps/files/l10n/fa.js2
-rw-r--r--apps/files/l10n/fa.json2
-rw-r--r--apps/files/l10n/fi_FI.js2
-rw-r--r--apps/files/l10n/fi_FI.json2
-rw-r--r--apps/files/l10n/fr.js2
-rw-r--r--apps/files/l10n/fr.json2
-rw-r--r--apps/files/l10n/gl.js2
-rw-r--r--apps/files/l10n/gl.json2
-rw-r--r--apps/files/l10n/he.js2
-rw-r--r--apps/files/l10n/he.json2
-rw-r--r--apps/files/l10n/hi.js1
-rw-r--r--apps/files/l10n/hi.json1
-rw-r--r--apps/files/l10n/hr.js2
-rw-r--r--apps/files/l10n/hr.json2
-rw-r--r--apps/files/l10n/hu_HU.js2
-rw-r--r--apps/files/l10n/hu_HU.json2
-rw-r--r--apps/files/l10n/ia.js1
-rw-r--r--apps/files/l10n/ia.json1
-rw-r--r--apps/files/l10n/id.js2
-rw-r--r--apps/files/l10n/id.json2
-rw-r--r--apps/files/l10n/is.js1
-rw-r--r--apps/files/l10n/is.json1
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/ja.js2
-rw-r--r--apps/files/l10n/ja.json2
-rw-r--r--apps/files/l10n/ka_GE.js2
-rw-r--r--apps/files/l10n/ka_GE.json2
-rw-r--r--apps/files/l10n/km.js2
-rw-r--r--apps/files/l10n/km.json2
-rw-r--r--apps/files/l10n/ko.js2
-rw-r--r--apps/files/l10n/ko.json2
-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.js1
-rw-r--r--apps/files/l10n/lb.json1
-rw-r--r--apps/files/l10n/lt_LT.js2
-rw-r--r--apps/files/l10n/lt_LT.json2
-rw-r--r--apps/files/l10n/lv.js2
-rw-r--r--apps/files/l10n/lv.json2
-rw-r--r--apps/files/l10n/mk.js2
-rw-r--r--apps/files/l10n/mk.json2
-rw-r--r--apps/files/l10n/ms_MY.js1
-rw-r--r--apps/files/l10n/ms_MY.json1
-rw-r--r--apps/files/l10n/nb_NO.js2
-rw-r--r--apps/files/l10n/nb_NO.json2
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/nn_NO.js2
-rw-r--r--apps/files/l10n/nn_NO.json2
-rw-r--r--apps/files/l10n/oc.js1
-rw-r--r--apps/files/l10n/oc.json1
-rw-r--r--apps/files/l10n/pa.js1
-rw-r--r--apps/files/l10n/pa.json1
-rw-r--r--apps/files/l10n/pl.js2
-rw-r--r--apps/files/l10n/pl.json2
-rw-r--r--apps/files/l10n/pt_BR.js2
-rw-r--r--apps/files/l10n/pt_BR.json2
-rw-r--r--apps/files/l10n/pt_PT.js4
-rw-r--r--apps/files/l10n/pt_PT.json4
-rw-r--r--apps/files/l10n/ro.js2
-rw-r--r--apps/files/l10n/ro.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/si_LK.js1
-rw-r--r--apps/files/l10n/si_LK.json1
-rw-r--r--apps/files/l10n/sk_SK.js2
-rw-r--r--apps/files/l10n/sk_SK.json2
-rw-r--r--apps/files/l10n/sl.js2
-rw-r--r--apps/files/l10n/sl.json2
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-rw-r--r--apps/files/l10n/sr.js2
-rw-r--r--apps/files/l10n/sr.json2
-rw-r--r--apps/files/l10n/sr@latin.js1
-rw-r--r--apps/files/l10n/sr@latin.json1
-rw-r--r--apps/files/l10n/sv.js2
-rw-r--r--apps/files/l10n/sv.json2
-rw-r--r--apps/files/l10n/ta_LK.js1
-rw-r--r--apps/files/l10n/ta_LK.json1
-rw-r--r--apps/files/l10n/te.js1
-rw-r--r--apps/files/l10n/te.json1
-rw-r--r--apps/files/l10n/th_TH.js1
-rw-r--r--apps/files/l10n/th_TH.json1
-rw-r--r--apps/files/l10n/tr.js2
-rw-r--r--apps/files/l10n/tr.json2
-rw-r--r--apps/files/l10n/ug.js2
-rw-r--r--apps/files/l10n/ug.json2
-rw-r--r--apps/files/l10n/uk.js2
-rw-r--r--apps/files/l10n/uk.json2
-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.js2
-rw-r--r--apps/files/l10n/vi.json2
-rw-r--r--apps/files/l10n/zh_CN.js2
-rw-r--r--apps/files/l10n/zh_CN.json2
-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.js2
-rw-r--r--apps/files/l10n/zh_TW.json2
-rw-r--r--apps/files/lib/helper.php2
-rw-r--r--apps/files/templates/fileexists.html1
-rw-r--r--apps/files/templates/index.php1
-rw-r--r--apps/files/tests/helper.php4
-rw-r--r--apps/files/tests/js/fileactionsSpec.js48
-rw-r--r--apps/files/tests/js/filelistSpec.js20
-rw-r--r--apps/files/triggerupdate.php23
-rw-r--r--apps/files_encryption/ajax/adminrecovery.php7
-rw-r--r--apps/files_encryption/ajax/changeRecoveryPassword.php14
-rw-r--r--apps/files_encryption/ajax/getMigrationStatus.php3
-rw-r--r--apps/files_encryption/ajax/updatePrivateKeyPassword.php16
-rw-r--r--apps/files_encryption/ajax/userrecovery.php4
-rw-r--r--apps/files_encryption/appinfo/app.php27
-rw-r--r--apps/files_encryption/appinfo/routes.php2
-rw-r--r--apps/files_encryption/exception/encryptionexception.php (renamed from apps/files_encryption/exception/encryptionException.php)2
-rw-r--r--apps/files_encryption/exception/multikeydecryptexception.php (renamed from apps/files_encryption/exception/multiKeyDecryptException.php)2
-rw-r--r--apps/files_encryption/exception/multikeyencryptexception.php (renamed from apps/files_encryption/exception/multiKeyEncryptException.php)2
-rw-r--r--apps/files_encryption/files/error.php8
-rw-r--r--apps/files_encryption/l10n/cs_CZ.js1
-rw-r--r--apps/files_encryption/l10n/cs_CZ.json1
-rw-r--r--apps/files_encryption/l10n/da.js1
-rw-r--r--apps/files_encryption/l10n/da.json1
-rw-r--r--apps/files_encryption/l10n/de.js1
-rw-r--r--apps/files_encryption/l10n/de.json1
-rw-r--r--apps/files_encryption/l10n/de_DE.js1
-rw-r--r--apps/files_encryption/l10n/de_DE.json1
-rw-r--r--apps/files_encryption/l10n/en_GB.js1
-rw-r--r--apps/files_encryption/l10n/en_GB.json1
-rw-r--r--apps/files_encryption/l10n/es.js1
-rw-r--r--apps/files_encryption/l10n/es.json1
-rw-r--r--apps/files_encryption/l10n/fr.js1
-rw-r--r--apps/files_encryption/l10n/fr.json1
-rw-r--r--apps/files_encryption/l10n/it.js1
-rw-r--r--apps/files_encryption/l10n/it.json1
-rw-r--r--apps/files_encryption/l10n/ja.js5
-rw-r--r--apps/files_encryption/l10n/ja.json5
-rw-r--r--apps/files_encryption/l10n/nl.js1
-rw-r--r--apps/files_encryption/l10n/nl.json1
-rw-r--r--apps/files_encryption/l10n/pt_BR.js1
-rw-r--r--apps/files_encryption/l10n/pt_BR.json1
-rw-r--r--apps/files_encryption/l10n/ru.js5
-rw-r--r--apps/files_encryption/l10n/ru.json5
-rw-r--r--apps/files_encryption/l10n/sl.js1
-rw-r--r--apps/files_encryption/l10n/sl.json1
-rw-r--r--apps/files_encryption/l10n/tr.js1
-rw-r--r--apps/files_encryption/l10n/tr.json1
-rw-r--r--apps/files_encryption/lib/capabilities.php2
-rw-r--r--apps/files_encryption/lib/crypt.php12
-rw-r--r--apps/files_encryption/lib/helper.php64
-rw-r--r--apps/files_encryption/lib/hooks.php (renamed from apps/files_encryption/hooks/hooks.php)22
-rw-r--r--apps/files_encryption/lib/keymanager.php17
-rw-r--r--apps/files_encryption/lib/migration.php4
-rw-r--r--apps/files_encryption/lib/proxy.php8
-rw-r--r--apps/files_encryption/lib/session.php12
-rw-r--r--apps/files_encryption/lib/stream.php25
-rw-r--r--apps/files_encryption/lib/util.php42
-rw-r--r--apps/files_encryption/settings-admin.php2
-rw-r--r--apps/files_encryption/settings-personal.php5
-rw-r--r--apps/files_encryption/templates/invalid_private_key.php2
-rw-r--r--apps/files_encryption/templates/settings-admin.php2
-rw-r--r--apps/files_encryption/templates/settings-personal.php6
-rwxr-xr-xapps/files_encryption/tests/crypt.php64
-rw-r--r--apps/files_encryption/tests/helper.php50
-rw-r--r--apps/files_encryption/tests/hooks.php94
-rw-r--r--apps/files_encryption/tests/keymanager.php184
-rw-r--r--apps/files_encryption/tests/migration.php24
-rw-r--r--apps/files_encryption/tests/proxy.php34
-rwxr-xr-xapps/files_encryption/tests/share.php484
-rw-r--r--apps/files_encryption/tests/stream.php24
-rw-r--r--apps/files_encryption/tests/testcase.php14
-rwxr-xr-xapps/files_encryption/tests/trashbin.php20
-rwxr-xr-xapps/files_encryption/tests/util.php64
-rwxr-xr-xapps/files_encryption/tests/webdav.php38
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Aws.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php42
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Enum/Region.php3
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Hash/HashUtils.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php10
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/aws-config.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/public-endpoints.php64
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/RulesEndpointProvider.php67
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Signature/SignatureV4.php48
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Acp.php10
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/AcpBuilder.php14
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/ClearBucket.php6
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsBatch.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsTransfer.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grant.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grantee.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/MultipartUpload/UploadBuilder.php22
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Resources/s3-2006-03-01.php236
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3Client.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3SignatureV4.php14
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/StreamWrapper.php44
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/AbstractSyncBuilder.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/DownloadSyncBuilder.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/UploadSyncBuilder.php10
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ApcClassLoader.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ClassMapGenerator.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Psr4ClassLoader.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/README.md48
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/A.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/B.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php20
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/deps/traits.php3
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php3
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Psr4ClassLoaderTest.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/UniversalClassLoader.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/XcacheClassLoader.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/EventDispatcherInterface.php4
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/README.md16
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php14
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php14
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php2
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php1
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/composer.json2
-rw-r--r--apps/files_external/appinfo/app.php2
-rw-r--r--apps/files_external/img/app.svg212
-rw-r--r--apps/files_external/js/settings.js4
-rw-r--r--apps/files_external/l10n/ast.js1
-rw-r--r--apps/files_external/l10n/ast.json1
-rw-r--r--apps/files_external/l10n/bg_BG.js1
-rw-r--r--apps/files_external/l10n/bg_BG.json1
-rw-r--r--apps/files_external/l10n/bn_BD.js1
-rw-r--r--apps/files_external/l10n/bn_BD.json1
-rw-r--r--apps/files_external/l10n/ca.js1
-rw-r--r--apps/files_external/l10n/ca.json1
-rw-r--r--apps/files_external/l10n/cs_CZ.js2
-rw-r--r--apps/files_external/l10n/cs_CZ.json2
-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.js6
-rw-r--r--apps/files_external/l10n/de.json6
-rw-r--r--apps/files_external/l10n/de_DE.js6
-rw-r--r--apps/files_external/l10n/de_DE.json6
-rw-r--r--apps/files_external/l10n/el.js1
-rw-r--r--apps/files_external/l10n/el.json1
-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.js1
-rw-r--r--apps/files_external/l10n/eo.json1
-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/et_EE.js1
-rw-r--r--apps/files_external/l10n/et_EE.json1
-rw-r--r--apps/files_external/l10n/eu.js1
-rw-r--r--apps/files_external/l10n/eu.json1
-rw-r--r--apps/files_external/l10n/fi_FI.js4
-rw-r--r--apps/files_external/l10n/fi_FI.json4
-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.js1
-rw-r--r--apps/files_external/l10n/gl.json1
-rw-r--r--apps/files_external/l10n/hr.js1
-rw-r--r--apps/files_external/l10n/hr.json1
-rw-r--r--apps/files_external/l10n/id.js1
-rw-r--r--apps/files_external/l10n/id.json1
-rw-r--r--apps/files_external/l10n/it.js2
-rw-r--r--apps/files_external/l10n/it.json2
-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/nb_NO.js1
-rw-r--r--apps/files_external/l10n/nb_NO.json1
-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/pl.js1
-rw-r--r--apps/files_external/l10n/pl.json1
-rw-r--r--apps/files_external/l10n/pt_BR.js2
-rw-r--r--apps/files_external/l10n/pt_BR.json2
-rw-r--r--apps/files_external/l10n/pt_PT.js1
-rw-r--r--apps/files_external/l10n/pt_PT.json1
-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.js1
-rw-r--r--apps/files_external/l10n/sk_SK.json1
-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/sv.js1
-rw-r--r--apps/files_external/l10n/sv.json1
-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.js1
-rw-r--r--apps/files_external/l10n/uk.json1
-rw-r--r--apps/files_external/l10n/zh_CN.js1
-rw-r--r--apps/files_external/l10n/zh_CN.json1
-rw-r--r--apps/files_external/l10n/zh_TW.js1
-rw-r--r--apps/files_external/l10n/zh_TW.json1
-rw-r--r--apps/files_external/lib/config.php25
-rw-r--r--apps/files_external/lib/config/configadapter.php44
-rw-r--r--apps/files_external/lib/google.php12
-rw-r--r--apps/files_external/lib/personalmount.php4
-rw-r--r--apps/files_external/lib/smb_oc.php31
-rw-r--r--apps/files_external/tests/js/mountsfilelistSpec.js6
-rw-r--r--apps/files_sharing/api/local.php (renamed from apps/files_sharing/lib/api.php)6
-rw-r--r--apps/files_sharing/api/server2server.php224
-rw-r--r--apps/files_sharing/appinfo/app.php26
-rw-r--r--apps/files_sharing/appinfo/database.xml15
-rw-r--r--apps/files_sharing/appinfo/routes.php10
-rw-r--r--apps/files_sharing/appinfo/version2
-rw-r--r--apps/files_sharing/js/app.js3
-rw-r--r--apps/files_sharing/js/public.js4
-rw-r--r--apps/files_sharing/js/share.js74
-rw-r--r--apps/files_sharing/js/sharedfilelist.js2
-rw-r--r--apps/files_sharing/l10n/cs_CZ.js2
-rw-r--r--apps/files_sharing/l10n/cs_CZ.json2
-rw-r--r--apps/files_sharing/l10n/da.js2
-rw-r--r--apps/files_sharing/l10n/da.json2
-rw-r--r--apps/files_sharing/l10n/de.js2
-rw-r--r--apps/files_sharing/l10n/de.json2
-rw-r--r--apps/files_sharing/l10n/de_DE.js2
-rw-r--r--apps/files_sharing/l10n/de_DE.json2
-rw-r--r--apps/files_sharing/l10n/en_GB.js2
-rw-r--r--apps/files_sharing/l10n/en_GB.json2
-rw-r--r--apps/files_sharing/l10n/es.js1
-rw-r--r--apps/files_sharing/l10n/es.json1
-rw-r--r--apps/files_sharing/l10n/fi_FI.js2
-rw-r--r--apps/files_sharing/l10n/fi_FI.json2
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/files_sharing/l10n/ja.js2
-rw-r--r--apps/files_sharing/l10n/ja.json2
-rw-r--r--apps/files_sharing/l10n/nl.js2
-rw-r--r--apps/files_sharing/l10n/nl.json2
-rw-r--r--apps/files_sharing/l10n/pt_BR.js2
-rw-r--r--apps/files_sharing/l10n/pt_BR.json2
-rw-r--r--apps/files_sharing/l10n/ru.js2
-rw-r--r--apps/files_sharing/l10n/ru.json2
-rw-r--r--apps/files_sharing/l10n/tr.js2
-rw-r--r--apps/files_sharing/l10n/tr.json2
-rw-r--r--apps/files_sharing/lib/activity.php196
-rw-r--r--apps/files_sharing/lib/cache.php62
-rw-r--r--apps/files_sharing/lib/external/manager.php18
-rw-r--r--apps/files_sharing/lib/external/mount.php5
-rw-r--r--apps/files_sharing/lib/helper.php24
-rw-r--r--apps/files_sharing/lib/sharedmount.php4
-rw-r--r--apps/files_sharing/tests/api.php60
-rw-r--r--apps/files_sharing/tests/cache.php34
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js20
-rw-r--r--apps/files_sharing/tests/js/sharedfilelistSpec.js20
-rw-r--r--apps/files_sharing/tests/server2server.php102
-rw-r--r--apps/files_trashbin/js/app.js43
-rw-r--r--apps/files_trashbin/js/filelist.js5
-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.js1
-rw-r--r--apps/files_trashbin/l10n/ast.json1
-rw-r--r--apps/files_trashbin/l10n/bg_BG.js1
-rw-r--r--apps/files_trashbin/l10n/bg_BG.json1
-rw-r--r--apps/files_trashbin/l10n/bn_IN.js1
-rw-r--r--apps/files_trashbin/l10n/bn_IN.json1
-rw-r--r--apps/files_trashbin/l10n/ca.js1
-rw-r--r--apps/files_trashbin/l10n/ca.json1
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.js1
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.json1
-rw-r--r--apps/files_trashbin/l10n/cy_GB.js1
-rw-r--r--apps/files_trashbin/l10n/cy_GB.json1
-rw-r--r--apps/files_trashbin/l10n/da.js1
-rw-r--r--apps/files_trashbin/l10n/da.json1
-rw-r--r--apps/files_trashbin/l10n/de.js1
-rw-r--r--apps/files_trashbin/l10n/de.json1
-rw-r--r--apps/files_trashbin/l10n/de_DE.js1
-rw-r--r--apps/files_trashbin/l10n/de_DE.json1
-rw-r--r--apps/files_trashbin/l10n/el.js1
-rw-r--r--apps/files_trashbin/l10n/el.json1
-rw-r--r--apps/files_trashbin/l10n/en_GB.js1
-rw-r--r--apps/files_trashbin/l10n/en_GB.json1
-rw-r--r--apps/files_trashbin/l10n/eo.js1
-rw-r--r--apps/files_trashbin/l10n/eo.json1
-rw-r--r--apps/files_trashbin/l10n/es.js1
-rw-r--r--apps/files_trashbin/l10n/es.json1
-rw-r--r--apps/files_trashbin/l10n/es_AR.js1
-rw-r--r--apps/files_trashbin/l10n/es_AR.json1
-rw-r--r--apps/files_trashbin/l10n/es_MX.js1
-rw-r--r--apps/files_trashbin/l10n/es_MX.json1
-rw-r--r--apps/files_trashbin/l10n/et_EE.js1
-rw-r--r--apps/files_trashbin/l10n/et_EE.json1
-rw-r--r--apps/files_trashbin/l10n/eu.js1
-rw-r--r--apps/files_trashbin/l10n/eu.json1
-rw-r--r--apps/files_trashbin/l10n/fa.js1
-rw-r--r--apps/files_trashbin/l10n/fa.json1
-rw-r--r--apps/files_trashbin/l10n/fi_FI.js1
-rw-r--r--apps/files_trashbin/l10n/fi_FI.json1
-rw-r--r--apps/files_trashbin/l10n/fr.js1
-rw-r--r--apps/files_trashbin/l10n/fr.json1
-rw-r--r--apps/files_trashbin/l10n/gl.js1
-rw-r--r--apps/files_trashbin/l10n/gl.json1
-rw-r--r--apps/files_trashbin/l10n/he.js1
-rw-r--r--apps/files_trashbin/l10n/he.json1
-rw-r--r--apps/files_trashbin/l10n/hr.js1
-rw-r--r--apps/files_trashbin/l10n/hr.json1
-rw-r--r--apps/files_trashbin/l10n/hu_HU.js1
-rw-r--r--apps/files_trashbin/l10n/hu_HU.json1
-rw-r--r--apps/files_trashbin/l10n/id.js1
-rw-r--r--apps/files_trashbin/l10n/id.json1
-rw-r--r--apps/files_trashbin/l10n/it.js1
-rw-r--r--apps/files_trashbin/l10n/it.json1
-rw-r--r--apps/files_trashbin/l10n/ja.js1
-rw-r--r--apps/files_trashbin/l10n/ja.json1
-rw-r--r--apps/files_trashbin/l10n/ka_GE.js1
-rw-r--r--apps/files_trashbin/l10n/ka_GE.json1
-rw-r--r--apps/files_trashbin/l10n/km.js1
-rw-r--r--apps/files_trashbin/l10n/km.json1
-rw-r--r--apps/files_trashbin/l10n/ko.js1
-rw-r--r--apps/files_trashbin/l10n/ko.json1
-rw-r--r--apps/files_trashbin/l10n/lt_LT.js1
-rw-r--r--apps/files_trashbin/l10n/lt_LT.json1
-rw-r--r--apps/files_trashbin/l10n/lv.js1
-rw-r--r--apps/files_trashbin/l10n/lv.json1
-rw-r--r--apps/files_trashbin/l10n/mk.js1
-rw-r--r--apps/files_trashbin/l10n/mk.json1
-rw-r--r--apps/files_trashbin/l10n/nb_NO.js1
-rw-r--r--apps/files_trashbin/l10n/nb_NO.json1
-rw-r--r--apps/files_trashbin/l10n/nl.js1
-rw-r--r--apps/files_trashbin/l10n/nl.json1
-rw-r--r--apps/files_trashbin/l10n/nn_NO.js1
-rw-r--r--apps/files_trashbin/l10n/nn_NO.json1
-rw-r--r--apps/files_trashbin/l10n/pl.js1
-rw-r--r--apps/files_trashbin/l10n/pl.json1
-rw-r--r--apps/files_trashbin/l10n/pt_BR.js1
-rw-r--r--apps/files_trashbin/l10n/pt_BR.json1
-rw-r--r--apps/files_trashbin/l10n/pt_PT.js1
-rw-r--r--apps/files_trashbin/l10n/pt_PT.json1
-rw-r--r--apps/files_trashbin/l10n/ro.js1
-rw-r--r--apps/files_trashbin/l10n/ro.json1
-rw-r--r--apps/files_trashbin/l10n/ru.js1
-rw-r--r--apps/files_trashbin/l10n/ru.json1
-rw-r--r--apps/files_trashbin/l10n/sk_SK.js1
-rw-r--r--apps/files_trashbin/l10n/sk_SK.json1
-rw-r--r--apps/files_trashbin/l10n/sl.js1
-rw-r--r--apps/files_trashbin/l10n/sl.json1
-rw-r--r--apps/files_trashbin/l10n/sq.js1
-rw-r--r--apps/files_trashbin/l10n/sq.json1
-rw-r--r--apps/files_trashbin/l10n/sr.js1
-rw-r--r--apps/files_trashbin/l10n/sr.json1
-rw-r--r--apps/files_trashbin/l10n/sv.js1
-rw-r--r--apps/files_trashbin/l10n/sv.json1
-rw-r--r--apps/files_trashbin/l10n/te.js1
-rw-r--r--apps/files_trashbin/l10n/te.json1
-rw-r--r--apps/files_trashbin/l10n/tr.js1
-rw-r--r--apps/files_trashbin/l10n/tr.json1
-rw-r--r--apps/files_trashbin/l10n/ug.js1
-rw-r--r--apps/files_trashbin/l10n/ug.json1
-rw-r--r--apps/files_trashbin/l10n/uk.js1
-rw-r--r--apps/files_trashbin/l10n/uk.json1
-rw-r--r--apps/files_trashbin/l10n/vi.js1
-rw-r--r--apps/files_trashbin/l10n/vi.json1
-rw-r--r--apps/files_trashbin/l10n/zh_CN.js1
-rw-r--r--apps/files_trashbin/l10n/zh_CN.json1
-rw-r--r--apps/files_trashbin/l10n/zh_TW.js1
-rw-r--r--apps/files_trashbin/l10n/zh_TW.json1
-rw-r--r--apps/files_trashbin/lib/trashbin.php10
-rw-r--r--apps/files_versions/lib/storage.php7
-rw-r--r--apps/user_ldap/l10n/ja.js1
-rw-r--r--apps/user_ldap/l10n/ja.json1
-rw-r--r--apps/user_ldap/l10n/sl.js1
-rw-r--r--apps/user_ldap/l10n/sl.json1
-rw-r--r--apps/user_ldap/lib/access.php10
-rw-r--r--apps/user_ldap/user_ldap.php2
-rwxr-xr-xautotest.sh6
-rw-r--r--build/README.TXT28
-rw-r--r--build/build.xml158
-rw-r--r--build/phpcs.xml80
-rw-r--r--build/phpmd.xml9
-rw-r--r--core/ajax/update.php6
-rw-r--r--core/command/upgrade.php2
-rw-r--r--core/css/styles.css6
-rw-r--r--core/js/js.js81
-rw-r--r--core/js/oc-dialogs.js73
-rw-r--r--core/js/setupchecks.js7
-rw-r--r--core/js/share.js20
-rw-r--r--core/js/tests/specHelper.js3
-rw-r--r--core/js/tests/specs/coreSpec.js31
-rw-r--r--core/js/tests/specs/shareSpec.js15
-rw-r--r--core/js/update.js5
-rw-r--r--core/l10n/ar.js1
-rw-r--r--core/l10n/ar.json1
-rw-r--r--core/l10n/ast.js2
-rw-r--r--core/l10n/ast.json2
-rw-r--r--core/l10n/bg_BG.js2
-rw-r--r--core/l10n/bg_BG.json2
-rw-r--r--core/l10n/ca.js2
-rw-r--r--core/l10n/ca.json2
-rw-r--r--core/l10n/cs_CZ.js8
-rw-r--r--core/l10n/cs_CZ.json8
-rw-r--r--core/l10n/da.js7
-rw-r--r--core/l10n/da.json7
-rw-r--r--core/l10n/de.js8
-rw-r--r--core/l10n/de.json8
-rw-r--r--core/l10n/de_DE.js8
-rw-r--r--core/l10n/de_DE.json8
-rw-r--r--core/l10n/el.js2
-rw-r--r--core/l10n/el.json2
-rw-r--r--core/l10n/en_GB.js8
-rw-r--r--core/l10n/en_GB.json8
-rw-r--r--core/l10n/es.js2
-rw-r--r--core/l10n/es.json2
-rw-r--r--core/l10n/es_AR.js1
-rw-r--r--core/l10n/es_AR.json1
-rw-r--r--core/l10n/es_MX.js1
-rw-r--r--core/l10n/es_MX.json1
-rw-r--r--core/l10n/et_EE.js2
-rw-r--r--core/l10n/et_EE.json2
-rw-r--r--core/l10n/eu.js2
-rw-r--r--core/l10n/eu.json2
-rw-r--r--core/l10n/fa.js2
-rw-r--r--core/l10n/fa.json2
-rw-r--r--core/l10n/fi_FI.js9
-rw-r--r--core/l10n/fi_FI.json9
-rw-r--r--core/l10n/fr.js3
-rw-r--r--core/l10n/fr.json3
-rw-r--r--core/l10n/gl.js2
-rw-r--r--core/l10n/gl.json2
-rw-r--r--core/l10n/hr.js2
-rw-r--r--core/l10n/hr.json2
-rw-r--r--core/l10n/hu_HU.js2
-rw-r--r--core/l10n/hu_HU.json2
-rw-r--r--core/l10n/ia.js1
-rw-r--r--core/l10n/ia.json1
-rw-r--r--core/l10n/id.js2
-rw-r--r--core/l10n/id.json2
-rw-r--r--core/l10n/it.js2
-rw-r--r--core/l10n/it.json2
-rw-r--r--core/l10n/ja.js2
-rw-r--r--core/l10n/ja.json2
-rw-r--r--core/l10n/ko.js1
-rw-r--r--core/l10n/ko.json1
-rw-r--r--core/l10n/lt_LT.js1
-rw-r--r--core/l10n/lt_LT.json1
-rw-r--r--core/l10n/lv.js1
-rw-r--r--core/l10n/lv.json1
-rw-r--r--core/l10n/nb_NO.js2
-rw-r--r--core/l10n/nb_NO.json2
-rw-r--r--core/l10n/nl.js5
-rw-r--r--core/l10n/nl.json5
-rw-r--r--core/l10n/nn_NO.js1
-rw-r--r--core/l10n/nn_NO.json1
-rw-r--r--core/l10n/pl.js2
-rw-r--r--core/l10n/pl.json2
-rw-r--r--core/l10n/pt_BR.js8
-rw-r--r--core/l10n/pt_BR.json8
-rw-r--r--core/l10n/pt_PT.js50
-rw-r--r--core/l10n/pt_PT.json50
-rw-r--r--core/l10n/ro.js1
-rw-r--r--core/l10n/ro.json1
-rw-r--r--core/l10n/ru.js2
-rw-r--r--core/l10n/ru.json2
-rw-r--r--core/l10n/sk_SK.js2
-rw-r--r--core/l10n/sk_SK.json2
-rw-r--r--core/l10n/sl.js3
-rw-r--r--core/l10n/sl.json3
-rw-r--r--core/l10n/sq.js1
-rw-r--r--core/l10n/sq.json1
-rw-r--r--core/l10n/sv.js2
-rw-r--r--core/l10n/sv.json2
-rw-r--r--core/l10n/tr.js5
-rw-r--r--core/l10n/tr.json5
-rw-r--r--core/l10n/uk.js2
-rw-r--r--core/l10n/uk.json2
-rw-r--r--core/l10n/vi.js1
-rw-r--r--core/l10n/vi.json1
-rw-r--r--core/l10n/zh_CN.js2
-rw-r--r--core/l10n/zh_CN.json2
-rw-r--r--core/l10n/zh_TW.js2
-rw-r--r--core/l10n/zh_TW.json2
-rw-r--r--core/setup/controller.php52
-rw-r--r--core/templates/layout.base.php2
-rw-r--r--lib/base.php66
-rw-r--r--lib/l10n/ach.js7
-rw-r--r--lib/l10n/ach.json7
-rw-r--r--lib/l10n/ady.js7
-rw-r--r--lib/l10n/ady.json7
-rw-r--r--lib/l10n/af_ZA.js13
-rw-r--r--lib/l10n/af_ZA.json13
-rw-r--r--lib/l10n/ak.js7
-rw-r--r--lib/l10n/ak.json7
-rw-r--r--lib/l10n/am_ET.js7
-rw-r--r--lib/l10n/am_ET.json7
-rw-r--r--lib/l10n/ar.js20
-rw-r--r--lib/l10n/ar.json20
-rw-r--r--lib/l10n/ast.js24
-rw-r--r--lib/l10n/ast.json24
-rw-r--r--lib/l10n/az.js9
-rw-r--r--lib/l10n/az.json9
-rw-r--r--lib/l10n/be.js10
-rw-r--r--lib/l10n/be.json10
-rw-r--r--lib/l10n/bg_BG.js24
-rw-r--r--lib/l10n/bg_BG.json24
-rw-r--r--lib/l10n/bn_BD.js23
-rw-r--r--lib/l10n/bn_BD.json23
-rw-r--r--lib/l10n/bn_IN.js7
-rw-r--r--lib/l10n/bn_IN.json7
-rw-r--r--lib/l10n/bs.js7
-rw-r--r--lib/l10n/bs.json7
-rw-r--r--lib/l10n/ca.js24
-rw-r--r--lib/l10n/ca.json24
-rw-r--r--lib/l10n/ca@valencia.js7
-rw-r--r--lib/l10n/ca@valencia.json7
-rw-r--r--lib/l10n/cs_CZ.js26
-rw-r--r--lib/l10n/cs_CZ.json26
-rw-r--r--lib/l10n/cy_GB.js22
-rw-r--r--lib/l10n/cy_GB.json22
-rw-r--r--lib/l10n/da.js26
-rw-r--r--lib/l10n/da.json26
-rw-r--r--lib/l10n/de.js28
-rw-r--r--lib/l10n/de.json28
-rw-r--r--lib/l10n/de_AT.js7
-rw-r--r--lib/l10n/de_AT.json7
-rw-r--r--lib/l10n/de_DE.js26
-rw-r--r--lib/l10n/de_DE.json26
-rw-r--r--lib/l10n/el.js24
-rw-r--r--lib/l10n/el.json24
-rw-r--r--lib/l10n/en@pirate.js9
-rw-r--r--lib/l10n/en@pirate.json9
-rw-r--r--lib/l10n/en_GB.js26
-rw-r--r--lib/l10n/en_GB.json26
-rw-r--r--lib/l10n/en_NZ.js7
-rw-r--r--lib/l10n/en_NZ.json7
-rw-r--r--lib/l10n/eo.js20
-rw-r--r--lib/l10n/eo.json20
-rw-r--r--lib/l10n/es.js24
-rw-r--r--lib/l10n/es.json24
-rw-r--r--lib/l10n/es_AR.js20
-rw-r--r--lib/l10n/es_AR.json20
-rw-r--r--lib/l10n/es_BO.js7
-rw-r--r--lib/l10n/es_BO.json7
-rw-r--r--lib/l10n/es_CL.js18
-rw-r--r--lib/l10n/es_CL.json18
-rw-r--r--lib/l10n/es_CO.js7
-rw-r--r--lib/l10n/es_CO.json7
-rw-r--r--lib/l10n/es_CR.js7
-rw-r--r--lib/l10n/es_CR.json7
-rw-r--r--lib/l10n/es_EC.js7
-rw-r--r--lib/l10n/es_EC.json7
-rw-r--r--lib/l10n/es_MX.js20
-rw-r--r--lib/l10n/es_MX.json20
-rw-r--r--lib/l10n/es_PE.js7
-rw-r--r--lib/l10n/es_PE.json7
-rw-r--r--lib/l10n/es_PY.js7
-rw-r--r--lib/l10n/es_PY.json7
-rw-r--r--lib/l10n/es_US.js7
-rw-r--r--lib/l10n/es_US.json7
-rw-r--r--lib/l10n/es_UY.js7
-rw-r--r--lib/l10n/es_UY.json7
-rw-r--r--lib/l10n/et_EE.js24
-rw-r--r--lib/l10n/et_EE.json24
-rw-r--r--lib/l10n/eu.js24
-rw-r--r--lib/l10n/eu.json24
-rw-r--r--lib/l10n/eu_ES.js7
-rw-r--r--lib/l10n/eu_ES.json7
-rw-r--r--lib/l10n/fa.js20
-rw-r--r--lib/l10n/fa.json20
-rw-r--r--lib/l10n/fi_FI.js25
-rw-r--r--lib/l10n/fi_FI.json25
-rw-r--r--lib/l10n/fil.js7
-rw-r--r--lib/l10n/fil.json7
-rw-r--r--lib/l10n/fr.js26
-rw-r--r--lib/l10n/fr.json26
-rw-r--r--lib/l10n/fr_CA.js7
-rw-r--r--lib/l10n/fr_CA.json7
-rw-r--r--lib/l10n/fy_NL.js7
-rw-r--r--lib/l10n/fy_NL.json7
-rw-r--r--lib/l10n/gl.js24
-rw-r--r--lib/l10n/gl.json24
-rw-r--r--lib/l10n/gu.js7
-rw-r--r--lib/l10n/gu.json7
-rw-r--r--lib/l10n/he.js20
-rw-r--r--lib/l10n/he.json20
-rw-r--r--lib/l10n/hi.js7
-rw-r--r--lib/l10n/hi.json7
-rw-r--r--lib/l10n/hr.js24
-rw-r--r--lib/l10n/hr.json24
-rw-r--r--lib/l10n/hu_HU.js24
-rw-r--r--lib/l10n/hu_HU.json24
-rw-r--r--lib/l10n/hy.js7
-rw-r--r--lib/l10n/hy.json7
-rw-r--r--lib/l10n/ia.js12
-rw-r--r--lib/l10n/ia.json12
-rw-r--r--lib/l10n/id.js21
-rw-r--r--lib/l10n/id.json21
-rw-r--r--lib/l10n/io.js7
-rw-r--r--lib/l10n/io.json7
-rw-r--r--lib/l10n/is.js20
-rw-r--r--lib/l10n/is.json20
-rw-r--r--lib/l10n/it.js26
-rw-r--r--lib/l10n/it.json26
-rw-r--r--lib/l10n/ja.js26
-rw-r--r--lib/l10n/ja.json26
-rw-r--r--lib/l10n/jv.js7
-rw-r--r--lib/l10n/jv.json7
-rw-r--r--lib/l10n/ka_GE.js20
-rw-r--r--lib/l10n/ka_GE.json20
-rw-r--r--lib/l10n/km.js20
-rw-r--r--lib/l10n/km.json20
-rw-r--r--lib/l10n/kn.js7
-rw-r--r--lib/l10n/kn.json7
-rw-r--r--lib/l10n/ko.js20
-rw-r--r--lib/l10n/ko.json20
-rw-r--r--lib/l10n/ku_IQ.js9
-rw-r--r--lib/l10n/ku_IQ.json9
-rw-r--r--lib/l10n/lb.js16
-rw-r--r--lib/l10n/lb.json16
-rw-r--r--lib/l10n/lt_LT.js20
-rw-r--r--lib/l10n/lt_LT.json20
-rw-r--r--lib/l10n/lv.js20
-rw-r--r--lib/l10n/lv.json20
-rw-r--r--lib/l10n/mg.js7
-rw-r--r--lib/l10n/mg.json7
-rw-r--r--lib/l10n/mk.js20
-rw-r--r--lib/l10n/mk.json20
-rw-r--r--lib/l10n/ml.js7
-rw-r--r--lib/l10n/ml.json7
-rw-r--r--lib/l10n/ml_IN.js7
-rw-r--r--lib/l10n/ml_IN.json7
-rw-r--r--lib/l10n/mn.js7
-rw-r--r--lib/l10n/mn.json7
-rw-r--r--lib/l10n/ms_MY.js11
-rw-r--r--lib/l10n/ms_MY.json11
-rw-r--r--lib/l10n/mt_MT.js7
-rw-r--r--lib/l10n/mt_MT.json7
-rw-r--r--lib/l10n/my_MM.js16
-rw-r--r--lib/l10n/my_MM.json16
-rw-r--r--lib/l10n/nb_NO.js24
-rw-r--r--lib/l10n/nb_NO.json24
-rw-r--r--lib/l10n/nds.js7
-rw-r--r--lib/l10n/nds.json7
-rw-r--r--lib/l10n/ne.js7
-rw-r--r--lib/l10n/ne.json7
-rw-r--r--lib/l10n/nl.js26
-rw-r--r--lib/l10n/nl.json26
-rw-r--r--lib/l10n/nn_NO.js16
-rw-r--r--lib/l10n/nn_NO.json16
-rw-r--r--lib/l10n/nqo.js7
-rw-r--r--lib/l10n/nqo.json7
-rw-r--r--lib/l10n/oc.js14
-rw-r--r--lib/l10n/oc.json14
-rw-r--r--lib/l10n/or_IN.js7
-rw-r--r--lib/l10n/or_IN.json7
-rw-r--r--lib/l10n/pa.js10
-rw-r--r--lib/l10n/pa.json10
-rw-r--r--lib/l10n/pl.js24
-rw-r--r--lib/l10n/pl.json24
-rw-r--r--lib/l10n/pt_BR.js26
-rw-r--r--lib/l10n/pt_BR.json26
-rw-r--r--lib/l10n/pt_PT.js24
-rw-r--r--lib/l10n/pt_PT.json24
-rw-r--r--lib/l10n/ro.js20
-rw-r--r--lib/l10n/ro.json20
-rw-r--r--lib/l10n/ru.js26
-rw-r--r--lib/l10n/ru.json26
-rw-r--r--lib/l10n/si_LK.js18
-rw-r--r--lib/l10n/si_LK.json18
-rw-r--r--lib/l10n/sk_SK.js24
-rw-r--r--lib/l10n/sk_SK.json24
-rw-r--r--lib/l10n/sl.js26
-rw-r--r--lib/l10n/sl.json26
-rw-r--r--lib/l10n/sq.js20
-rw-r--r--lib/l10n/sq.json20
-rw-r--r--lib/l10n/sr.js20
-rw-r--r--lib/l10n/sr.json20
-rw-r--r--lib/l10n/sr@latin.js12
-rw-r--r--lib/l10n/sr@latin.json12
-rw-r--r--lib/l10n/su.js7
-rw-r--r--lib/l10n/su.json7
-rw-r--r--lib/l10n/sv.js22
-rw-r--r--lib/l10n/sv.json22
-rw-r--r--lib/l10n/sw_KE.js7
-rw-r--r--lib/l10n/sw_KE.json7
-rw-r--r--lib/l10n/ta_IN.js7
-rw-r--r--lib/l10n/ta_IN.json7
-rw-r--r--lib/l10n/ta_LK.js20
-rw-r--r--lib/l10n/ta_LK.json20
-rw-r--r--lib/l10n/te.js10
-rw-r--r--lib/l10n/te.json10
-rw-r--r--lib/l10n/tg_TJ.js7
-rw-r--r--lib/l10n/tg_TJ.json7
-rw-r--r--lib/l10n/th_TH.js20
-rw-r--r--lib/l10n/th_TH.json20
-rw-r--r--lib/l10n/tl_PH.js7
-rw-r--r--lib/l10n/tl_PH.json7
-rw-r--r--lib/l10n/tr.js26
-rw-r--r--lib/l10n/tr.json26
-rw-r--r--lib/l10n/tzm.js7
-rw-r--r--lib/l10n/tzm.json7
-rw-r--r--lib/l10n/ug.js9
-rw-r--r--lib/l10n/ug.json9
-rw-r--r--lib/l10n/uk.js20
-rw-r--r--lib/l10n/uk.json20
-rw-r--r--lib/l10n/ur_PK.js12
-rw-r--r--lib/l10n/ur_PK.json12
-rw-r--r--lib/l10n/uz.js7
-rw-r--r--lib/l10n/uz.json7
-rw-r--r--lib/l10n/vi.js22
-rw-r--r--lib/l10n/vi.json22
-rw-r--r--lib/l10n/zh_CN.js24
-rw-r--r--lib/l10n/zh_CN.json24
-rw-r--r--lib/l10n/zh_HK.js10
-rw-r--r--lib/l10n/zh_HK.json10
-rw-r--r--lib/l10n/zh_TW.js24
-rw-r--r--lib/l10n/zh_TW.json24
-rw-r--r--lib/private/activitymanager.php19
-rw-r--r--lib/private/allconfig.php293
-rw-r--r--lib/private/config.php18
-rw-r--r--lib/private/connector/sabre/file.php4
-rw-r--r--lib/private/contactsmanager.php8
-rw-r--r--lib/private/datetimeformatter.php269
-rw-r--r--lib/private/db.php50
-rw-r--r--lib/private/db/connection.php25
-rw-r--r--lib/private/db/connectionfactory.php20
-rw-r--r--lib/private/db/oracleconnection.php27
-rw-r--r--lib/private/files/cache/cache.php45
-rw-r--r--lib/private/files/cache/scanner.php6
-rw-r--r--lib/private/files/cache/wrapper/cachejail.php12
-rw-r--r--lib/private/files/cache/wrapper/cachewrapper.php21
-rw-r--r--lib/private/files/config/mountprovidercollection.php55
-rw-r--r--lib/private/files/filesystem.php26
-rw-r--r--lib/private/files/mount/manager.php16
-rw-r--r--lib/private/files/mount/mountpoint.php (renamed from lib/private/files/mount/mount.php)22
-rw-r--r--lib/private/files/node/folder.php27
-rw-r--r--lib/private/files/node/nonexistingfolder.php4
-rw-r--r--lib/private/files/node/root.php14
-rw-r--r--lib/private/files/storage/dav.php32
-rw-r--r--lib/private/files/storage/storagefactory.php (renamed from lib/private/files/storage/loader.php)13
-rw-r--r--lib/private/files/utils/scanner.php9
-rw-r--r--lib/private/files/view.php35
-rw-r--r--lib/private/group.php22
-rw-r--r--lib/private/group/group.php5
-rw-r--r--lib/private/group/metadata.php7
-rw-r--r--lib/private/httphelper.php10
-rw-r--r--lib/private/l10n.php10
-rw-r--r--lib/private/l10n/string.php22
-rw-r--r--lib/private/largefilehelper.php2
-rw-r--r--lib/private/legacy/preferences.php64
-rw-r--r--lib/private/ocs/cloud.php2
-rw-r--r--lib/private/preferences.php234
-rw-r--r--lib/private/server.php106
-rw-r--r--lib/private/share/mailnotifications.php2
-rw-r--r--lib/private/share/share.php7
-rw-r--r--lib/private/systemconfig.php49
-rw-r--r--lib/private/tagmanager.php22
-rw-r--r--lib/private/tags.php42
-rw-r--r--lib/private/template/functions.php32
-rw-r--r--lib/private/templatelayout.php2
-rw-r--r--lib/private/updater.php65
-rw-r--r--lib/private/user.php26
-rw-r--r--lib/private/user/manager.php25
-rw-r--r--lib/private/user/session.php6
-rw-r--r--lib/private/user/user.php39
-rw-r--r--lib/private/util.php49
-rw-r--r--lib/public/activity/iextension.php13
-rw-r--r--lib/public/activity/imanager.php7
-rw-r--r--lib/public/config.php22
-rw-r--r--lib/public/files/config/imountprovider.php26
-rw-r--r--lib/public/files/config/imountprovidercollection.php31
-rw-r--r--lib/public/files/folder.php9
-rw-r--r--lib/public/files/mount/imountpoint.php58
-rw-r--r--lib/public/files/storage/istoragefactory.php32
-rw-r--r--lib/public/iappconfig.php7
-rw-r--r--lib/public/iconfig.php46
-rw-r--r--lib/public/idatetimeformatter.php121
-rw-r--r--lib/public/idbconnection.php15
-rw-r--r--lib/public/iservercontainer.php12
-rw-r--r--lib/public/itagmanager.php7
-rw-r--r--lib/public/itags.php18
-rw-r--r--lib/public/iuser.php7
-rw-r--r--lib/public/iusermanager.php6
-rw-r--r--lib/public/preconditionnotmetexception.php30
-rw-r--r--lib/public/share.php5
-rw-r--r--lib/public/template.php13
-rw-r--r--lib/public/util.php2
-rw-r--r--ocs/routes.php30
-rw-r--r--settings/admin.php5
-rw-r--r--settings/ajax/checksetup.php5
-rw-r--r--settings/ajax/creategroup.php21
-rw-r--r--settings/ajax/createuser.php59
-rw-r--r--settings/ajax/decryptall.php2
-rw-r--r--settings/ajax/geteveryonecount.php2
-rw-r--r--settings/ajax/grouplist.php46
-rw-r--r--settings/ajax/lostpassword.php2
-rw-r--r--settings/ajax/removegroup.php14
-rw-r--r--settings/ajax/removeuser.php26
-rw-r--r--settings/ajax/setlanguage.php2
-rw-r--r--settings/ajax/setquota.php2
-rw-r--r--settings/ajax/userlist.php92
-rw-r--r--settings/application.php71
-rw-r--r--settings/changepassword/controller.php2
-rw-r--r--settings/controller/groupscontroller.php140
-rw-r--r--settings/controller/userscontroller.php280
-rw-r--r--settings/css/settings.css7
-rw-r--r--settings/js/settings.js2
-rw-r--r--settings/js/users/deleteHandler.js5
-rw-r--r--settings/js/users/filter.js9
-rw-r--r--settings/js/users/groups.js37
-rw-r--r--settings/js/users/users.js188
-rw-r--r--settings/l10n/ar.js5
-rw-r--r--settings/l10n/ar.json5
-rw-r--r--settings/l10n/ast.js7
-rw-r--r--settings/l10n/ast.json7
-rw-r--r--settings/l10n/az.js4
-rw-r--r--settings/l10n/az.json4
-rw-r--r--settings/l10n/bg_BG.js8
-rw-r--r--settings/l10n/bg_BG.json8
-rw-r--r--settings/l10n/bn_BD.js4
-rw-r--r--settings/l10n/bn_BD.json4
-rw-r--r--settings/l10n/ca.js8
-rw-r--r--settings/l10n/ca.json8
-rw-r--r--settings/l10n/cs_CZ.js16
-rw-r--r--settings/l10n/cs_CZ.json16
-rw-r--r--settings/l10n/da.js16
-rw-r--r--settings/l10n/da.json16
-rw-r--r--settings/l10n/de.js16
-rw-r--r--settings/l10n/de.json16
-rw-r--r--settings/l10n/de_DE.js16
-rw-r--r--settings/l10n/de_DE.json16
-rw-r--r--settings/l10n/el.js7
-rw-r--r--settings/l10n/el.json7
-rw-r--r--settings/l10n/en_GB.js16
-rw-r--r--settings/l10n/en_GB.json16
-rw-r--r--settings/l10n/eo.js4
-rw-r--r--settings/l10n/eo.json4
-rw-r--r--settings/l10n/es.js20
-rw-r--r--settings/l10n/es.json20
-rw-r--r--settings/l10n/es_AR.js7
-rw-r--r--settings/l10n/es_AR.json7
-rw-r--r--settings/l10n/es_MX.js5
-rw-r--r--settings/l10n/es_MX.json5
-rw-r--r--settings/l10n/et_EE.js8
-rw-r--r--settings/l10n/et_EE.json8
-rw-r--r--settings/l10n/eu.js7
-rw-r--r--settings/l10n/eu.json7
-rw-r--r--settings/l10n/fa.js5
-rw-r--r--settings/l10n/fa.json5
-rw-r--r--settings/l10n/fi_FI.js14
-rw-r--r--settings/l10n/fi_FI.json14
-rw-r--r--settings/l10n/fr.js20
-rw-r--r--settings/l10n/fr.json20
-rw-r--r--settings/l10n/gl.js8
-rw-r--r--settings/l10n/gl.json8
-rw-r--r--settings/l10n/he.js4
-rw-r--r--settings/l10n/he.json4
-rw-r--r--settings/l10n/hr.js7
-rw-r--r--settings/l10n/hr.json7
-rw-r--r--settings/l10n/hu_HU.js7
-rw-r--r--settings/l10n/hu_HU.json7
-rw-r--r--settings/l10n/id.js7
-rw-r--r--settings/l10n/id.json7
-rw-r--r--settings/l10n/is.js4
-rw-r--r--settings/l10n/is.json4
-rw-r--r--settings/l10n/it.js12
-rw-r--r--settings/l10n/it.json12
-rw-r--r--settings/l10n/ja.js19
-rw-r--r--settings/l10n/ja.json19
-rw-r--r--settings/l10n/ka_GE.js4
-rw-r--r--settings/l10n/ka_GE.json4
-rw-r--r--settings/l10n/km.js4
-rw-r--r--settings/l10n/km.json4
-rw-r--r--settings/l10n/ko.js5
-rw-r--r--settings/l10n/ko.json5
-rw-r--r--settings/l10n/lb.js4
-rw-r--r--settings/l10n/lb.json4
-rw-r--r--settings/l10n/lt_LT.js5
-rw-r--r--settings/l10n/lt_LT.json5
-rw-r--r--settings/l10n/lv.js5
-rw-r--r--settings/l10n/lv.json5
-rw-r--r--settings/l10n/mk.js4
-rw-r--r--settings/l10n/mk.json4
-rw-r--r--settings/l10n/nb_NO.js7
-rw-r--r--settings/l10n/nb_NO.json7
-rw-r--r--settings/l10n/nl.js16
-rw-r--r--settings/l10n/nl.json16
-rw-r--r--settings/l10n/nn_NO.js5
-rw-r--r--settings/l10n/nn_NO.json5
-rw-r--r--settings/l10n/oc.js4
-rw-r--r--settings/l10n/oc.json4
-rw-r--r--settings/l10n/pl.js7
-rw-r--r--settings/l10n/pl.json7
-rw-r--r--settings/l10n/pt_BR.js16
-rw-r--r--settings/l10n/pt_BR.json16
-rw-r--r--settings/l10n/pt_PT.js8
-rw-r--r--settings/l10n/pt_PT.json8
-rw-r--r--settings/l10n/ro.js6
-rw-r--r--settings/l10n/ro.json6
-rw-r--r--settings/l10n/ru.js13
-rw-r--r--settings/l10n/ru.json13
-rw-r--r--settings/l10n/si_LK.js4
-rw-r--r--settings/l10n/si_LK.json4
-rw-r--r--settings/l10n/sk_SK.js8
-rw-r--r--settings/l10n/sk_SK.json8
-rw-r--r--settings/l10n/sl.js8
-rw-r--r--settings/l10n/sl.json8
-rw-r--r--settings/l10n/sq.js4
-rw-r--r--settings/l10n/sq.json4
-rw-r--r--settings/l10n/sr.js4
-rw-r--r--settings/l10n/sr.json4
-rw-r--r--settings/l10n/sv.js7
-rw-r--r--settings/l10n/sv.json7
-rw-r--r--settings/l10n/ta_LK.js4
-rw-r--r--settings/l10n/ta_LK.json4
-rw-r--r--settings/l10n/th_TH.js4
-rw-r--r--settings/l10n/th_TH.json4
-rw-r--r--settings/l10n/tr.js16
-rw-r--r--settings/l10n/tr.json16
-rw-r--r--settings/l10n/ug.js4
-rw-r--r--settings/l10n/ug.json4
-rw-r--r--settings/l10n/uk.js8
-rw-r--r--settings/l10n/uk.json8
-rw-r--r--settings/l10n/vi.js5
-rw-r--r--settings/l10n/vi.json5
-rw-r--r--settings/l10n/zh_CN.js7
-rw-r--r--settings/l10n/zh_CN.json7
-rw-r--r--settings/l10n/zh_TW.js7
-rw-r--r--settings/l10n/zh_TW.json7
-rw-r--r--settings/middleware/subadminmiddleware.php65
-rw-r--r--settings/personal.php15
-rw-r--r--settings/routes.php39
-rw-r--r--settings/templates/admin.php23
-rw-r--r--settings/templates/users/main.php35
-rw-r--r--settings/templates/users/part.userlist.php92
-rw-r--r--settings/tests/js/users/deleteHandlerSpec.js12
-rw-r--r--settings/users.php44
-rw-r--r--status.php6
-rw-r--r--tests/data/l10n/ru.json3
-rw-r--r--tests/lib/activitymanager.php20
-rw-r--r--tests/lib/allconfig.php422
-rw-r--r--tests/lib/app/infoparser.php2
-rw-r--r--tests/lib/config.php33
-rw-r--r--tests/lib/contacts/localadressbook.php3
-rw-r--r--tests/lib/contactsmanager.php209
-rw-r--r--tests/lib/datetimeformatter.php175
-rw-r--r--tests/lib/db/connection.php69
-rw-r--r--tests/lib/files/cache/cache.php61
-rw-r--r--tests/lib/files/mount/manager.php10
-rw-r--r--tests/lib/files/mount/mount.php10
-rw-r--r--tests/lib/files/node/folder.php51
-rw-r--r--tests/lib/files/utils/scanner.php12
-rw-r--r--tests/lib/files/view.php2
-rw-r--r--tests/lib/helperstorage.php2
-rw-r--r--tests/lib/httphelper.php4
-rw-r--r--tests/lib/l10n.php18
-rw-r--r--tests/lib/largefilehelpergetfilesize.php9
-rw-r--r--tests/lib/preferences-singleton.php176
-rw-r--r--tests/lib/preferences.php241
-rw-r--r--tests/lib/tags.php92
-rw-r--r--tests/lib/template.php20
-rw-r--r--tests/lib/testcase.php21
-rw-r--r--tests/lib/updater.php79
-rw-r--r--tests/lib/user/manager.php11
-rw-r--r--tests/lib/user/session.php6
-rw-r--r--tests/lib/user/user.php21
-rw-r--r--tests/lib/util.php24
-rw-r--r--tests/settings/controller/groupscontrollertest.php246
-rw-r--r--tests/settings/controller/userscontrollertest.php476
-rw-r--r--tests/settings/middleware/subadminmiddlewaretest.php91
1120 files changed, 10268 insertions, 6587 deletions
diff --git a/.htaccess b/.htaccess
index e45810d0a05..10adb902ff5 100644
--- a/.htaccess
+++ b/.htaccess
@@ -25,6 +25,8 @@ RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
RewriteRule ^apps/calendar/caldav\.php remote.php/caldav/ [QSA,L]
RewriteRule ^apps/contacts/carddav\.php remote.php/carddav/ [QSA,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
+RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
+RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
index 81f0715c288..cecd69c3c97 100644
--- a/.idea/codeStyleSettings.xml
+++ b/.idea/codeStyleSettings.xml
@@ -3,6 +3,7 @@
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
+ <option name="RIGHT_MARGIN" value="80" />
<PHPCodeStyleSettings>
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
@@ -46,7 +47,6 @@
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
- <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
</project>
diff --git a/3rdparty b/3rdparty
-Subproject dd0e7b6dcec142c790a6325b74a7c4fd3c6d723
+Subproject eb12e0f6e04cc17bae34a4971349d9b3578b21a
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php
index b4d91514a2a..c162237fe92 100644
--- a/apps/files/ajax/newfile.php
+++ b/apps/files/ajax/newfile.php
@@ -120,6 +120,9 @@ if($source) {
$freeSpace = $storageStats['freeSpace'];
foreach($meta['wrapper_data'] as $header) {
+ if (strpos($header, ':') === false){
+ continue;
+ }
list($name, $value) = explode(':', $header);
if ('content-length' === strtolower(trim($name))) {
$length = (int) trim($value);
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index eb99d0644f7..fcee0166da6 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -117,6 +117,12 @@ if (strpos($dir, '..') === false) {
$fileCount = count($files['name']);
for ($i = 0; $i < $fileCount; $i++) {
+ if (isset($_POST['resolution'])) {
+ $resolution = $_POST['resolution'];
+ } else {
+ $resolution = null;
+ }
+
// target directory for when uploading folders
$relativePath = '';
if(!empty($_POST['file_directory'])) {
@@ -124,7 +130,7 @@ if (strpos($dir, '..') === false) {
}
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
- if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') {
+ if ($resolution === 'autorename') {
// append a number in brackets like 'filename (2).ext'
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir . $relativePath), $files['name'][$i]);
} else {
@@ -141,9 +147,12 @@ if (strpos($dir, '..') === false) {
}
$returnedDir = \OC\Files\Filesystem::normalizePath($returnedDir);
- if ( ! \OC\Files\Filesystem::file_exists($target)
- || (isset($_POST['resolution']) && $_POST['resolution']==='replace')
- ) {
+
+ $exists = \OC\Files\Filesystem::file_exists($target);
+ if ($exists) {
+ $updatable = \OC\Files\Filesystem::isUpdatable($target);
+ }
+ if ( ! $exists || ($updatable && $resolution === 'replace' ) ) {
// upload and overwrite file
try
{
@@ -181,8 +190,11 @@ if (strpos($dir, '..') === false) {
$error = $l->t('Upload failed. Could not get file info.');
} else {
$data = \OCA\Files\Helper::formatFileInfo($meta);
- $data['permissions'] = $data['permissions'] & $allowedPermissions;
- $data['status'] = 'existserror';
+ if ($updatable) {
+ $data['status'] = 'existserror';
+ } else {
+ $data['status'] = 'readonly';
+ }
$data['originalname'] = $files['tmp_name'][$i];
$data['uploadMaxFilesize'] = $maxUploadFileSize;
$data['maxHumanFilesize'] = $maxHumanFileSize;
diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php
index 2dca0e0e67c..7cf401c7b59 100644
--- a/apps/files/command/scan.php
+++ b/apps/files/command/scan.php
@@ -38,6 +38,18 @@ class Scan extends Command {
'will rescan all files of the given user(s)'
)
->addOption(
+ 'path',
+ 'p',
+ InputArgument::OPTIONAL,
+ 'limit rescan to this path, eg. --path="/alice/files/Music", the user_id is determined by the path and the user_id parameter and --all are ignored'
+ )
+ ->addOption(
+ 'quiet',
+ 'q',
+ InputOption::VALUE_NONE,
+ 'suppress output'
+ )
+ ->addOption(
'all',
null,
InputOption::VALUE_NONE,
@@ -45,16 +57,18 @@ class Scan extends Command {
);
}
- protected function scanFiles($user, OutputInterface $output) {
+ protected function scanFiles($user, $path, $quiet, OutputInterface $output) {
$scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection());
- $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
- $output->writeln("Scanning <info>$path</info>");
- });
- $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
- $output->writeln("Scanning <info>$path</info>");
- });
+ if (!$quiet) {
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
+ $output->writeln("Scanning file <info>$path</info>");
+ });
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
+ $output->writeln("Scanning folder <info>$path</info>");
+ });
+ }
try {
- $scanner->scan('');
+ $scanner->scan($path);
} catch (ForbiddenException $e) {
$output->writeln("<error>Home storage for user $user not writable</error>");
$output->writeln("Make sure you're running the scan command only as the user the web server runs as");
@@ -62,14 +76,21 @@ class Scan extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output) {
- if ($input->getOption('all')) {
+ $path = $input->getOption('path');
+ if ($path !== false) {
+ $path = '/'.trim($path, '/');
+ list (, $user, ) = explode('/', $path, 3);
+ $users = array($user);
+ } else if ($input->getOption('all')) {
$users = $this->userManager->search('');
} else {
$users = $input->getArgument('user_id');
}
+ $quiet = $input->getOption('quiet');
+
if (count($users) === 0) {
- $output->writeln("<error>Please specify the user id to scan or \"--all\" to scan for all users</error>");
+ $output->writeln("<error>Please specify the user id to scan, \"--all\" to scan for all users or \"--path=...\"</error>");
return;
}
@@ -78,7 +99,7 @@ class Scan extends Command {
$user = $user->getUID();
}
if ($this->userManager->userExists($user)) {
- $this->scanFiles($user, $output);
+ $this->scanFiles($user, $path, $quiet, $output);
} else {
$output->writeln("<error>Unknown user $user</error>");
}
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 60afcf9b579..d8336847e00 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -244,6 +244,15 @@ table td.filename a.name {
line-height: 50px;
padding: 0;
}
+table td.filename .thumbnail {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+ margin-left: 8px;
+ margin-top: 9px;
+ cursor: pointer;
+ float: left;
+}
table td.filename input.filename {
width: 70%;
margin-top: 1px;
@@ -348,7 +357,7 @@ table td.filename .uploadtext {
}
/* File checkboxes */
-#fileList tr td.filename>input[type="checkbox"]:first-child {
+#fileList tr td.filename>.selectCheckBox {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
@@ -357,36 +366,33 @@ table td.filename .uploadtext {
margin: 32px 0 4px 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/
}
/* Show checkbox when hovering, checked, or selected */
-#fileList tr:hover td.filename>input[type="checkbox"]:first-child,
-#fileList tr:focus td.filename>input[type="checkbox"]:first-child,
-#fileList tr td.filename>input[type="checkbox"]:checked:first-child,
-#fileList tr.selected td.filename>input[type="checkbox"]:first-child {
+#fileList tr:hover td.filename>.selectCheckBox,
+#fileList tr:focus td.filename>.selectCheckBox,
+#fileList tr td.filename>.selectCheckBox:checked,
+#fileList tr.selected td.filename>.selectCheckBox {
opacity: 1;
}
-.lte9 #fileList tr:hover td.filename>input[type="checkbox"]:first-child,
-.lte9 #fileList tr:focus td.filename>input[type="checkbox"]:first-child,
-.lte9 #fileList tr td.filename>input[type="checkbox"][checked=checked]:first-child,
-.lte9 #fileList tr.selected td.filename>input[type="checkbox"]:first-child {
+.lte9 #fileList tr:hover td.filename>.selectCheckBox,
+.lte9 #fileList tr:focus td.filename>.selectCheckBox,
+.lte9 #fileList tr td.filename>.selectCheckBox[checked=checked],
+.lte9 #fileList tr.selected td.filename>.selectCheckBox {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
}
/* Use label to have bigger clickable size for checkbox */
-#fileList tr td.filename>input[type="checkbox"] + label,
+#fileList tr td.filename>.selectCheckBox + label,
.select-all + label {
height: 50px;
position: absolute;
width: 50px;
z-index: 5;
}
-#fileList tr td.filename>input[type="checkbox"]{
+#fileList tr td.filename>.selectCheckBox {
/* sometimes checkbox height is bigger (KDE/Qt), so setting to absolute
* to prevent it to increase the height */
position: absolute;
-}
-#fileList tr td.filename>input[type="checkbox"] + label {
- left: 0;
- top: 0;
+ z-index: 10;
}
.select-all + label {
top: 0;
@@ -395,6 +401,7 @@ table td.filename .uploadtext {
position: absolute;
top: 18px;
left: 18px;
+ z-index: 10;
}
#fileList tr td.filename {
diff --git a/apps/files/css/upload.css b/apps/files/css/upload.css
index 98754b910de..cc383879fb2 100644
--- a/apps/files/css/upload.css
+++ b/apps/files/css/upload.css
@@ -64,6 +64,28 @@
font-size: 13px;
}
+.oc-dialog .fileexists {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.oc-dialog .fileexists .conflict .filename,
+.oc-dialog .fileexists .conflict .mtime,
+.oc-dialog .fileexists .conflict .size {
+ -webkit-touch-callout: initial;
+ -webkit-user-select: initial;
+ -khtml-user-select: initial;
+ -moz-user-select: initial;
+ -ms-user-select: initial;
+ user-select: initial;
+}
+.oc-dialog .fileexists .conflict .message {
+ color: #e9322d;
+}
.oc-dialog .fileexists table {
width: 100%;
}
diff --git a/apps/files/index.php b/apps/files/index.php
index 4142a02b97e..929bc5e79da 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -69,7 +69,7 @@ $storageInfo=OC_Helper::getStorageInfo('/', $dirInfo);
// if the encryption app is disabled, than everything is fine (INIT_SUCCESSFUL status code)
$encryptionInitStatus = 2;
if (OC_App::isEnabled('files_encryption')) {
- $session = new \OCA\Encryption\Session(new \OC\Files\View('/'));
+ $session = new \OCA\Files_Encryption\Session(new \OC\Files\View('/'));
$encryptionInitStatus = $session->getInitialized();
}
@@ -120,6 +120,7 @@ $tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']);
$tmpl->assign('isPublic', false);
$tmpl->assign("encryptedFiles", \OCP\Util::encryptedFiles());
$tmpl->assign("mailNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_mail_notification', 'no'));
+$tmpl->assign("mailPublicNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_public_notification', 'no'));
$tmpl->assign("allowShareWithLink", $config->getAppValue('core', 'shareapi_allow_links', 'yes'));
$tmpl->assign("encryptionInitStatus", $encryptionInitStatus);
$tmpl->assign('appNavigation', $nav);
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index ab450dc5cac..9fe623075bc 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -175,7 +175,14 @@ OC.Upload = {
* @param {function} callbacks.onCancel
*/
checkExistingFiles: function (selection, callbacks) {
- // TODO check filelist before uploading and show dialog on conflicts, use callbacks
+ /*
+ $.each(selection.uploads, function(i, upload) {
+ var $row = OCA.Files.App.fileList.findFileEl(upload.files[0].name);
+ if ($row) {
+ // TODO check filelist before uploading and show dialog on conflicts, use callbacks
+ }
+ });
+ */
callbacks.onNoConflicts(selection);
},
@@ -417,11 +424,15 @@ OC.Upload = {
data.textStatus = 'servererror';
data.errorThrown = t('files', 'Could not get result from server.');
fu._trigger('fail', e, data);
+ } else if (result[0].status === 'readonly') {
+ var original = result[0];
+ var replacement = data.files[0];
+ OC.dialogs.fileexists(data, original, replacement, OC.Upload);
} else if (result[0].status === 'existserror') {
//show "file already exists" dialog
var original = result[0];
var replacement = data.files[0];
- OC.dialogs.fileexists(data, original, replacement, OC.Upload, fu);
+ OC.dialogs.fileexists(data, original, replacement, OC.Upload);
} else if (result[0].status !== 'success') {
//delete data.jqXHR;
data.textStatus = 'servererror';
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 5bf1618b0b8..da48cf29be0 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -8,7 +8,6 @@
*
*/
-/* global trashBinApp */
(function() {
/**
@@ -109,33 +108,37 @@
permissions: permissions,
icon: icon,
actionHandler: action,
- displayName: displayName
+ displayName: displayName || name
});
},
/**
* Register action
*
- * @param {Object} action action object
- * @param {String} action.name identifier of the action
- * @param {String} action.displayName display name of the action, defaults
- * to the name given in action.name
- * @param {String} action.mime mime type
- * @param {int} action.permissions permissions
- * @param {(Function|String)} action.icon icon path to the icon or function
- * that returns it
- * @param {OCA.Files.FileActions~actionHandler} action.actionHandler action handler function
+ * @param {OCA.Files.FileAction} action object
*/
registerAction: function (action) {
var mime = action.mime;
var name = action.name;
+ var actionSpec = {
+ action: action.actionHandler,
+ name: name,
+ displayName: action.displayName,
+ mime: mime,
+ icon: action.icon,
+ permissions: action.permissions
+ };
+ if (_.isUndefined(action.displayName)) {
+ actionSpec.displayName = t('files', name);
+ }
+ if (_.isFunction(action.render)) {
+ actionSpec.render = action.render;
+ } else {
+ actionSpec.render = _.bind(this._defaultRenderAction, this);
+ }
if (!this.actions[mime]) {
this.actions[mime] = {};
}
- this.actions[mime][name] = {
- action: action.actionHandler,
- permissions: action.permissions,
- displayName: action.displayName || t('files', name)
- };
+ this.actions[mime][name] = actionSpec;
this.icons[name] = action.icon;
this._notifyUpdateListeners('registerAction', {action: action});
},
@@ -213,6 +216,128 @@
return actions[name];
},
/**
+ * Default function to render actions
+ *
+ * @param {OCA.Files.FileAction} actionSpec file action spec
+ * @param {boolean} isDefault true if the action is a default one,
+ * false otherwise
+ * @param {OCA.Files.FileActionContext} context action context
+ */
+ _defaultRenderAction: function(actionSpec, isDefault, context) {
+ var name = actionSpec.name;
+ if (name === 'Download' || !isDefault) {
+ var $actionLink = this._makeActionLink(actionSpec, context);
+ context.$file.find('a.name>span.fileactions').append($actionLink);
+ return $actionLink;
+ }
+ },
+ /**
+ * Renders the action link element
+ *
+ * @param {OCA.Files.FileAction} actionSpec action object
+ * @param {OCA.Files.FileActionContext} context action context
+ */
+ _makeActionLink: function(actionSpec, context) {
+ var img = actionSpec.icon;
+ if (img && img.call) {
+ img = img(context.$file.attr('data-file'));
+ }
+ var html = '<a href="#">';
+ if (img) {
+ html += '<img class="svg" alt="" src="' + img + '" />';
+ }
+ if (actionSpec.displayName) {
+ html += '<span> ' + actionSpec.displayName + '</span></a>';
+ }
+
+ return $(html);
+ },
+ /**
+ * Custom renderer for the "Rename" action.
+ * Displays the rename action as an icon behind the file name.
+ *
+ * @param {OCA.Files.FileAction} actionSpec file action to render
+ * @param {boolean} isDefault true if the action is a default action,
+ * false otherwise
+ * @param {OCAFiles.FileActionContext} context rendering context
+ */
+ _renderRenameAction: function(actionSpec, isDefault, context) {
+ var $actionEl = this._makeActionLink(actionSpec, context);
+ var $container = context.$file.find('a.name span.nametext');
+ $actionEl.find('img').attr('alt', t('files', 'Rename'));
+ $container.find('.action-rename').remove();
+ $container.append($actionEl);
+ return $actionEl;
+ },
+ /**
+ * Custom renderer for the "Delete" action.
+ * Displays the "Delete" action as a trash icon at the end of
+ * the table row.
+ *
+ * @param {OCA.Files.FileAction} actionSpec file action to render
+ * @param {boolean} isDefault true if the action is a default action,
+ * false otherwise
+ * @param {OCAFiles.FileActionContext} context rendering context
+ */
+ _renderDeleteAction: function(actionSpec, isDefault, context) {
+ var mountType = context.$file.attr('data-mounttype');
+ var deleteTitle = t('files', 'Delete');
+ if (mountType === 'external-root') {
+ deleteTitle = t('files', 'Disconnect storage');
+ } else if (mountType === 'shared-root') {
+ deleteTitle = t('files', 'Unshare');
+ }
+ var $actionLink = $('<a href="#" original-title="' +
+ escapeHTML(deleteTitle) +
+ '" class="action delete icon-delete" />'
+ );
+ var $container = context.$file.find('td:last');
+ $container.find('.delete').remove();
+ $container.append($actionLink);
+ return $actionLink;
+ },
+ /**
+ * Renders the action element by calling actionSpec.render() and
+ * registers the click event to process the action.
+ *
+ * @param {OCA.Files.FileAction} actionSpec file action to render
+ * @param {boolean} isDefault true if the action is a default action,
+ * false otherwise
+ * @param {OCAFiles.FileActionContext} context rendering context
+ */
+ _renderAction: function(actionSpec, isDefault, context) {
+ var $actionEl = actionSpec.render(actionSpec, isDefault, context);
+ if (!$actionEl || !$actionEl.length) {
+ return;
+ }
+ $actionEl.addClass('action action-' + actionSpec.name.toLowerCase());
+ $actionEl.attr('data-action', actionSpec.name);
+ $actionEl.on(
+ 'click', {
+ a: null
+ },
+ function(event) {
+ var $file = $(event.target).closest('tr');
+ var currentFile = $file.find('td.filename');
+ var fileName = $file.attr('data-file');
+ event.stopPropagation();
+ event.preventDefault();
+
+ context.fileActions.currentFile = currentFile;
+ // also set on global object for legacy apps
+ window.FileActions.currentFile = currentFile;
+
+ actionSpec.action(
+ fileName,
+ _.extend(context, {
+ dir: $file.attr('data-path') || context.fileList.getCurrentDirectory()
+ })
+ );
+ }
+ );
+ return $actionEl;
+ },
+ /**
* Display file actions for the given element
* @param parent "td" element of the file for which to display actions
* @param triggerEvent if true, triggers the fileActionsReady on the file
@@ -226,107 +351,51 @@
return;
}
this.currentFile = parent;
- var $tr = parent.closest('tr');
var self = this;
- var actions = this.getActions(this.getCurrentMimeType(), this.getCurrentType(), this.getCurrentPermissions());
- var file = this.getCurrentFile();
+ var $tr = parent.closest('tr');
+ var actions = this.getActions(
+ this.getCurrentMimeType(),
+ this.getCurrentType(),
+ this.getCurrentPermissions()
+ );
var nameLinks;
if ($tr.data('renaming')) {
return;
}
- // recreate fileactions
+ // recreate fileactions container
nameLinks = parent.children('a.name');
nameLinks.find('.fileactions, .nametext .action').remove();
nameLinks.append('<span class="fileactions" />');
- var defaultAction = this.getDefault(this.getCurrentMimeType(), this.getCurrentType(), this.getCurrentPermissions());
-
- var actionHandler = function (event) {
- event.stopPropagation();
- event.preventDefault();
+ var defaultAction = this.getDefault(
+ this.getCurrentMimeType(),
+ this.getCurrentType(),
+ this.getCurrentPermissions()
+ );
- self.currentFile = event.data.elem;
- // also set on global object for legacy apps
- window.FileActions.currentFile = self.currentFile;
-
- var file = self.getCurrentFile();
- var $tr = $(this).closest('tr');
-
- event.data.actionFunc(file, {
- $file: $tr,
- fileList: fileList,
- fileActions: self,
- dir: $tr.attr('data-path') || fileList.getCurrentDirectory()
- });
- };
-
- var addAction = function (name, action, displayName) {
-
- if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') {
-
- var img = self.icons[name],
- actionText = displayName,
- actionContainer = 'a.name>span.fileactions';
-
- if (name === 'Rename') {
- // rename has only an icon which appears behind
- // the file name
- actionText = '';
- actionContainer = 'a.name span.nametext';
- }
- if (img.call) {
- img = img(file);
- }
- var html = '<a href="#" class="action action-' + name.toLowerCase() + '" data-action="' + name + '">';
- if (img) {
- html += '<img class ="svg" alt="" src="' + img + '" />';
- }
- html += '<span> ' + actionText + '</span></a>';
-
- var element = $(html);
- element.data('action', name);
- element.on('click', {a: null, elem: parent, actionFunc: actions[name].action}, actionHandler);
- parent.find(actionContainer).append(element);
- }
-
- };
-
- $.each(actions, function (name, action) {
+ $.each(actions, function (name, actionSpec) {
if (name !== 'Share') {
- displayName = action.displayName;
- ah = action.action;
-
- addAction(name, ah, displayName);
+ self._renderAction(
+ actionSpec,
+ actionSpec.action === defaultAction, {
+ $file: $tr,
+ fileActions: this,
+ fileList : fileList
+ }
+ );
}
});
- if(actions.Share){
- displayName = t('files', 'Share');
- addAction('Share', actions.Share, displayName);
- }
-
- // remove the existing delete action
- parent.parent().children().last().find('.action.delete').remove();
- if (actions['Delete']) {
- var img = self.icons['Delete'];
- var html;
- var mountType = $tr.attr('data-mounttype');
- var deleteTitle = t('files', 'Delete');
- if (mountType === 'external-root') {
- deleteTitle = t('files', 'Disconnect storage');
- } else if (mountType === 'shared-root') {
- deleteTitle = t('files', 'Unshare');
- } else if (fileList.id === 'trashbin') {
- deleteTitle = t('files', 'Delete permanently');
- }
-
- if (img.call) {
- img = img(file);
- }
- html = '<a href="#" original-title="' + escapeHTML(deleteTitle) + '" class="action delete icon-delete" />';
- var element = $(html);
- element.data('action', actions['Delete']);
- element.on('click', {a: null, elem: parent, actionFunc: actions['Delete'].action}, actionHandler);
- parent.parent().children().last().append(element);
+ // added here to make sure it's always the last action
+ var shareActionSpec = actions.Share;
+ if (shareActionSpec){
+ this._renderAction(
+ shareActionSpec,
+ shareActionSpec.action === defaultAction, {
+ $file: $tr,
+ fileActions: this,
+ fileList: fileList
+ }
+ );
}
if (triggerEvent){
@@ -350,18 +419,34 @@
* Register the actions that are used by default for the files app.
*/
registerDefaultActions: function() {
- this.register('all', 'Delete', OC.PERMISSION_DELETE, function () {
- return OC.imagePath('core', 'actions/delete');
- }, function (filename, context) {
- context.fileList.do_delete(filename, context.dir);
- $('.tipsy').remove();
+ this.registerAction({
+ name: 'Delete',
+ displayName: '',
+ mime: 'all',
+ permissions: OC.PERMISSION_DELETE,
+ icon: function() {
+ return OC.imagePath('core', 'actions/delete');
+ },
+ render: _.bind(this._renderDeleteAction, this),
+ actionHandler: function(fileName, context) {
+ context.fileList.do_delete(fileName, context.dir);
+ $('.tipsy').remove();
+ }
});
// t('files', 'Rename')
- this.register('all', 'Rename', OC.PERMISSION_UPDATE, function () {
- return OC.imagePath('core', 'actions/rename');
- }, function (filename, context) {
- context.fileList.rename(filename);
+ this.registerAction({
+ name: 'Rename',
+ displayName: '',
+ mime: 'all',
+ permissions: OC.PERMISSION_UPDATE,
+ icon: function() {
+ return OC.imagePath('core', 'actions/rename');
+ },
+ render: _.bind(this._renderRenameAction, this),
+ actionHandler: function (filename, context) {
+ context.fileList.rename(filename);
+ }
});
this.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
@@ -389,6 +474,47 @@
OCA.Files.FileActions = FileActions;
/**
+ * File action attributes.
+ *
+ * @todo make this a real class in the future
+ * @typedef {Object} OCA.Files.FileAction
+ *
+ * @property {String} name identifier of the action
+ * @property {String} displayName display name of the action, defaults
+ * to the name given in name property
+ * @property {String} mime mime type
+ * @property {int} permissions permissions
+ * @property {(Function|String)} icon icon path to the icon or function
+ * that returns it
+ * @property {OCA.Files.FileActions~renderActionFunction} [render] optional rendering function
+ * @property {OCA.Files.FileActions~actionHandler} actionHandler action handler function
+ */
+
+ /**
+ * File action context attributes.
+ *
+ * @typedef {Object} OCA.Files.FileActionContext
+ *
+ * @property {Object} $file jQuery file row element
+ * @property {OCA.Files.FileActions} fileActions file actions object
+ * @property {OCA.Files.FileList} fileList file list object
+ */
+
+ /**
+ * Render function for actions.
+ * The function must render a link element somewhere in the DOM
+ * and return it. The function should NOT register the event handler
+ * as this will be done after the link was returned.
+ *
+ * @callback OCA.Files.FileActions~renderActionFunction
+ * @param {OCA.Files.FileAction} actionSpec action definition
+ * @param {Object} $row row container
+ * @param {boolean} isDefault true if the action is the default one,
+ * false otherwise
+ * @return {Object} jQuery link object
+ */
+
+ /**
* Action handler function for file actions
*
* @callback OCA.Files.FileActions~actionHandler
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index f4b45fc58bf..b4702ce4f2b 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -94,6 +94,12 @@
fileActions: null,
/**
+ * Whether selection is allowed, checkboxes and selection overlay will
+ * be rendered
+ */
+ _allowSelection: true,
+
+ /**
* Map of file id to file data
* @type Object.<int, Object>
*/
@@ -166,6 +172,9 @@
}
this.$el = $el;
+ if (options.id) {
+ this.id = options.id;
+ }
this.$container = options.scrollContainer || $(window);
this.$table = $el.find('table:first');
this.$fileList = $el.find('#fileList');
@@ -200,7 +209,7 @@
this.$el.on('show', this._onResize);
this.$fileList.on('click','td.filename>a.name', _.bind(this._onClickFile, this));
- this.$fileList.on('change', 'td.filename>input:checkbox', _.bind(this._onClickFileCheckbox, this));
+ this.$fileList.on('change', 'td.filename>.selectCheckBox', _.bind(this._onClickFileCheckbox, this));
this.$el.on('urlChanged', _.bind(this._onUrlChanged, this));
this.$el.find('.select-all').click(_.bind(this._onClickSelectAll, this));
this.$el.find('.download').click(_.bind(this._onClickDownloadSelected, this));
@@ -215,6 +224,8 @@
self.scrollTo(options.scrollTo);
});
}
+
+ OC.Plugins.attach('OCA.Files.FileList', this);
},
/**
@@ -224,6 +235,7 @@
// TODO: also unregister other event handlers
this.fileActions.off('registerAction', this._onFileActionsUpdated);
this.fileActions.off('setDefault', this._onFileActionsUpdated);
+ OC.Plugins.detach('OCA.Files.FileList', this);
},
/**
@@ -275,7 +287,7 @@
* @param state true to select, false to deselect
*/
_selectFileEl: function($tr, state) {
- var $checkbox = $tr.find('td.filename>input:checkbox');
+ var $checkbox = $tr.find('td.filename>.selectCheckBox');
var oldData = !!this._selectedFiles[$tr.data('id')];
var data;
$checkbox.prop('checked', state);
@@ -324,7 +336,7 @@
else {
this._lastChecked = $tr;
}
- var $checkbox = $tr.find('td.filename>input:checkbox');
+ var $checkbox = $tr.find('td.filename>.selectCheckBox');
this._selectFileEl($tr, !$checkbox.prop('checked'));
this.updateSelectionSummary();
} else {
@@ -366,7 +378,7 @@
*/
_onClickSelectAll: function(e) {
var checked = $(e.target).prop('checked');
- this.$fileList.find('td.filename>input:checkbox').prop('checked', checked)
+ this.$fileList.find('td.filename>.selectCheckBox').prop('checked', checked)
.closest('tr').toggleClass('selected', checked);
this._selectedFiles = {};
this._selectionSummary.clear();
@@ -554,7 +566,7 @@
this.$fileList.append(tr);
if (isAllSelected || this._selectedFiles[fileData.id]) {
tr.addClass('selected');
- tr.find('input:checkbox').prop('checked', true);
+ tr.find('.selectCheckBox').prop('checked', true);
}
if (animate) {
tr.addClass('appear transparent');
@@ -683,10 +695,8 @@
}
// filename td
- td = $('<td></td>').attr({
- "class": "filename",
- "style": 'background-image:url(' + icon + '); background-size: 32px;'
- });
+ td = $('<td class="filename"></td>');
+
// linkUrl
if (type === 'dir') {
@@ -695,8 +705,16 @@
else {
linkUrl = this.getDownloadUrl(name, path);
}
- td.append('<input id="select-' + this.id + '-' + fileData.id +
- '" type="checkbox" /><label for="select-' + this.id + '-' + fileData.id + '"></label>');
+ if (this._allowSelection) {
+ td.append(
+ '<input id="select-' + this.id + '-' + fileData.id +
+ '" type="checkbox" class="selectCheckBox"/><label for="select-' + this.id + '-' + fileData.id + '">' +
+ '<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>' +
+ '</label>'
+ );
+ } else {
+ td.append('<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>');
+ }
var linkElem = $('<a></a>').attr({
"class": "name",
"href": linkUrl
@@ -901,6 +919,7 @@
this.fileActions.display(filenameTd, !options.silent, this);
if (fileData.isPreviewAvailable) {
+ var iconDiv = filenameTd.find('.thumbnail');
// lazy load / newly inserted td ?
if (options.animate) {
this.lazyLoadPreview({
@@ -908,7 +927,7 @@
mime: mime,
etag: fileData.etag,
callback: function(url) {
- filenameTd.css('background-image', 'url(' + url + ')');
+ iconDiv.css('background-image', 'url(' + url + ')');
}
});
}
@@ -920,7 +939,7 @@
};
var previewUrl = this.generatePreviewUrl(urlSpec);
previewUrl = previewUrl.replace('(', '%28').replace(')', '%29');
- filenameTd.css('background-image', 'url(' + previewUrl + ')');
+ iconDiv.css('background-image', 'url(' + previewUrl + ')');
}
}
return tr;
@@ -1526,7 +1545,7 @@
var fileEl = self.remove(file, {updateSummary: false});
// FIXME: not sure why we need this after the
// element isn't even in the DOM any more
- fileEl.find('input[type="checkbox"]').prop('checked', false);
+ fileEl.find('.selectCheckBox').prop('checked', false);
fileEl.removeClass('selected');
self.fileSummary.remove({type: fileEl.attr('data-type'), size: fileEl.attr('data-size')});
});
diff --git a/apps/files/l10n/af_ZA.js b/apps/files/l10n/af_ZA.js
index 8671027db6e..cef7b1bee0c 100644
--- a/apps/files/l10n/af_ZA.js
+++ b/apps/files/l10n/af_ZA.js
@@ -1,7 +1,6 @@
OC.L10N.register(
"files",
{
- "Share" : "Deel",
"Unshare" : "Deel terug neem",
"Error" : "Fout",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/af_ZA.json b/apps/files/l10n/af_ZA.json
index cd3182e3f69..8475402f42b 100644
--- a/apps/files/l10n/af_ZA.json
+++ b/apps/files/l10n/af_ZA.json
@@ -1,5 +1,4 @@
{ "translations": {
- "Share" : "Deel",
"Unshare" : "Deel terug neem",
"Error" : "Fout",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index aaa4f1aa2be..459a2bb2065 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -26,10 +26,8 @@ OC.L10N.register(
"Could not get result from server." : "تعذر الحصول على نتيجة من الخادم",
"File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.",
"{new_name} already exists" : "{new_name} موجود مسبقا",
- "Share" : "شارك",
"Delete" : "إلغاء",
"Unshare" : "إلغاء المشاركة",
- "Delete permanently" : "حذف بشكل دائم",
"Rename" : "إعادة تسميه",
"Pending" : "قيد الانتظار",
"Error moving file" : "حدث خطأ أثناء نقل الملف",
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 8e6b863bb0d..068be992a3f 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -24,10 +24,8 @@
"Could not get result from server." : "تعذر الحصول على نتيجة من الخادم",
"File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.",
"{new_name} already exists" : "{new_name} موجود مسبقا",
- "Share" : "شارك",
"Delete" : "إلغاء",
"Unshare" : "إلغاء المشاركة",
- "Delete permanently" : "حذف بشكل دائم",
"Rename" : "إعادة تسميه",
"Pending" : "قيد الانتظار",
"Error moving file" : "حدث خطأ أثناء نقل الملف",
diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js
index ae0b0731572..e7f733d4fd0 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Nun pudo crease'l ficheru",
"Could not create folder" : "Nun pudo crease la carpeta",
"Error fetching URL" : "Fallu obteniendo URL",
- "Share" : "Compartir",
"Delete" : "Desaniciar",
"Disconnect storage" : "Desconeutar almacenamientu",
"Unshare" : "Dexar de compartir",
- "Delete permanently" : "Desaniciar dafechu",
"Rename" : "Renomar",
"Pending" : "Pendiente",
"Error moving file." : "Fallu moviendo'l ficheru.",
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 81d20a51c36..947079aba91 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -44,11 +44,9 @@
"Could not create file" : "Nun pudo crease'l ficheru",
"Could not create folder" : "Nun pudo crease la carpeta",
"Error fetching URL" : "Fallu obteniendo URL",
- "Share" : "Compartir",
"Delete" : "Desaniciar",
"Disconnect storage" : "Desconeutar almacenamientu",
"Unshare" : "Dexar de compartir",
- "Delete permanently" : "Desaniciar dafechu",
"Rename" : "Renomar",
"Pending" : "Pendiente",
"Error moving file." : "Fallu moviendo'l ficheru.",
diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js
index 08e19809811..2373dc467f5 100644
--- a/apps/files/l10n/az.js
+++ b/apps/files/l10n/az.js
@@ -46,7 +46,6 @@ OC.L10N.register(
"Could not create file" : "Faylı yaratmaq olmur",
"Could not create folder" : "Qovluğu yaratmaq olmur",
"Error fetching URL" : "URL-in gətirilməsində səhv baş verdi",
- "Share" : "Yayımla",
"Delete" : "Sil",
"Rename" : "Adı dəyiş",
"Error" : "Səhv",
diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json
index 591ec63e31e..9d419ca5067 100644
--- a/apps/files/l10n/az.json
+++ b/apps/files/l10n/az.json
@@ -44,7 +44,6 @@
"Could not create file" : "Faylı yaratmaq olmur",
"Could not create folder" : "Qovluğu yaratmaq olmur",
"Error fetching URL" : "URL-in gətirilməsində səhv baş verdi",
- "Share" : "Yayımla",
"Delete" : "Sil",
"Rename" : "Adı dəyiş",
"Error" : "Səhv",
diff --git a/apps/files/l10n/bg_BG.js b/apps/files/l10n/bg_BG.js
index 1776e769251..a5c1ba5ee04 100644
--- a/apps/files/l10n/bg_BG.js
+++ b/apps/files/l10n/bg_BG.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Несупешно създаване на файла.",
"Could not create folder" : "Неуспешно създаване на папка.",
"Error fetching URL" : "Грешка при отварянето на интернет адреса.",
- "Share" : "Сподели",
"Delete" : "Изтрий",
"Disconnect storage" : "Извади дисковото устройство.",
"Unshare" : "Премахни Споделяне",
- "Delete permanently" : "Изтрий завинаги",
"Rename" : "Преименуване",
"Pending" : "Чакащо",
"Error moving file." : "Грешка при местенето на файла.",
diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json
index cd29da596db..421bc494021 100644
--- a/apps/files/l10n/bg_BG.json
+++ b/apps/files/l10n/bg_BG.json
@@ -44,11 +44,9 @@
"Could not create file" : "Несупешно създаване на файла.",
"Could not create folder" : "Неуспешно създаване на папка.",
"Error fetching URL" : "Грешка при отварянето на интернет адреса.",
- "Share" : "Сподели",
"Delete" : "Изтрий",
"Disconnect storage" : "Извади дисковото устройство.",
"Unshare" : "Премахни Споделяне",
- "Delete permanently" : "Изтрий завинаги",
"Rename" : "Преименуване",
"Pending" : "Чакащо",
"Error moving file." : "Грешка при местенето на файла.",
diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js
index bf2ecc2f660..869130f2b2c 100644
--- a/apps/files/l10n/bn_BD.js
+++ b/apps/files/l10n/bn_BD.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
"File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
"{new_name} already exists" : "{new_name} টি বিদ্যমান",
- "Share" : "ভাগাভাগি কর",
"Delete" : "মুছে",
"Unshare" : "ভাগাভাগি বাতিল ",
"Rename" : "পূনঃনামকরণ",
diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json
index 35db36b61fa..054113964a9 100644
--- a/apps/files/l10n/bn_BD.json
+++ b/apps/files/l10n/bn_BD.json
@@ -30,7 +30,6 @@
"Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
"File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
"{new_name} already exists" : "{new_name} টি বিদ্যমান",
- "Share" : "ভাগাভাগি কর",
"Delete" : "মুছে",
"Unshare" : "ভাগাভাগি বাতিল ",
"Rename" : "পূনঃনামকরণ",
diff --git a/apps/files/l10n/bn_IN.js b/apps/files/l10n/bn_IN.js
index 320ef37a8f9..1e9ca9a3314 100644
--- a/apps/files/l10n/bn_IN.js
+++ b/apps/files/l10n/bn_IN.js
@@ -14,9 +14,7 @@ OC.L10N.register(
"Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না",
"Invalid directory." : "অবৈধ ডিরেক্টরি।",
"Files" : "ফাইলস",
- "Share" : "শেয়ার",
"Delete" : "মুছে ফেলা",
- "Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Rename" : "পুনঃনামকরণ",
"Pending" : "মুলতুবি",
"Error" : "ভুল",
diff --git a/apps/files/l10n/bn_IN.json b/apps/files/l10n/bn_IN.json
index 7b6528c38a9..db6203ecd4e 100644
--- a/apps/files/l10n/bn_IN.json
+++ b/apps/files/l10n/bn_IN.json
@@ -12,9 +12,7 @@
"Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না",
"Invalid directory." : "অবৈধ ডিরেক্টরি।",
"Files" : "ফাইলস",
- "Share" : "শেয়ার",
"Delete" : "মুছে ফেলা",
- "Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Rename" : "পুনঃনামকরণ",
"Pending" : "মুলতুবি",
"Error" : "ভুল",
diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js
index 1ce26f916a2..26a2e48c947 100644
--- a/apps/files/l10n/bs.js
+++ b/apps/files/l10n/bs.js
@@ -1,7 +1,6 @@
OC.L10N.register(
"files",
{
- "Share" : "Podijeli",
"Name" : "Ime",
"Size" : "Veličina",
"_%n folder_::_%n folders_" : ["","",""],
diff --git a/apps/files/l10n/bs.json b/apps/files/l10n/bs.json
index 7c2d782d01c..9f5f58d954a 100644
--- a/apps/files/l10n/bs.json
+++ b/apps/files/l10n/bs.json
@@ -1,5 +1,4 @@
{ "translations": {
- "Share" : "Podijeli",
"Name" : "Ime",
"Size" : "Veličina",
"_%n folder_::_%n folders_" : ["","",""],
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index 0885794ea43..3cf471d6e39 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "No s'ha pogut crear el fitxer",
"Could not create folder" : "No s'ha pogut crear la carpeta",
"Error fetching URL" : "Error en obtenir la URL",
- "Share" : "Comparteix",
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
- "Delete permanently" : "Esborra permanentment",
"Rename" : "Reanomena",
"Pending" : "Pendent",
"Error moving file." : "Error en moure el fitxer.",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 2b767a9aaed..e8de6d9239e 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -44,11 +44,9 @@
"Could not create file" : "No s'ha pogut crear el fitxer",
"Could not create folder" : "No s'ha pogut crear la carpeta",
"Error fetching URL" : "Error en obtenir la URL",
- "Share" : "Comparteix",
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
- "Delete permanently" : "Esborra permanentment",
"Rename" : "Reanomena",
"Pending" : "Pendent",
"Error moving file." : "Error en moure el fitxer.",
diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js
index 58467d9c68f..9252417c731 100644
--- a/apps/files/l10n/cs_CZ.js
+++ b/apps/files/l10n/cs_CZ.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Nepodařilo se vytvořit soubor",
"Could not create folder" : "Nepodařilo se vytvořit složku",
"Error fetching URL" : "Chyba při načítání URL",
- "Share" : "Sdílet",
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
- "Delete permanently" : "Trvale odstranit",
"Rename" : "Přejmenovat",
"Pending" : "Nevyřízené",
"Error moving file." : "Chyba při přesunu souboru.",
diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json
index 98cad1c70f5..3df5e4ee957 100644
--- a/apps/files/l10n/cs_CZ.json
+++ b/apps/files/l10n/cs_CZ.json
@@ -44,11 +44,9 @@
"Could not create file" : "Nepodařilo se vytvořit soubor",
"Could not create folder" : "Nepodařilo se vytvořit složku",
"Error fetching URL" : "Chyba při načítání URL",
- "Share" : "Sdílet",
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
- "Delete permanently" : "Trvale odstranit",
"Rename" : "Přejmenovat",
"Pending" : "Nevyřízené",
"Error moving file." : "Chyba při přesunu souboru.",
diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js
index a9c4ddeba28..947f4ba6631 100644
--- a/apps/files/l10n/cy_GB.js
+++ b/apps/files/l10n/cy_GB.js
@@ -19,10 +19,8 @@ OC.L10N.register(
"Upload cancelled." : "Diddymwyd llwytho i fyny.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
"{new_name} already exists" : "{new_name} yn bodoli'n barod",
- "Share" : "Rhannu",
"Delete" : "Dileu",
"Unshare" : "Dad-rannu",
- "Delete permanently" : "Dileu'n barhaol",
"Rename" : "Ailenwi",
"Pending" : "I ddod",
"Error" : "Gwall",
diff --git a/apps/files/l10n/cy_GB.json b/apps/files/l10n/cy_GB.json
index dc583d0a333..2edf129976c 100644
--- a/apps/files/l10n/cy_GB.json
+++ b/apps/files/l10n/cy_GB.json
@@ -17,10 +17,8 @@
"Upload cancelled." : "Diddymwyd llwytho i fyny.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
"{new_name} already exists" : "{new_name} yn bodoli'n barod",
- "Share" : "Rhannu",
"Delete" : "Dileu",
"Unshare" : "Dad-rannu",
- "Delete permanently" : "Dileu'n barhaol",
"Rename" : "Ailenwi",
"Pending" : "I ddod",
"Error" : "Gwall",
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 7b636c63409..9ddf620b63b 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Kunne ikke oprette fil",
"Could not create folder" : "Kunne ikke oprette mappe",
"Error fetching URL" : "Fejl ved URL",
- "Share" : "Del",
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
- "Delete permanently" : "Slet permanent",
"Rename" : "Omdøb",
"Pending" : "Afventer",
"Error moving file." : "Fejl ved flytning af fil",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 81b658bef2e..7e6a88f2486 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -44,11 +44,9 @@
"Could not create file" : "Kunne ikke oprette fil",
"Could not create folder" : "Kunne ikke oprette mappe",
"Error fetching URL" : "Fejl ved URL",
- "Share" : "Del",
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
- "Delete permanently" : "Slet permanent",
"Rename" : "Omdøb",
"Pending" : "Afventer",
"Error moving file." : "Fejl ved flytning af fil",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index b4ffa90c89b..0ed91061f94 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
- "Share" : "Teilen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Delete permanently" : "Endgültig löschen",
"Rename" : "Umbenennen",
"Pending" : "Ausstehend",
"Error moving file." : "Fehler beim Verschieben der Datei.",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 600a60ddfd7..fa567f7b4f3 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -44,11 +44,9 @@
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
- "Share" : "Teilen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Delete permanently" : "Endgültig löschen",
"Rename" : "Umbenennen",
"Pending" : "Ausstehend",
"Error moving file." : "Fehler beim Verschieben der Datei.",
diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js
index 00e929683cc..435b15551e2 100644
--- a/apps/files/l10n/de_AT.js
+++ b/apps/files/l10n/de_AT.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Files" : "Dateien",
- "Share" : "Freigeben",
"Delete" : "Löschen",
"Unshare" : "Teilung zurücknehmen",
"Error" : "Fehler",
diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json
index 190e5c1d3b1..41abbca37d5 100644
--- a/apps/files/l10n/de_AT.json
+++ b/apps/files/l10n/de_AT.json
@@ -1,6 +1,5 @@
{ "translations": {
"Files" : "Dateien",
- "Share" : "Freigeben",
"Delete" : "Löschen",
"Unshare" : "Teilung zurücknehmen",
"Error" : "Fehler",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 3e64aa3c990..51bbdc08692 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
- "Share" : "Teilen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Delete permanently" : "Endgültig löschen",
"Rename" : "Umbenennen",
"Pending" : "Ausstehend",
"Error moving file." : "Fehler beim Verschieben der Datei.",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index df3433251c6..02c8c411d4c 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -44,11 +44,9 @@
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
- "Share" : "Teilen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Delete permanently" : "Endgültig löschen",
"Rename" : "Umbenennen",
"Pending" : "Ausstehend",
"Error moving file." : "Fehler beim Verschieben der Datei.",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index eaf4eb65ebd..3ac2eedd126 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Αδυναμία δημιουργίας αρχείου",
"Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
"Error fetching URL" : "Σφάλμα φόρτωσης URL",
- "Share" : "Διαμοιρασμός",
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
- "Delete permanently" : "Μόνιμη διαγραφή",
"Rename" : "Μετονομασία",
"Pending" : "Εκκρεμεί",
"Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 5c9b763b5e1..630eddd616b 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -44,11 +44,9 @@
"Could not create file" : "Αδυναμία δημιουργίας αρχείου",
"Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
"Error fetching URL" : "Σφάλμα φόρτωσης URL",
- "Share" : "Διαμοιρασμός",
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
- "Delete permanently" : "Μόνιμη διαγραφή",
"Rename" : "Μετονομασία",
"Pending" : "Εκκρεμεί",
"Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index 494358d3363..d940540bc88 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Could not create file",
"Could not create folder" : "Could not create folder",
"Error fetching URL" : "Error fetching URL",
- "Share" : "Share",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
- "Delete permanently" : "Delete permanently",
"Rename" : "Rename",
"Pending" : "Pending",
"Error moving file." : "Error moving file.",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index bdda9bf4faf..88d2c3d848e 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -44,11 +44,9 @@
"Could not create file" : "Could not create file",
"Could not create folder" : "Could not create folder",
"Error fetching URL" : "Error fetching URL",
- "Share" : "Share",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
- "Delete permanently" : "Delete permanently",
"Rename" : "Rename",
"Pending" : "Pending",
"Error moving file." : "Error moving file.",
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index 43acaae6ba4..91349252c8f 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -34,10 +34,8 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} jam ekzistas",
"Could not create file" : "Ne povis kreiĝi dosiero",
"Could not create folder" : "Ne povis kreiĝi dosierujo",
- "Share" : "Kunhavigi",
"Delete" : "Forigi",
"Unshare" : "Malkunhavigi",
- "Delete permanently" : "Forigi por ĉiam",
"Rename" : "Alinomigi",
"Pending" : "Traktotaj",
"Error moving file" : "Eraris movo de dosiero",
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 96338a90c11..59b8178aca0 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -32,10 +32,8 @@
"{new_name} already exists" : "{new_name} jam ekzistas",
"Could not create file" : "Ne povis kreiĝi dosiero",
"Could not create folder" : "Ne povis kreiĝi dosierujo",
- "Share" : "Kunhavigi",
"Delete" : "Forigi",
"Unshare" : "Malkunhavigi",
- "Delete permanently" : "Forigi por ĉiam",
"Rename" : "Alinomigi",
"Pending" : "Traktotaj",
"Error moving file" : "Eraris movo de dosiero",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 0e1ac9aede9..b73452ba416 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file." : "Error al mover el archivo.",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 5b45a869b54..8b8166575cd 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -44,11 +44,9 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file." : "Error al mover el archivo.",
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
index fd9f9bd05e1..cc3c7f157a4 100644
--- a/apps/files/l10n/es_AR.js
+++ b/apps/files/l10n/es_AR.js
@@ -37,10 +37,8 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear el directorio",
"Error fetching URL" : "Error al obtener la URL",
- "Share" : "Compartir",
"Delete" : "Borrar",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Borrar permanentemente",
"Rename" : "Cambiar nombre",
"Pending" : "Pendientes",
"Error moving file" : "Error moviendo el archivo",
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
index aa701390e68..c1dc14422f2 100644
--- a/apps/files/l10n/es_AR.json
+++ b/apps/files/l10n/es_AR.json
@@ -35,10 +35,8 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear el directorio",
"Error fetching URL" : "Error al obtener la URL",
- "Share" : "Compartir",
"Delete" : "Borrar",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Borrar permanentemente",
"Rename" : "Cambiar nombre",
"Pending" : "Pendientes",
"Error moving file" : "Error moviendo el archivo",
diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js
index 7a6f60c2961..0bf887f3699 100644
--- a/apps/files/l10n/es_CL.js
+++ b/apps/files/l10n/es_CL.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Unknown error" : "Error desconocido",
"Files" : "Archivos",
- "Share" : "Compartir",
"Rename" : "Renombrar",
"Error" : "Error",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json
index bb2cd206077..65f65eee022 100644
--- a/apps/files/l10n/es_CL.json
+++ b/apps/files/l10n/es_CL.json
@@ -1,7 +1,6 @@
{ "translations": {
"Unknown error" : "Error desconocido",
"Files" : "Archivos",
- "Share" : "Compartir",
"Rename" : "Renombrar",
"Error" : "Error",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 9d353e84a25..2a62b597d3a 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -37,10 +37,8 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file" : "Error moviendo archivo",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index f08223b70c7..94111d2095d 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -35,10 +35,8 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Unshare" : "Dejar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file" : "Error moviendo archivo",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index 0ffbb81f63c..1e2004a07d9 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Ei suuda luua faili",
"Could not create folder" : "Ei suuda luua kataloogi",
"Error fetching URL" : "Viga URL-i haaramisel",
- "Share" : "Jaga",
"Delete" : "Kustuta",
"Disconnect storage" : "Ühenda andmehoidla lahti.",
"Unshare" : "Lõpeta jagamine",
- "Delete permanently" : "Kustuta jäädavalt",
"Rename" : "Nimeta ümber",
"Pending" : "Ootel",
"Error moving file." : "Viga faili liigutamisel.",
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index fdb5bdcb4f2..1c4c7b56680 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -44,11 +44,9 @@
"Could not create file" : "Ei suuda luua faili",
"Could not create folder" : "Ei suuda luua kataloogi",
"Error fetching URL" : "Viga URL-i haaramisel",
- "Share" : "Jaga",
"Delete" : "Kustuta",
"Disconnect storage" : "Ühenda andmehoidla lahti.",
"Unshare" : "Lõpeta jagamine",
- "Delete permanently" : "Kustuta jäädavalt",
"Rename" : "Nimeta ümber",
"Pending" : "Ootel",
"Error moving file." : "Viga faili liigutamisel.",
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 5fb2ac32f7c..3b154222ab5 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Ezin izan da fitxategia sortu",
"Could not create folder" : "Ezin izan da karpeta sortu",
"Error fetching URL" : "Errorea URLa eskuratzerakoan",
- "Share" : "Elkarbanatu",
"Delete" : "Ezabatu",
"Disconnect storage" : "Deskonektatu biltegia",
"Unshare" : "Ez elkarbanatu",
- "Delete permanently" : "Ezabatu betirako",
"Rename" : "Berrizendatu",
"Pending" : "Zain",
"Error moving file." : "Errorea fitxategia mugitzean.",
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index fadc0218477..22aa1f8f3a8 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -44,11 +44,9 @@
"Could not create file" : "Ezin izan da fitxategia sortu",
"Could not create folder" : "Ezin izan da karpeta sortu",
"Error fetching URL" : "Errorea URLa eskuratzerakoan",
- "Share" : "Elkarbanatu",
"Delete" : "Ezabatu",
"Disconnect storage" : "Deskonektatu biltegia",
"Unshare" : "Ez elkarbanatu",
- "Delete permanently" : "Ezabatu betirako",
"Rename" : "Berrizendatu",
"Pending" : "Zain",
"Error moving file." : "Errorea fitxategia mugitzean.",
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index 1e403418ab1..d81213191fd 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -22,10 +22,8 @@ OC.L10N.register(
"Upload cancelled." : "بار گذاری لغو شد",
"File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ",
"{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
- "Share" : "اشتراک‌گذاری",
"Delete" : "حذف",
"Unshare" : "لغو اشتراک",
- "Delete permanently" : "حذف قطعی",
"Rename" : "تغییرنام",
"Pending" : "در انتظار",
"Error" : "خطا",
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index 872cef839a7..ddc1cce6c5c 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -20,10 +20,8 @@
"Upload cancelled." : "بار گذاری لغو شد",
"File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ",
"{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
- "Share" : "اشتراک‌گذاری",
"Delete" : "حذف",
"Unshare" : "لغو اشتراک",
- "Delete permanently" : "حذف قطعی",
"Rename" : "تغییرنام",
"Pending" : "در انتظار",
"Error" : "خطا",
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index 3c94a518774..4d78fa413e4 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Tiedoston luominen epäonnistui",
"Could not create folder" : "Kansion luominen epäonnistui",
"Error fetching URL" : "Virhe noutaessa verkko-osoitetta",
- "Share" : "Jaa",
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
- "Delete permanently" : "Poista pysyvästi",
"Rename" : "Nimeä uudelleen",
"Pending" : "Odottaa",
"Error moving file." : "Virhe tiedostoa siirrettäessä.",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index 8628607793b..8052b0f3287 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -44,11 +44,9 @@
"Could not create file" : "Tiedoston luominen epäonnistui",
"Could not create folder" : "Kansion luominen epäonnistui",
"Error fetching URL" : "Virhe noutaessa verkko-osoitetta",
- "Share" : "Jaa",
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
- "Delete permanently" : "Poista pysyvästi",
"Rename" : "Nimeä uudelleen",
"Pending" : "Odottaa",
"Error moving file." : "Virhe tiedostoa siirrettäessä.",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index a5a4f25bf1d..86d10b2a8c4 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Impossible de créer le fichier",
"Could not create folder" : "Impossible de créer le dossier",
"Error fetching URL" : "Erreur d'accès à l'URL",
- "Share" : "Partager",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
- "Delete permanently" : "Supprimer de façon définitive",
"Rename" : "Renommer",
"Pending" : "En attente",
"Error moving file." : "Erreur lors du déplacement du fichier.",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 26707810a75..8c2a7b4ca3e 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -44,11 +44,9 @@
"Could not create file" : "Impossible de créer le fichier",
"Could not create folder" : "Impossible de créer le dossier",
"Error fetching URL" : "Erreur d'accès à l'URL",
- "Share" : "Partager",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
- "Delete permanently" : "Supprimer de façon définitive",
"Rename" : "Renommer",
"Pending" : "En attente",
"Error moving file." : "Erreur lors du déplacement du fichier.",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 53757da49b5..28dad5d7757 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Non foi posíbel crear o ficheiro",
"Could not create folder" : "Non foi posíbel crear o cartafol",
"Error fetching URL" : "Produciuse un erro ao obter o URL",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renomear",
"Pending" : "Pendentes",
"Error moving file." : "Produciuse un erro ao mover o ficheiro.",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index 0e131a0ffa6..cdb404bfad4 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -44,11 +44,9 @@
"Could not create file" : "Non foi posíbel crear o ficheiro",
"Could not create folder" : "Non foi posíbel crear o cartafol",
"Error fetching URL" : "Produciuse un erro ao obter o URL",
- "Share" : "Compartir",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
- "Delete permanently" : "Eliminar permanentemente",
"Rename" : "Renomear",
"Pending" : "Pendentes",
"Error moving file." : "Produciuse un erro ao mover o ficheiro.",
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 4db22fef4ed..6ad6a9d58c3 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -22,10 +22,8 @@ OC.L10N.register(
"Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"{new_name} already exists" : "{new_name} כבר קיים",
- "Share" : "שתף",
"Delete" : "מחיקה",
"Unshare" : "הסר שיתוף",
- "Delete permanently" : "מחק לצמיתות",
"Rename" : "שינוי שם",
"Pending" : "ממתין",
"Error" : "שגיאה",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index b876983cbbb..c9caf1093e3 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -20,10 +20,8 @@
"Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"{new_name} already exists" : "{new_name} כבר קיים",
- "Share" : "שתף",
"Delete" : "מחיקה",
"Unshare" : "הסר שיתוף",
- "Delete permanently" : "מחק לצמיתות",
"Rename" : "שינוי שם",
"Pending" : "ממתין",
"Error" : "שגיאה",
diff --git a/apps/files/l10n/hi.js b/apps/files/l10n/hi.js
index 21b409ce9ef..6439a1af93a 100644
--- a/apps/files/l10n/hi.js
+++ b/apps/files/l10n/hi.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Files" : "फाइलें ",
- "Share" : "साझा करें",
"Error" : "त्रुटि",
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
diff --git a/apps/files/l10n/hi.json b/apps/files/l10n/hi.json
index 093b80ce700..0e61c34bcdc 100644
--- a/apps/files/l10n/hi.json
+++ b/apps/files/l10n/hi.json
@@ -1,6 +1,5 @@
{ "translations": {
"Files" : "फाइलें ",
- "Share" : "साझा करें",
"Error" : "त्रुटि",
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
index ad4eead41cc..f840cf3fa41 100644
--- a/apps/files/l10n/hr.js
+++ b/apps/files/l10n/hr.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Datoteku nije moguće kreirati",
"Could not create folder" : "Mapu nije moguće kreirati",
"Error fetching URL" : "Pogrešan dohvat URL",
- "Share" : "Podijelite resurs",
"Delete" : "Izbrišite",
"Disconnect storage" : "Isključite pohranu",
"Unshare" : "Prestanite dijeliti",
- "Delete permanently" : "Trajno izbrišite",
"Rename" : "Preimenujte",
"Pending" : "Na čekanju",
"Error moving file." : "Pogrešno premještanje datoteke",
diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json
index 482796da4a1..fb94891580d 100644
--- a/apps/files/l10n/hr.json
+++ b/apps/files/l10n/hr.json
@@ -44,11 +44,9 @@
"Could not create file" : "Datoteku nije moguće kreirati",
"Could not create folder" : "Mapu nije moguće kreirati",
"Error fetching URL" : "Pogrešan dohvat URL",
- "Share" : "Podijelite resurs",
"Delete" : "Izbrišite",
"Disconnect storage" : "Isključite pohranu",
"Unshare" : "Prestanite dijeliti",
- "Delete permanently" : "Trajno izbrišite",
"Rename" : "Preimenujte",
"Pending" : "Na čekanju",
"Error moving file." : "Pogrešno premještanje datoteke",
diff --git a/apps/files/l10n/hu_HU.js b/apps/files/l10n/hu_HU.js
index 34a9c73aa08..3b1f298e5f2 100644
--- a/apps/files/l10n/hu_HU.js
+++ b/apps/files/l10n/hu_HU.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Az állomány nem hozható létre",
"Could not create folder" : "A mappa nem hozható létre",
"Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni",
- "Share" : "Megosztás",
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
- "Delete permanently" : "Végleges törlés",
"Rename" : "Átnevezés",
"Pending" : "Folyamatban",
"Error moving file." : "Hiba történt a fájl áthelyezése közben.",
diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json
index 10ff167fd46..c5fd6b93bd6 100644
--- a/apps/files/l10n/hu_HU.json
+++ b/apps/files/l10n/hu_HU.json
@@ -44,11 +44,9 @@
"Could not create file" : "Az állomány nem hozható létre",
"Could not create folder" : "A mappa nem hozható létre",
"Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni",
- "Share" : "Megosztás",
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
- "Delete permanently" : "Végleges törlés",
"Rename" : "Átnevezés",
"Pending" : "Folyamatban",
"Error moving file." : "Hiba történt a fájl áthelyezése közben.",
diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js
index 8c93abf1bef..415f74842d4 100644
--- a/apps/files/l10n/ia.js
+++ b/apps/files/l10n/ia.js
@@ -7,7 +7,6 @@ OC.L10N.register(
"No file was uploaded" : "Nulle file esseva incargate.",
"Missing a temporary folder" : "Manca un dossier temporari",
"Files" : "Files",
- "Share" : "Compartir",
"Delete" : "Deler",
"Unshare" : "Leva compartir",
"Error" : "Error",
diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json
index 962419f288b..d18deefc264 100644
--- a/apps/files/l10n/ia.json
+++ b/apps/files/l10n/ia.json
@@ -5,7 +5,6 @@
"No file was uploaded" : "Nulle file esseva incargate.",
"Missing a temporary folder" : "Manca un dossier temporari",
"Files" : "Files",
- "Share" : "Compartir",
"Delete" : "Deler",
"Unshare" : "Leva compartir",
"Error" : "Error",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 8ae4c822ea8..d8438537792 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Tidak dapat membuat berkas",
"Could not create folder" : "Tidak dapat membuat folder",
"Error fetching URL" : "Kesalahan saat mengambil URL",
- "Share" : "Bagikan",
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
- "Delete permanently" : "Hapus secara permanen",
"Rename" : "Ubah nama",
"Pending" : "Menunggu",
"Error moving file." : "Kesalahan saat memindahkan berkas.",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index d644aa22ec4..38668a71d0a 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -44,11 +44,9 @@
"Could not create file" : "Tidak dapat membuat berkas",
"Could not create folder" : "Tidak dapat membuat folder",
"Error fetching URL" : "Kesalahan saat mengambil URL",
- "Share" : "Bagikan",
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
- "Delete permanently" : "Hapus secara permanen",
"Rename" : "Ubah nama",
"Pending" : "Menunggu",
"Error moving file." : "Kesalahan saat memindahkan berkas.",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 5f3e2e78f26..72dcb93b3ff 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"Upload cancelled." : "Hætt við innsendingu.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.",
"{new_name} already exists" : "{new_name} er þegar til",
- "Share" : "Deila",
"Delete" : "Eyða",
"Unshare" : "Hætta deilingu",
"Rename" : "Endurskýra",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 0a6afcb0b64..ba575238d16 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -16,7 +16,6 @@
"Upload cancelled." : "Hætt við innsendingu.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.",
"{new_name} already exists" : "{new_name} er þegar til",
- "Share" : "Deila",
"Delete" : "Eyða",
"Unshare" : "Hætta deilingu",
"Rename" : "Endurskýra",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 693888bb7c8..b54e95685a1 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Impossibile creare il file",
"Could not create folder" : "Impossibile creare la cartella",
"Error fetching URL" : "Errore durante il recupero dello URL",
- "Share" : "Condividi",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
- "Delete permanently" : "Elimina definitivamente",
"Rename" : "Rinomina",
"Pending" : "In corso",
"Error moving file." : "Errore durante lo spostamento del file.",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 4efbf6f64b4..cbdb66c118f 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -44,11 +44,9 @@
"Could not create file" : "Impossibile creare il file",
"Could not create folder" : "Impossibile creare la cartella",
"Error fetching URL" : "Errore durante il recupero dello URL",
- "Share" : "Condividi",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
- "Delete permanently" : "Elimina definitivamente",
"Rename" : "Rinomina",
"Pending" : "In corso",
"Error moving file." : "Errore durante lo spostamento del file.",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 201da49664b..0f11ad44f82 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "ファイルを作成できませんでした",
"Could not create folder" : "フォルダーを作成できませんでした",
"Error fetching URL" : "URL取得エラー",
- "Share" : "共有",
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
- "Delete permanently" : "完全に削除する",
"Rename" : "名前の変更",
"Pending" : "中断",
"Error moving file." : "ファイル移動でエラー",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 314bc723322..b18b25c2432 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -44,11 +44,9 @@
"Could not create file" : "ファイルを作成できませんでした",
"Could not create folder" : "フォルダーを作成できませんでした",
"Error fetching URL" : "URL取得エラー",
- "Share" : "共有",
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
- "Delete permanently" : "完全に削除する",
"Rename" : "名前の変更",
"Pending" : "中断",
"Error moving file." : "ファイル移動でエラー",
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index 9845b12b129..d23d8b860b4 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -20,10 +20,8 @@ OC.L10N.register(
"Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
"File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას",
"{new_name} already exists" : "{new_name} უკვე არსებობს",
- "Share" : "გაზიარება",
"Delete" : "წაშლა",
"Unshare" : "გაუზიარებადი",
- "Delete permanently" : "სრულად წაშლა",
"Rename" : "გადარქმევა",
"Pending" : "მოცდის რეჟიმში",
"Error" : "შეცდომა",
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 65dde81cfc4..512e96864f2 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -18,10 +18,8 @@
"Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
"File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას",
"{new_name} already exists" : "{new_name} უკვე არსებობს",
- "Share" : "გაზიარება",
"Delete" : "წაშლა",
"Unshare" : "გაუზიარებადი",
- "Delete permanently" : "სრულად წაშლა",
"Rename" : "გადარქმევა",
"Pending" : "მოცდის რეჟიმში",
"Error" : "შეცდომა",
diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js
index 5a44796d1e7..f329a51bcf4 100644
--- a/apps/files/l10n/km.js
+++ b/apps/files/l10n/km.js
@@ -11,10 +11,8 @@ OC.L10N.register(
"Files" : "ឯកសារ",
"Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
"{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
- "Share" : "ចែក​រំលែក",
"Delete" : "លុប",
"Unshare" : "លែង​ចែក​រំលែក",
- "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Rename" : "ប្ដូរ​ឈ្មោះ",
"Pending" : "កំពុង​រង់ចាំ",
"Error" : "កំហុស",
diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json
index 6ed24afe47a..bcd7be4c977 100644
--- a/apps/files/l10n/km.json
+++ b/apps/files/l10n/km.json
@@ -9,10 +9,8 @@
"Files" : "ឯកសារ",
"Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
"{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
- "Share" : "ចែក​រំលែក",
"Delete" : "លុប",
"Unshare" : "លែង​ចែក​រំលែក",
- "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Rename" : "ប្ដូរ​ឈ្មោះ",
"Pending" : "កំពុង​រង់ចាំ",
"Error" : "កំហុស",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index 519652e4796..a587e324998 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -37,10 +37,8 @@ OC.L10N.register(
"Could not create file" : "파일을 만들 수 없음",
"Could not create folder" : "폴더를 만들 수 없음",
"Error fetching URL" : "URL을 가져올 수 없음",
- "Share" : "공유",
"Delete" : "삭제",
"Unshare" : "공유 해제",
- "Delete permanently" : "영구히 삭제",
"Rename" : "이름 바꾸기",
"Pending" : "대기 중",
"Error moving file" : "파일 이동 오류",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index afcda78ecd0..031925b5f5e 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -35,10 +35,8 @@
"Could not create file" : "파일을 만들 수 없음",
"Could not create folder" : "폴더를 만들 수 없음",
"Error fetching URL" : "URL을 가져올 수 없음",
- "Share" : "공유",
"Delete" : "삭제",
"Unshare" : "공유 해제",
- "Delete permanently" : "영구히 삭제",
"Rename" : "이름 바꾸기",
"Pending" : "대기 중",
"Error moving file" : "파일 이동 오류",
diff --git a/apps/files/l10n/ku_IQ.js b/apps/files/l10n/ku_IQ.js
index 5236669f239..f8749d38d34 100644
--- a/apps/files/l10n/ku_IQ.js
+++ b/apps/files/l10n/ku_IQ.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Files" : "په‌ڕگەکان",
- "Share" : "هاوبەشی کردن",
"Error" : "هه‌ڵه",
"Name" : "ناو",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/ku_IQ.json b/apps/files/l10n/ku_IQ.json
index c11984e29d7..b63c05e1c9b 100644
--- a/apps/files/l10n/ku_IQ.json
+++ b/apps/files/l10n/ku_IQ.json
@@ -1,6 +1,5 @@
{ "translations": {
"Files" : "په‌ڕگەکان",
- "Share" : "هاوبەشی کردن",
"Error" : "هه‌ڵه",
"Name" : "ناو",
"_%n folder_::_%n folders_" : ["",""],
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 05c3ff1e7e4..6b5211e1d9d 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Files" : "Dateien",
"Upload cancelled." : "Upload ofgebrach.",
"File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.",
- "Share" : "Deelen",
"Delete" : "Läschen",
"Unshare" : "Net méi deelen",
"Rename" : "Ëm-benennen",
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index 868141071f3..7b7ad7d5cff 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -9,7 +9,6 @@
"Files" : "Dateien",
"Upload cancelled." : "Upload ofgebrach.",
"File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.",
- "Share" : "Deelen",
"Delete" : "Läschen",
"Unshare" : "Net méi deelen",
"Rename" : "Ëm-benennen",
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index c4b391bee67..089eb1d83ff 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -37,10 +37,8 @@ OC.L10N.register(
"Could not create file" : "Neįmanoma sukurti failo",
"Could not create folder" : "Neįmanoma sukurti aplanko",
"Error fetching URL" : "Klauda gaunant URL",
- "Share" : "Dalintis",
"Delete" : "Ištrinti",
"Unshare" : "Nebesidalinti",
- "Delete permanently" : "Ištrinti negrįžtamai",
"Rename" : "Pervadinti",
"Pending" : "Laukiantis",
"Error moving file" : "Klaida perkeliant failą",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 6baaa79c92c..d3de21aef97 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -35,10 +35,8 @@
"Could not create file" : "Neįmanoma sukurti failo",
"Could not create folder" : "Neįmanoma sukurti aplanko",
"Error fetching URL" : "Klauda gaunant URL",
- "Share" : "Dalintis",
"Delete" : "Ištrinti",
"Unshare" : "Nebesidalinti",
- "Delete permanently" : "Ištrinti negrįžtamai",
"Rename" : "Pervadinti",
"Pending" : "Laukiantis",
"Error moving file" : "Klaida perkeliant failą",
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index d01f2894d94..74bc5b50763 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -22,10 +22,8 @@ OC.L10N.register(
"Upload cancelled." : "Augšupielāde ir atcelta.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.",
"{new_name} already exists" : "{new_name} jau eksistē",
- "Share" : "Dalīties",
"Delete" : "Dzēst",
"Unshare" : "Pārtraukt dalīšanos",
- "Delete permanently" : "Dzēst pavisam",
"Rename" : "Pārsaukt",
"Pending" : "Gaida savu kārtu",
"Error" : "Kļūda",
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index 39a0caea5b2..ebc5df7026f 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -20,10 +20,8 @@
"Upload cancelled." : "Augšupielāde ir atcelta.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.",
"{new_name} already exists" : "{new_name} jau eksistē",
- "Share" : "Dalīties",
"Delete" : "Dzēst",
"Unshare" : "Pārtraukt dalīšanos",
- "Delete permanently" : "Dzēst pavisam",
"Rename" : "Pārsaukt",
"Pending" : "Gaida savu kārtu",
"Error" : "Kļūda",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 57a717ceaf6..218d014f8de 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -32,10 +32,8 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} веќе постои",
"Could not create file" : "Не множам да креирам датотека",
"Could not create folder" : "Не можам да креирам папка",
- "Share" : "Сподели",
"Delete" : "Избриши",
"Unshare" : "Не споделувај",
- "Delete permanently" : "Трајно избришани",
"Rename" : "Преименувај",
"Pending" : "Чека",
"Error moving file" : "Грешка при префрлање на датотека",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 2d3df73a75f..0ff8dd00d87 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -30,10 +30,8 @@
"{new_name} already exists" : "{new_name} веќе постои",
"Could not create file" : "Не множам да креирам датотека",
"Could not create folder" : "Не можам да креирам папка",
- "Share" : "Сподели",
"Delete" : "Избриши",
"Unshare" : "Не споделувај",
- "Delete permanently" : "Трајно избришани",
"Rename" : "Преименувај",
"Pending" : "Чека",
"Error moving file" : "Грешка при префрлање на датотека",
diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js
index 50e95b4bca2..a97e955417e 100644
--- a/apps/files/l10n/ms_MY.js
+++ b/apps/files/l10n/ms_MY.js
@@ -10,7 +10,6 @@ OC.L10N.register(
"Failed to write to disk" : "Gagal untuk disimpan",
"Files" : "Fail-fail",
"Upload cancelled." : "Muatnaik dibatalkan.",
- "Share" : "Kongsi",
"Delete" : "Padam",
"Rename" : "Namakan",
"Pending" : "Dalam proses",
diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json
index 6f085a76a68..8a64b1b7a7b 100644
--- a/apps/files/l10n/ms_MY.json
+++ b/apps/files/l10n/ms_MY.json
@@ -8,7 +8,6 @@
"Failed to write to disk" : "Gagal untuk disimpan",
"Files" : "Fail-fail",
"Upload cancelled." : "Muatnaik dibatalkan.",
- "Share" : "Kongsi",
"Delete" : "Padam",
"Rename" : "Namakan",
"Pending" : "Dalam proses",
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index d9c59b1bdd7..32f1e97bd27 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Klarte ikke å opprette fil",
"Could not create folder" : "Klarte ikke å opprette mappe",
"Error fetching URL" : "Feil ved henting av URL",
- "Share" : "Del",
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
- "Delete permanently" : "Slett permanent",
"Rename" : "Gi nytt navn",
"Pending" : "Ventende",
"Error moving file." : "Feil ved flytting av fil.",
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index ab3dfc782e6..47cab7d2615 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -44,11 +44,9 @@
"Could not create file" : "Klarte ikke å opprette fil",
"Could not create folder" : "Klarte ikke å opprette mappe",
"Error fetching URL" : "Feil ved henting av URL",
- "Share" : "Del",
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
- "Delete permanently" : "Slett permanent",
"Rename" : "Gi nytt navn",
"Pending" : "Ventende",
"Error moving file." : "Feil ved flytting av fil.",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 75f1e26ec0b..07d4a559685 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Kon bestand niet creëren",
"Could not create folder" : "Kon niet creëren map",
"Error fetching URL" : "Fout bij ophalen URL",
- "Share" : "Delen",
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
- "Delete permanently" : "Definitief verwijderen",
"Rename" : "Naam wijzigen",
"Pending" : "In behandeling",
"Error moving file." : "Fout bij verplaatsen bestand.",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 58416264c9a..30551f59cf0 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -44,11 +44,9 @@
"Could not create file" : "Kon bestand niet creëren",
"Could not create folder" : "Kon niet creëren map",
"Error fetching URL" : "Fout bij ophalen URL",
- "Share" : "Delen",
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
- "Delete permanently" : "Definitief verwijderen",
"Rename" : "Naam wijzigen",
"Pending" : "In behandeling",
"Error moving file." : "Fout bij verplaatsen bestand.",
diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js
index 6d17a9458c5..5889930e7f1 100644
--- a/apps/files/l10n/nn_NO.js
+++ b/apps/files/l10n/nn_NO.js
@@ -26,10 +26,8 @@ OC.L10N.register(
"Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
"{new_name} already exists" : "{new_name} finst allereie",
- "Share" : "Del",
"Delete" : "Slett",
"Unshare" : "Udel",
- "Delete permanently" : "Slett for godt",
"Rename" : "Endra namn",
"Pending" : "Under vegs",
"Error moving file" : "Feil ved flytting av fil",
diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json
index 4008ab0778c..3f3026655d8 100644
--- a/apps/files/l10n/nn_NO.json
+++ b/apps/files/l10n/nn_NO.json
@@ -24,10 +24,8 @@
"Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
"{new_name} already exists" : "{new_name} finst allereie",
- "Share" : "Del",
"Delete" : "Slett",
"Unshare" : "Udel",
- "Delete permanently" : "Slett for godt",
"Rename" : "Endra namn",
"Pending" : "Under vegs",
"Error moving file" : "Feil ved flytting av fil",
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index deb447f57d9..4d427297080 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -10,7 +10,6 @@ OC.L10N.register(
"Files" : "Fichièrs",
"Upload cancelled." : "Amontcargar anullat.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
- "Share" : "Parteja",
"Delete" : "Escafa",
"Unshare" : "Pas partejador",
"Rename" : "Torna nomenar",
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index 994cb0055ea..4f316b62e9e 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -8,7 +8,6 @@
"Files" : "Fichièrs",
"Upload cancelled." : "Amontcargar anullat.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
- "Share" : "Parteja",
"Delete" : "Escafa",
"Unshare" : "Pas partejador",
"Rename" : "Torna nomenar",
diff --git a/apps/files/l10n/pa.js b/apps/files/l10n/pa.js
index 84216361960..ec6847929e3 100644
--- a/apps/files/l10n/pa.js
+++ b/apps/files/l10n/pa.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ",
"Files" : "ਫਾਇਲਾਂ",
- "Share" : "ਸਾਂਝਾ ਕਰੋ",
"Delete" : "ਹਟਾਓ",
"Rename" : "ਨਾਂ ਬਦਲੋ",
"Error" : "ਗਲਤੀ",
diff --git a/apps/files/l10n/pa.json b/apps/files/l10n/pa.json
index b429b4ab19b..b8c98948c73 100644
--- a/apps/files/l10n/pa.json
+++ b/apps/files/l10n/pa.json
@@ -1,7 +1,6 @@
{ "translations": {
"Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ",
"Files" : "ਫਾਇਲਾਂ",
- "Share" : "ਸਾਂਝਾ ਕਰੋ",
"Delete" : "ਹਟਾਓ",
"Rename" : "ਨਾਂ ਬਦਲੋ",
"Error" : "ਗਲਤੀ",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 1a0fb57ec30..da1966b203c 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Nie można utworzyć pliku",
"Could not create folder" : "Nie można utworzyć folderu",
"Error fetching URL" : "Błąd przy pobieraniu adresu URL",
- "Share" : "Udostępnij",
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
- "Delete permanently" : "Trwale usuń",
"Rename" : "Zmień nazwę",
"Pending" : "Oczekujące",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index b073141e3d1..447145f221c 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -44,11 +44,9 @@
"Could not create file" : "Nie można utworzyć pliku",
"Could not create folder" : "Nie można utworzyć folderu",
"Error fetching URL" : "Błąd przy pobieraniu adresu URL",
- "Share" : "Udostępnij",
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
- "Delete permanently" : "Trwale usuń",
"Rename" : "Zmień nazwę",
"Pending" : "Oczekujące",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index b4c97887362..ede4f2521f3 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"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 fetching URL" : "Erro ao buscar URL",
- "Share" : "Compartilhar",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
- "Delete permanently" : "Excluir permanentemente",
"Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro movendo o arquivo.",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 8c303c234ae..10faf5ce8c8 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -44,11 +44,9 @@
"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 fetching URL" : "Erro ao buscar URL",
- "Share" : "Compartilhar",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
- "Delete permanently" : "Excluir permanentemente",
"Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro movendo o arquivo.",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 2ce2038d661..d43720f0e8a 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -46,12 +46,10 @@ OC.L10N.register(
"Could not create file" : "Não pôde criar ficheiro",
"Could not create folder" : "Não pôde criar pasta",
"Error fetching URL" : "Erro ao obter URL",
- "Share" : "Compartilhar",
+ "Rename" : "Renomear",
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
- "Delete permanently" : "Apagar Para Sempre",
- "Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro a mover o ficheiro.",
"Error moving file" : "Erro ao mover o ficheiro",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 4be9e4306dc..e735114678b 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -44,12 +44,10 @@
"Could not create file" : "Não pôde criar ficheiro",
"Could not create folder" : "Não pôde criar pasta",
"Error fetching URL" : "Erro ao obter URL",
- "Share" : "Compartilhar",
+ "Rename" : "Renomear",
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
- "Delete permanently" : "Apagar Para Sempre",
- "Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro a mover o ficheiro.",
"Error moving file" : "Erro ao mover o ficheiro",
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index 2b3e662aafd..fb242789296 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Nu s-a putut crea fisierul",
"Could not create folder" : "Nu s-a putut crea folderul",
"Error fetching URL" : "Eroare încarcare URL",
- "Share" : "Partajează",
"Delete" : "Șterge",
"Disconnect storage" : "Stocare deconectata",
"Unshare" : "Anulare",
- "Delete permanently" : "Șterge permanent",
"Rename" : "Redenumește",
"Pending" : "În așteptare",
"Error moving file." : "Eroare la mutarea fișierului.",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index c0e85b4b916..5ebb191e2e1 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -44,11 +44,9 @@
"Could not create file" : "Nu s-a putut crea fisierul",
"Could not create folder" : "Nu s-a putut crea folderul",
"Error fetching URL" : "Eroare încarcare URL",
- "Share" : "Partajează",
"Delete" : "Șterge",
"Disconnect storage" : "Stocare deconectata",
"Unshare" : "Anulare",
- "Delete permanently" : "Șterge permanent",
"Rename" : "Redenumește",
"Pending" : "În așteptare",
"Error moving file." : "Eroare la mutarea fișierului.",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index cd982266155..7d3f3dd8a85 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Не удалось создать файл",
"Could not create folder" : "Не удалось создать каталог",
"Error fetching URL" : "Ошибка получения URL",
- "Share" : "Открыть доступ",
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединиться от хранилища",
"Unshare" : "Закрыть доступ",
- "Delete permanently" : "Удалить окончательно",
"Rename" : "Переименовать",
"Pending" : "Ожидание",
"Error moving file." : "Ошибка перемещения файла.",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 7ac4fb7c3c3..d6a3759b5a0 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -44,11 +44,9 @@
"Could not create file" : "Не удалось создать файл",
"Could not create folder" : "Не удалось создать каталог",
"Error fetching URL" : "Ошибка получения URL",
- "Share" : "Открыть доступ",
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединиться от хранилища",
"Unshare" : "Закрыть доступ",
- "Delete permanently" : "Удалить окончательно",
"Rename" : "Переименовать",
"Pending" : "Ожидание",
"Error moving file." : "Ошибка перемещения файла.",
diff --git a/apps/files/l10n/si_LK.js b/apps/files/l10n/si_LK.js
index 80df02a9ada..fbba973c6c2 100644
--- a/apps/files/l10n/si_LK.js
+++ b/apps/files/l10n/si_LK.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Files" : "ගොනු",
"Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
- "Share" : "බෙදා හදා ගන්න",
"Delete" : "මකා දමන්න",
"Unshare" : "නොබෙදු",
"Rename" : "නැවත නම් කරන්න",
diff --git a/apps/files/l10n/si_LK.json b/apps/files/l10n/si_LK.json
index e66d5c2a1f1..b76adf30052 100644
--- a/apps/files/l10n/si_LK.json
+++ b/apps/files/l10n/si_LK.json
@@ -9,7 +9,6 @@
"Files" : "ගොනු",
"Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
- "Share" : "බෙදා හදා ගන්න",
"Delete" : "මකා දමන්න",
"Unshare" : "නොබෙදු",
"Rename" : "නැවත නම් කරන්න",
diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js
index b29bc7e2c0f..f4f2ecb66ea 100644
--- a/apps/files/l10n/sk_SK.js
+++ b/apps/files/l10n/sk_SK.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Nemožno vytvoriť súbor",
"Could not create folder" : "Nemožno vytvoriť priečinok",
"Error fetching URL" : "Chyba pri načítavaní URL",
- "Share" : "Zdieľať",
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zrušiť zdieľanie",
- "Delete permanently" : "Zmazať trvalo",
"Rename" : "Premenovať",
"Pending" : "Čaká",
"Error moving file." : "Chyba pri presune súboru.",
diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json
index a61a5ac06ad..ab4e176c9c6 100644
--- a/apps/files/l10n/sk_SK.json
+++ b/apps/files/l10n/sk_SK.json
@@ -44,11 +44,9 @@
"Could not create file" : "Nemožno vytvoriť súbor",
"Could not create folder" : "Nemožno vytvoriť priečinok",
"Error fetching URL" : "Chyba pri načítavaní URL",
- "Share" : "Zdieľať",
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zrušiť zdieľanie",
- "Delete permanently" : "Zmazať trvalo",
"Rename" : "Premenovať",
"Pending" : "Čaká",
"Error moving file." : "Chyba pri presune súboru.",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 6a8bcbe68a6..d9dfb5bec46 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Ni mogoče ustvariti datoteke",
"Could not create folder" : "Ni mogoče ustvariti mape",
"Error fetching URL" : "Napaka pridobivanja naslova URL",
- "Share" : "Souporaba",
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
- "Delete permanently" : "Izbriši dokončno",
"Rename" : "Preimenuj",
"Pending" : "V čakanju ...",
"Error moving file." : "Napaka premikanja datoteke.",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index c759bd2abfe..a2e28a2e058 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -44,11 +44,9 @@
"Could not create file" : "Ni mogoče ustvariti datoteke",
"Could not create folder" : "Ni mogoče ustvariti mape",
"Error fetching URL" : "Napaka pridobivanja naslova URL",
- "Share" : "Souporaba",
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
- "Delete permanently" : "Izbriši dokončno",
"Rename" : "Preimenuj",
"Pending" : "V čakanju ...",
"Error moving file." : "Napaka premikanja datoteke.",
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index d85523ba062..00eb892333f 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Skedari nuk mund të krijohet",
"Could not create folder" : "I pamundur krijimi i kartelës",
"Error fetching URL" : "Gabim në ngarkimin e URL",
- "Share" : "Ndaj",
"Delete" : "Fshi",
"Disconnect storage" : "Shkëput hapësirën e memorizimit",
"Unshare" : "Hiq ndarjen",
- "Delete permanently" : "Fshi përfundimisht",
"Rename" : "Riemëro",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index f15bc950d03..3abc90c7427 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -44,11 +44,9 @@
"Could not create file" : "Skedari nuk mund të krijohet",
"Could not create folder" : "I pamundur krijimi i kartelës",
"Error fetching URL" : "Gabim në ngarkimin e URL",
- "Share" : "Ndaj",
"Delete" : "Fshi",
"Disconnect storage" : "Shkëput hapësirën e memorizimit",
"Unshare" : "Hiq ndarjen",
- "Delete permanently" : "Fshi përfundimisht",
"Rename" : "Riemëro",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index a758c833ff5..a9c17d8c7c9 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -19,10 +19,8 @@ OC.L10N.register(
"Upload cancelled." : "Отпремање је прекинуто.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.",
"{new_name} already exists" : "{new_name} већ постоји",
- "Share" : "Дели",
"Delete" : "Обриши",
"Unshare" : "Укини дељење",
- "Delete permanently" : "Обриши за стално",
"Rename" : "Преименуј",
"Pending" : "На чекању",
"Error" : "Грешка",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index a68c3f8ad8d..b486c13f640 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -17,10 +17,8 @@
"Upload cancelled." : "Отпремање је прекинуто.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.",
"{new_name} already exists" : "{new_name} већ постоји",
- "Share" : "Дели",
"Delete" : "Обриши",
"Unshare" : "Укини дељење",
- "Delete permanently" : "Обриши за стално",
"Rename" : "Преименуј",
"Pending" : "На чекању",
"Error" : "Грешка",
diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js
index 2209b673abd..85fb77f2474 100644
--- a/apps/files/l10n/sr@latin.js
+++ b/apps/files/l10n/sr@latin.js
@@ -7,7 +7,6 @@ OC.L10N.register(
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Files" : "Fajlovi",
- "Share" : "Podeli",
"Delete" : "Obriši",
"Unshare" : "Ukljoni deljenje",
"Rename" : "Preimenij",
diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json
index f130138bc55..8c91d7a58b3 100644
--- a/apps/files/l10n/sr@latin.json
+++ b/apps/files/l10n/sr@latin.json
@@ -5,7 +5,6 @@
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Files" : "Fajlovi",
- "Share" : "Podeli",
"Delete" : "Obriši",
"Unshare" : "Ukljoni deljenje",
"Rename" : "Preimenij",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index 234731fec2b..fddc56639d6 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -42,10 +42,8 @@ OC.L10N.register(
"Could not create file" : "Kunde ej skapa fil",
"Could not create folder" : "Kunde ej skapa katalog",
"Error fetching URL" : "Fel vid hämtning av URL",
- "Share" : "Dela",
"Delete" : "Radera",
"Unshare" : "Sluta dela",
- "Delete permanently" : "Radera permanent",
"Rename" : "Byt namn",
"Pending" : "Väntar",
"Error moving file." : "Fel vid flytt av fil.",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 36aa5d5984f..1fca280c405 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -40,10 +40,8 @@
"Could not create file" : "Kunde ej skapa fil",
"Could not create folder" : "Kunde ej skapa katalog",
"Error fetching URL" : "Fel vid hämtning av URL",
- "Share" : "Dela",
"Delete" : "Radera",
"Unshare" : "Sluta dela",
- "Delete permanently" : "Radera permanent",
"Rename" : "Byt namn",
"Pending" : "Väntar",
"Error moving file." : "Fel vid flytt av fil.",
diff --git a/apps/files/l10n/ta_LK.js b/apps/files/l10n/ta_LK.js
index 2014dd6ceb9..4dfdcd82faf 100644
--- a/apps/files/l10n/ta_LK.js
+++ b/apps/files/l10n/ta_LK.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
"File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.",
"{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
- "Share" : "பகிர்வு",
"Delete" : "நீக்குக",
"Unshare" : "பகிரப்படாதது",
"Rename" : "பெயர்மாற்றம்",
diff --git a/apps/files/l10n/ta_LK.json b/apps/files/l10n/ta_LK.json
index c8426f9eb32..ec79b1713e9 100644
--- a/apps/files/l10n/ta_LK.json
+++ b/apps/files/l10n/ta_LK.json
@@ -11,7 +11,6 @@
"Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
"File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.",
"{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
- "Share" : "பகிர்வு",
"Delete" : "நீக்குக",
"Unshare" : "பகிரப்படாதது",
"Rename" : "பெயர்மாற்றம்",
diff --git a/apps/files/l10n/te.js b/apps/files/l10n/te.js
index 2d0a3ed3d9a..ef04ca24f80 100644
--- a/apps/files/l10n/te.js
+++ b/apps/files/l10n/te.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Delete" : "తొలగించు",
- "Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
"Name" : "పేరు",
"Size" : "పరిమాణం",
diff --git a/apps/files/l10n/te.json b/apps/files/l10n/te.json
index efa952f212a..c263e796d61 100644
--- a/apps/files/l10n/te.json
+++ b/apps/files/l10n/te.json
@@ -1,6 +1,5 @@
{ "translations": {
"Delete" : "తొలగించు",
- "Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
"Name" : "పేరు",
"Size" : "పరిమాణం",
diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js
index 039d4562a7a..8da4193704d 100644
--- a/apps/files/l10n/th_TH.js
+++ b/apps/files/l10n/th_TH.js
@@ -20,7 +20,6 @@ OC.L10N.register(
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
- "Share" : "แชร์",
"Delete" : "ลบ",
"Unshare" : "ยกเลิกการแชร์",
"Rename" : "เปลี่ยนชื่อ",
diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json
index bd4afed4aec..90fd9c7bd3d 100644
--- a/apps/files/l10n/th_TH.json
+++ b/apps/files/l10n/th_TH.json
@@ -18,7 +18,6 @@
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
- "Share" : "แชร์",
"Delete" : "ลบ",
"Unshare" : "ยกเลิกการแชร์",
"Rename" : "เปลี่ยนชื่อ",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index 81eaf632112..be5bebd6a24 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Dosya oluşturulamadı",
"Could not create folder" : "Klasör oluşturulamadı",
"Error fetching URL" : "Adres getirilirken hata",
- "Share" : "Paylaş",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
- "Delete permanently" : "Kalıcı olarak sil",
"Rename" : "Yeniden adlandır",
"Pending" : "Bekliyor",
"Error moving file." : "Dosya taşıma hatası.",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 41ba10c4e7f..6c03db5090b 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -44,11 +44,9 @@
"Could not create file" : "Dosya oluşturulamadı",
"Could not create folder" : "Klasör oluşturulamadı",
"Error fetching URL" : "Adres getirilirken hata",
- "Share" : "Paylaş",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
- "Delete permanently" : "Kalıcı olarak sil",
"Rename" : "Yeniden adlandır",
"Pending" : "Bekliyor",
"Error moving file." : "Dosya taşıma hatası.",
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index cfa6db88c4a..c3d9d839c2f 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -12,10 +12,8 @@ OC.L10N.register(
"Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.",
"File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.",
"{new_name} already exists" : "{new_name} مەۋجۇت",
- "Share" : "ھەمبەھىر",
"Delete" : "ئۆچۈر",
"Unshare" : "ھەمبەھىرلىمە",
- "Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Rename" : "ئات ئۆزگەرت",
"Pending" : "كۈتۈۋاتىدۇ",
"Error" : "خاتالىق",
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index 19c010492e7..b0a267e31e8 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -10,10 +10,8 @@
"Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.",
"File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.",
"{new_name} already exists" : "{new_name} مەۋجۇت",
- "Share" : "ھەمبەھىر",
"Delete" : "ئۆچۈر",
"Unshare" : "ھەمبەھىرلىمە",
- "Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Rename" : "ئات ئۆزگەرت",
"Pending" : "كۈتۈۋاتىدۇ",
"Error" : "خاتالىق",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index b2bbbcbfc4c..14ca3192469 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "Не вдалося створити файл",
"Could not create folder" : "Не вдалося створити теку",
"Error fetching URL" : "Помилка отримання URL",
- "Share" : "Поділитися",
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
- "Delete permanently" : "Видалити назавжди",
"Rename" : "Перейменувати",
"Pending" : "Очікування",
"Error moving file." : "Помилка переміщення файлу.",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index 6c8a5be4f5c..d1340773365 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -44,11 +44,9 @@
"Could not create file" : "Не вдалося створити файл",
"Could not create folder" : "Не вдалося створити теку",
"Error fetching URL" : "Помилка отримання URL",
- "Share" : "Поділитися",
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
- "Delete permanently" : "Видалити назавжди",
"Rename" : "Перейменувати",
"Pending" : "Очікування",
"Error moving file." : "Помилка переміщення файлу.",
diff --git a/apps/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js
index c0be28aa0d4..21c0da147a2 100644
--- a/apps/files/l10n/ur_PK.js
+++ b/apps/files/l10n/ur_PK.js
@@ -2,7 +2,6 @@ OC.L10N.register(
"files",
{
"Unknown error" : "غیر معروف خرابی",
- "Share" : "تقسیم",
"Delete" : "حذف کریں",
"Unshare" : "شئیرنگ ختم کریں",
"Error" : "ایرر",
diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json
index 1ceef01a442..744f90a3b99 100644
--- a/apps/files/l10n/ur_PK.json
+++ b/apps/files/l10n/ur_PK.json
@@ -1,6 +1,5 @@
{ "translations": {
"Unknown error" : "غیر معروف خرابی",
- "Share" : "تقسیم",
"Delete" : "حذف کریں",
"Unshare" : "شئیرنگ ختم کریں",
"Error" : "ایرر",
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index 744f37082fe..c718d000f29 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -36,10 +36,8 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} đã tồn tại",
"Could not create file" : "Không thể tạo file",
"Could not create folder" : "Không thể tạo thư mục",
- "Share" : "Chia sẻ",
"Delete" : "Xóa",
"Unshare" : "Bỏ chia sẻ",
- "Delete permanently" : "Xóa vĩnh vễn",
"Rename" : "Sửa tên",
"Pending" : "Đang chờ",
"Error moving file" : "Lỗi di chuyển tập tin",
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index 32e953b68e1..8e3273c751c 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -34,10 +34,8 @@
"{new_name} already exists" : "{new_name} đã tồn tại",
"Could not create file" : "Không thể tạo file",
"Could not create folder" : "Không thể tạo thư mục",
- "Share" : "Chia sẻ",
"Delete" : "Xóa",
"Unshare" : "Bỏ chia sẻ",
- "Delete permanently" : "Xóa vĩnh vễn",
"Rename" : "Sửa tên",
"Pending" : "Đang chờ",
"Error moving file" : "Lỗi di chuyển tập tin",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 502c673764e..95fb863e320 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -44,11 +44,9 @@ OC.L10N.register(
"Could not create file" : "不能创建文件",
"Could not create folder" : "不能创建文件夹",
"Error fetching URL" : "获取URL出错",
- "Share" : "分享",
"Delete" : "删除",
"Disconnect storage" : "断开储存连接",
"Unshare" : "取消共享",
- "Delete permanently" : "永久删除",
"Rename" : "重命名",
"Pending" : "等待",
"Error moving file." : "移动文件出错。",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index a0244f1965a..1368060a9d4 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -42,11 +42,9 @@
"Could not create file" : "不能创建文件",
"Could not create folder" : "不能创建文件夹",
"Error fetching URL" : "获取URL出错",
- "Share" : "分享",
"Delete" : "删除",
"Disconnect storage" : "断开储存连接",
"Unshare" : "取消共享",
- "Delete permanently" : "永久删除",
"Rename" : "重命名",
"Pending" : "等待",
"Error moving file." : "移动文件出错。",
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index e3e2aec65a0..17c47da37bf 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Unknown error" : "不明錯誤",
"Files" : "文件",
"All files" : "所有文件",
- "Share" : "分享",
"Delete" : "刪除",
"Unshare" : "取消分享",
"Rename" : "重新命名",
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index da0632f0882..56af7599e2e 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -2,7 +2,6 @@
"Unknown error" : "不明錯誤",
"Files" : "文件",
"All files" : "所有文件",
- "Share" : "分享",
"Delete" : "刪除",
"Unshare" : "取消分享",
"Rename" : "重新命名",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 73e17fa47fc..17998c7c8d7 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -46,11 +46,9 @@ OC.L10N.register(
"Could not create file" : "無法建立檔案",
"Could not create folder" : "無法建立資料夾",
"Error fetching URL" : "抓取 URL 發生錯誤",
- "Share" : "分享",
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
- "Delete permanently" : "永久刪除",
"Rename" : "重新命名",
"Pending" : "等候中",
"Error moving file." : "移動檔案發生錯誤",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index f55b936a40f..7ce3ca7bc6a 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -44,11 +44,9 @@
"Could not create file" : "無法建立檔案",
"Could not create folder" : "無法建立資料夾",
"Error fetching URL" : "抓取 URL 發生錯誤",
- "Share" : "分享",
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
- "Delete permanently" : "永久刪除",
"Rename" : "重新命名",
"Pending" : "等候中",
"Error moving file." : "移動檔案發生錯誤",
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index aa5a2f8c68a..97b9d8e7044 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -82,7 +82,7 @@ class Helper
public static function compareTimestamp(FileInfo $a, FileInfo $b) {
$aTime = $a->getMTime();
$bTime = $b->getMTime();
- return $aTime - $bTime;
+ return ($aTime < $bTime) ? -1 : 1;
}
/**
diff --git a/apps/files/templates/fileexists.html b/apps/files/templates/fileexists.html
index 79beccef3e5..5360a7c8e8f 100644
--- a/apps/files/templates/fileexists.html
+++ b/apps/files/templates/fileexists.html
@@ -20,6 +20,7 @@
<span class="svg icon"></span>
<div class="mtime"></div>
<div class="size"></div>
+ <div class="message"></div>
</div>
</div>
</div>
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index b52effb1e78..222a996aae3 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -15,5 +15,6 @@
<input type="hidden" name="encryptedFiles" id="encryptedFiles" value="<?php $_['encryptedFiles'] ? p('1') : p('0'); ?>" />
<input type="hidden" name="encryptedInitStatus" id="encryptionInitStatus" value="<?php p($_['encryptionInitStatus']) ?>" />
<input type="hidden" name="mailNotificationEnabled" id="mailNotificationEnabled" value="<?php p($_['mailNotificationEnabled']) ?>" />
+<input type="hidden" name="mailPublicNotificationEnabled" id="mailPublicNotificationEnabled" value="<?php p($_['mailPublicNotificationEnabled']) ?>" />
<input type="hidden" name="allowShareWithLink" id="allowShareWithLink" value="<?php p($_['allowShareWithLink']) ?>" />
<?php endif;
diff --git a/apps/files/tests/helper.php b/apps/files/tests/helper.php
index da902f4f78a..1b7c8eef43a 100644
--- a/apps/files/tests/helper.php
+++ b/apps/files/tests/helper.php
@@ -33,10 +33,10 @@ class Test_Files_Helper extends \Test\TestCase {
*/
private function getTestFileList() {
return array(
- self::makeFileInfo('a.txt', 4, 1000),
+ self::makeFileInfo('a.txt', 4, 2.3 * pow(10, 9)),
self::makeFileInfo('q.txt', 5, 150),
self::makeFileInfo('subdir2', 87, 128, true),
- self::makeFileInfo('b.txt', 166, 800),
+ self::makeFileInfo('b.txt', 2.2 * pow(10, 9), 800),
self::makeFileInfo('o.txt', 12, 100),
self::makeFileInfo('subdir', 88, 125, true),
);
diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js
index f5f18a45a75..828aec9b6b9 100644
--- a/apps/files/tests/js/fileactionsSpec.js
+++ b/apps/files/tests/js/fileactionsSpec.js
@@ -193,6 +193,54 @@ describe('OCA.Files.FileActions tests', function() {
context = actionStub.getCall(0).args[1];
expect(context.dir).toEqual('/somepath');
});
+ describe('custom rendering', function() {
+ var $tr;
+ beforeEach(function() {
+ var fileData = {
+ id: 18,
+ type: 'file',
+ name: 'testName.txt',
+ mimetype: 'text/plain',
+ size: '1234',
+ etag: 'a01234c',
+ mtime: '123456'
+ };
+ $tr = fileList.add(fileData);
+ });
+ it('regular function', function() {
+ var actionStub = sinon.stub();
+ FileActions.registerAction({
+ name: 'Test',
+ displayName: '',
+ mime: 'all',
+ permissions: OC.PERMISSION_READ,
+ render: function(actionSpec, isDefault, context) {
+ expect(actionSpec.name).toEqual('Test');
+ expect(actionSpec.displayName).toEqual('');
+ expect(actionSpec.permissions).toEqual(OC.PERMISSION_READ);
+ expect(actionSpec.mime).toEqual('all');
+ expect(isDefault).toEqual(false);
+
+ expect(context.fileList).toEqual(fileList);
+ expect(context.$file[0]).toEqual($tr[0]);
+
+ var $customEl = $('<a href="#"><span>blabli</span><span>blabla</span></a>');
+ $tr.find('td:first').append($customEl);
+ return $customEl;
+ },
+ actionHandler: actionStub
+ });
+ FileActions.display($tr.find('td.filename'), true, fileList);
+
+ var $actionEl = $tr.find('td:first .action-test');
+ expect($actionEl.length).toEqual(1);
+ expect($actionEl.hasClass('action')).toEqual(true);
+
+ $actionEl.click();
+ expect(actionStub.calledOnce).toEqual(true);
+ expect(actionStub.getCall(0).args[0]).toEqual('testName.txt');
+ });
+ });
describe('merging', function() {
var $tr;
beforeEach(function() {
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index d7a1433485d..3ca41fbae7d 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -968,8 +968,8 @@ describe('OCA.Files.FileList tests', function() {
name: 'testFile.txt'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders default icon for dir when none provided and no preview is available', function() {
@@ -978,8 +978,8 @@ describe('OCA.Files.FileList tests', function() {
name: 'test dir'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders provided icon for file when provided', function() {
@@ -989,8 +989,8 @@ describe('OCA.Files.FileList tests', function() {
icon: OC.webroot + '/core/img/filetypes/application-pdf.svg'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders preview when no icon was provided and preview is available', function() {
@@ -1001,11 +1001,11 @@ describe('OCA.Files.FileList tests', function() {
};
var $tr = fileList.add(fileData);
var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.calledOnce).toEqual(true);
// third argument is callback
previewLoadStub.getCall(0).args[0].callback(OC.webroot + '/somepath.png');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/somepath.png');
+ expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/somepath.png');
});
it('renders default file type icon when no icon was provided and no preview is available', function() {
var fileData = {
@@ -1014,8 +1014,8 @@ describe('OCA.Files.FileList tests', function() {
isPreviewAvailable: false
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
});
diff --git a/apps/files/triggerupdate.php b/apps/files/triggerupdate.php
deleted file mode 100644
index 3f85da9913b..00000000000
--- a/apps/files/triggerupdate.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-require_once __DIR__ . '/../../lib/base.php';
-
-if (OC::$CLI) {
- if (count($argv) === 2) {
- $file = $argv[1];
- list(, $user) = explode('/', $file);
- OCP\JSON::checkUserExists($user);
- OC_Util::setupFS($user);
- $view = new \OC\Files\View('');
- /**
- * @var \OC\Files\Storage\Storage $storage
- */
- list($storage, $internalPath) = $view->resolvePath($file);
- $watcher = $storage->getWatcher($internalPath);
- $watcher->checkUpdate($internalPath);
- } else {
- echo "Usage: php triggerupdate.php /path/to/file\n";
- }
-} else {
- echo "This script can be run from the command line only\n";
-}
diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php
index 684fd51ae13..503c15b53a9 100644
--- a/apps/files_encryption/ajax/adminrecovery.php
+++ b/apps/files_encryption/ajax/adminrecovery.php
@@ -7,7 +7,8 @@
*
* Script to handle admin settings for encrypted key recovery
*/
-use OCA\Encryption;
+
+use OCA\Files_Encryption\Helper;
\OCP\JSON::checkAdminUser();
\OCP\JSON::checkAppEnabled('files_encryption');
@@ -42,7 +43,7 @@ $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'rec
if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1') {
- $return = \OCA\Encryption\Helper::adminEnableRecovery($recoveryKeyId, $_POST['recoveryPassword']);
+ $return = Helper::adminEnableRecovery($recoveryKeyId, $_POST['recoveryPassword']);
// Return success or failure
if ($return) {
@@ -56,7 +57,7 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1
isset($_POST['adminEnableRecovery'])
&& '0' === $_POST['adminEnableRecovery']
) {
- $return = \OCA\Encryption\Helper::adminDisableRecovery($_POST['recoveryPassword']);
+ $return = Helper::adminDisableRecovery($_POST['recoveryPassword']);
if ($return) {
$successMessage = $l->t('Recovery key successfully disabled');
diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php
index 01b76a969b6..3d31b12af7c 100644
--- a/apps/files_encryption/ajax/changeRecoveryPassword.php
+++ b/apps/files_encryption/ajax/changeRecoveryPassword.php
@@ -9,8 +9,6 @@
*
*/
-use OCA\Encryption;
-
\OCP\JSON::checkAdminUser();
\OCP\JSON::checkAppEnabled('files_encryption');
\OCP\JSON::callCheck();
@@ -49,21 +47,21 @@ if ($_POST['newPassword'] !== $_POST['confirmPassword']) {
}
$view = new \OC\Files\View('/');
-$util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser());
+$util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser());
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
$keyId = $util->getRecoveryKeyId();
-$encryptedRecoveryKey = Encryption\Keymanager::getPrivateSystemKey($keyId);
-$decryptedRecoveryKey = $encryptedRecoveryKey ? \OCA\Encryption\Crypt::decryptPrivateKey($encryptedRecoveryKey, $oldPassword) : false;
+$encryptedRecoveryKey = \OCA\Files_Encryption\Keymanager::getPrivateSystemKey($keyId);
+$decryptedRecoveryKey = $encryptedRecoveryKey ? \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedRecoveryKey, $oldPassword) : false;
if ($decryptedRecoveryKey) {
- $cipher = \OCA\Encryption\Helper::getCipher();
- $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword, $cipher);
+ $cipher = \OCA\Files_Encryption\Helper::getCipher();
+ $encryptedKey = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword, $cipher);
if ($encryptedKey) {
- \OCA\Encryption\Keymanager::setPrivateSystemKey($encryptedKey, $keyId);
+ \OCA\Files_Encryption\Keymanager::setPrivateSystemKey($encryptedKey, $keyId);
$return = true;
}
}
diff --git a/apps/files_encryption/ajax/getMigrationStatus.php b/apps/files_encryption/ajax/getMigrationStatus.php
index adceb949044..bb260199b19 100644
--- a/apps/files_encryption/ajax/getMigrationStatus.php
+++ b/apps/files_encryption/ajax/getMigrationStatus.php
@@ -6,7 +6,8 @@
*
* check migration status
*/
-use OCA\Encryption\Util;
+
+use OCA\Files_Encryption\Util;
\OCP\JSON::checkAppEnabled('files_encryption');
diff --git a/apps/files_encryption/ajax/updatePrivateKeyPassword.php b/apps/files_encryption/ajax/updatePrivateKeyPassword.php
index 97da3811a0f..7161b0cff92 100644
--- a/apps/files_encryption/ajax/updatePrivateKeyPassword.php
+++ b/apps/files_encryption/ajax/updatePrivateKeyPassword.php
@@ -9,8 +9,6 @@
*
*/
-use OCA\Encryption;
-
\OCP\JSON::checkLoggedIn();
\OCP\JSON::checkAppEnabled('files_encryption');
\OCP\JSON::callCheck();
@@ -24,7 +22,7 @@ $oldPassword = $_POST['oldPassword'];
$newPassword = $_POST['newPassword'];
$view = new \OC\Files\View('/');
-$session = new \OCA\Encryption\Session($view);
+$session = new \OCA\Files_Encryption\Session($view);
$user = \OCP\User::getUser();
$loginName = \OC::$server->getUserSession()->getLoginName();
@@ -36,14 +34,14 @@ if ($passwordCorrect !== false) {
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
-$encryptedKey = Encryption\Keymanager::getPrivateKey($view, $user);
-$decryptedKey = $encryptedKey ? \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, $oldPassword) : false;
+$encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, $user);
+$decryptedKey = $encryptedKey ? \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, $oldPassword) : false;
if ($decryptedKey) {
- $cipher = \OCA\Encryption\Helper::getCipher();
- $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($decryptedKey, $newPassword, $cipher);
+ $cipher = \OCA\Files_Encryption\Helper::getCipher();
+ $encryptedKey = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($decryptedKey, $newPassword, $cipher);
if ($encryptedKey) {
- \OCA\Encryption\Keymanager::setPrivateKey($encryptedKey, $user);
+ \OCA\Files_Encryption\Keymanager::setPrivateKey($encryptedKey, $user);
$session->setPrivateKey($decryptedKey);
$return = true;
}
@@ -61,7 +59,7 @@ if ($decryptedKey) {
// success or failure
if ($return) {
- $session->setInitialized(\OCA\Encryption\Session::INIT_SUCCESSFUL);
+ $session->setInitialized(\OCA\Files_Encryption\Session::INIT_SUCCESSFUL);
\OCP\JSON::success(array('data' => array('message' => $l->t('Private key password successfully updated.'))));
} else {
\OCP\JSON::error(array('data' => array('message' => $errorMessage)));
diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php
index a5b89fa7233..e49fee83a36 100644
--- a/apps/files_encryption/ajax/userrecovery.php
+++ b/apps/files_encryption/ajax/userrecovery.php
@@ -7,8 +7,6 @@
* Script to handle admin settings for encrypted key recovery
*/
-use OCA\Encryption;
-
\OCP\JSON::checkLoggedIn();
\OCP\JSON::checkAppEnabled('files_encryption');
\OCP\JSON::callCheck();
@@ -22,7 +20,7 @@ if (
$userId = \OCP\USER::getUser();
$view = new \OC\Files\View('/');
- $util = new \OCA\Encryption\Util($view, $userId);
+ $util = new \OCA\Files_Encryption\Util($view, $userId);
// Save recovery preference to DB
$return = $util->setRecoveryForUser($_POST['userEnableRecovery']);
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index 8bf422a612e..f2dc63c340d 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -1,41 +1,26 @@
<?php
-OC::$CLASSPATH['OCA\Encryption\Crypt'] = 'files_encryption/lib/crypt.php';
-OC::$CLASSPATH['OCA\Encryption\Hooks'] = 'files_encryption/hooks/hooks.php';
-OC::$CLASSPATH['OCA\Encryption\Util'] = 'files_encryption/lib/util.php';
-OC::$CLASSPATH['OCA\Encryption\Keymanager'] = 'files_encryption/lib/keymanager.php';
-OC::$CLASSPATH['OCA\Encryption\Stream'] = 'files_encryption/lib/stream.php';
-OC::$CLASSPATH['OCA\Encryption\Proxy'] = 'files_encryption/lib/proxy.php';
-OC::$CLASSPATH['OCA\Encryption\Session'] = 'files_encryption/lib/session.php';
-OC::$CLASSPATH['OCA\Encryption\Capabilities'] = 'files_encryption/lib/capabilities.php';
-OC::$CLASSPATH['OCA\Encryption\Helper'] = 'files_encryption/lib/helper.php';
-
-// Exceptions
-OC::$CLASSPATH['OCA\Encryption\Exception\MultiKeyEncryptException'] = 'files_encryption/exception/multiKeyEncryptException.php';
-OC::$CLASSPATH['OCA\Encryption\Exception\MultiKeyDecryptException'] = 'files_encryption/exception/multiKeyDecryptException.php';
-OC::$CLASSPATH['OCA\Encryption\Exception\EncryptionException'] = 'files_encryption/exception/encryptionException.php';
-
\OCP\Util::addTranslations('files_encryption');
\OCP\Util::addscript('files_encryption', 'encryption');
\OCP\Util::addscript('files_encryption', 'detect-migration');
if (!OC_Config::getValue('maintenance', false)) {
- OC_FileProxy::register(new OCA\Encryption\Proxy());
+ OC_FileProxy::register(new OCA\Files_Encryption\Proxy());
// User related hooks
- OCA\Encryption\Helper::registerUserHooks();
+ OCA\Files_Encryption\Helper::registerUserHooks();
// Sharing related hooks
- OCA\Encryption\Helper::registerShareHooks();
+ OCA\Files_Encryption\Helper::registerShareHooks();
// Filesystem related hooks
- OCA\Encryption\Helper::registerFilesystemHooks();
+ OCA\Files_Encryption\Helper::registerFilesystemHooks();
// App manager related hooks
- OCA\Encryption\Helper::registerAppHooks();
+ OCA\Files_Encryption\Helper::registerAppHooks();
if(!in_array('crypt', stream_get_wrappers())) {
- stream_wrapper_register('crypt', 'OCA\Encryption\Stream');
+ stream_wrapper_register('crypt', 'OCA\Files_Encryption\Stream');
}
} else {
// logout user if we are in maintenance to force re-login
diff --git a/apps/files_encryption/appinfo/routes.php b/apps/files_encryption/appinfo/routes.php
index 97635ae1236..9733c17fe95 100644
--- a/apps/files_encryption/appinfo/routes.php
+++ b/apps/files_encryption/appinfo/routes.php
@@ -19,4 +19,4 @@ $this->create('files_encryption_ajax_userrecovery', 'ajax/userrecovery.php')
->actionInclude('files_encryption/ajax/userrecovery.php');
// Register with the capabilities API
-OC_API::register('get', '/cloud/capabilities', array('OCA\Encryption\Capabilities', 'getCapabilities'), 'files_encryption', OC_API::USER_AUTH);
+OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Encryption\Capabilities', 'getCapabilities'), 'files_encryption', OC_API::USER_AUTH);
diff --git a/apps/files_encryption/exception/encryptionException.php b/apps/files_encryption/exception/encryptionexception.php
index de1f16b4f4b..2fb679e91d2 100644
--- a/apps/files_encryption/exception/encryptionException.php
+++ b/apps/files_encryption/exception/encryptionexception.php
@@ -21,7 +21,7 @@
*
*/
-namespace OCA\Encryption\Exception;
+namespace OCA\Files_Encryption\Exception;
/**
* Base class for all encryption exception
diff --git a/apps/files_encryption/exception/multiKeyDecryptException.php b/apps/files_encryption/exception/multikeydecryptexception.php
index c1e40e045e0..9ab10fd3e63 100644
--- a/apps/files_encryption/exception/multiKeyDecryptException.php
+++ b/apps/files_encryption/exception/multikeydecryptexception.php
@@ -21,7 +21,7 @@
*
*/
-namespace OCA\Encryption\Exception;
+namespace OCA\Files_Encryption\Exception;
/**
* Throw this encryption if multi key decryption failed
diff --git a/apps/files_encryption/exception/multiKeyEncryptException.php b/apps/files_encryption/exception/multikeyencryptexception.php
index e3aa7de591f..2dc8216abaa 100644
--- a/apps/files_encryption/exception/multiKeyEncryptException.php
+++ b/apps/files_encryption/exception/multikeyencryptexception.php
@@ -21,7 +21,7 @@
*
*/
-namespace OCA\Encryption\Exception;
+namespace OCA\Files_Encryption\Exception;
/**
* Throw this exception if multi key encrytion fails
diff --git a/apps/files_encryption/files/error.php b/apps/files_encryption/files/error.php
index b801c17bd40..4a1ed021f7c 100644
--- a/apps/files_encryption/files/error.php
+++ b/apps/files_encryption/files/error.php
@@ -12,14 +12,14 @@ if (!isset($_)) { //also provide standalone error page
if (isset($_GET['errorCode'])) {
$errorCode = $_GET['errorCode'];
switch ($errorCode) {
- case \OCA\Encryption\Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR:
+ case \OCA\Files_Encryption\Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR:
$errorMsg = $l->t('Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app.');
break;
- case \OCA\Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR:
+ case \OCA\Files_Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR:
$theme = new OC_Defaults();
$errorMsg = $l->t('Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.', array($theme->getName()));
break;
- case \OCA\Encryption\Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND:
+ case \OCA\Files_Encryption\Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND:
$errorMsg = $l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
break;
default:
@@ -27,7 +27,7 @@ if (!isset($_)) { //also provide standalone error page
break;
}
} else {
- $errorCode = \OCA\Encryption\Crypt::ENCRYPTION_UNKNOWN_ERROR;
+ $errorCode = \OCA\Files_Encryption\Crypt::ENCRYPTION_UNKNOWN_ERROR;
$errorMsg = $l->t("Unknown error. Please check your system settings or contact your administrator");
}
diff --git a/apps/files_encryption/l10n/cs_CZ.js b/apps/files_encryption/l10n/cs_CZ.js
index af26da94d78..bb0087002d2 100644
--- a/apps/files_encryption/l10n/cs_CZ.js
+++ b/apps/files_encryption/l10n/cs_CZ.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.",
"Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.",
"Missing requirements." : "Nesplněné závislosti.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Ujistěte se prosím, že máte máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Aplikace pro šifrování byla prozatím vypnuta.",
"Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:",
"Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.",
"Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.",
diff --git a/apps/files_encryption/l10n/cs_CZ.json b/apps/files_encryption/l10n/cs_CZ.json
index f60e17ec0e2..7ec10517aad 100644
--- a/apps/files_encryption/l10n/cs_CZ.json
+++ b/apps/files_encryption/l10n/cs_CZ.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.",
"Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.",
"Missing requirements." : "Nesplněné závislosti.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Ujistěte se prosím, že máte máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Aplikace pro šifrování byla prozatím vypnuta.",
"Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:",
"Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.",
"Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.",
diff --git a/apps/files_encryption/l10n/da.js b/apps/files_encryption/l10n/da.js
index eea2a08f83a..93c718357c9 100644
--- a/apps/files_encryption/l10n/da.js
+++ b/apps/files_encryption/l10n/da.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
"Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator",
"Missing requirements." : "Manglende betingelser.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Sørg for at OpenSSL, sammen med PHP-udvidelsen, er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.",
"Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:",
"Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.",
"Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.",
diff --git a/apps/files_encryption/l10n/da.json b/apps/files_encryption/l10n/da.json
index 96d989ce7ba..cd77a31993e 100644
--- a/apps/files_encryption/l10n/da.json
+++ b/apps/files_encryption/l10n/da.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
"Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator",
"Missing requirements." : "Manglende betingelser.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Sørg for at OpenSSL, sammen med PHP-udvidelsen, er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.",
"Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:",
"Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.",
"Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.",
diff --git a/apps/files_encryption/l10n/de.js b/apps/files_encryption/l10n/de.js
index c6a61b3a232..9687e081c76 100644
--- a/apps/files_encryption/l10n/de.js
+++ b/apps/files_encryption/l10n/de.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
"Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator",
"Missing requirements." : "Fehlende Vorraussetzungen",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stelle sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.",
"Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
"Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.",
"Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.",
diff --git a/apps/files_encryption/l10n/de.json b/apps/files_encryption/l10n/de.json
index 4739c547537..5fc3fb822fd 100644
--- a/apps/files_encryption/l10n/de.json
+++ b/apps/files_encryption/l10n/de.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
"Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator",
"Missing requirements." : "Fehlende Vorraussetzungen",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stelle sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.",
"Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
"Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.",
"Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.",
diff --git a/apps/files_encryption/l10n/de_DE.js b/apps/files_encryption/l10n/de_DE.js
index 5b5e12c78a4..01420b52e8d 100644
--- a/apps/files_encryption/l10n/de_DE.js
+++ b/apps/files_encryption/l10n/de_DE.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.",
"Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator",
"Missing requirements." : "Fehlende Voraussetzungen",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.",
"Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
"Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.",
"Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.",
diff --git a/apps/files_encryption/l10n/de_DE.json b/apps/files_encryption/l10n/de_DE.json
index 8830cc6022d..9105dc1e4c3 100644
--- a/apps/files_encryption/l10n/de_DE.json
+++ b/apps/files_encryption/l10n/de_DE.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.",
"Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator",
"Missing requirements." : "Fehlende Voraussetzungen",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.",
"Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
"Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.",
"Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.",
diff --git a/apps/files_encryption/l10n/en_GB.js b/apps/files_encryption/l10n/en_GB.js
index 96a13912ef3..1e5e07d450d 100644
--- a/apps/files_encryption/l10n/en_GB.js
+++ b/apps/files_encryption/l10n/en_GB.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.",
"Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator",
"Missing requirements." : "Missing requirements.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Please make sure that OpenSSL together with the PHP extension is enabled and properly configured. For now, the encryption app has been disabled.",
"Following users are not set up for encryption:" : "Following users are not set up for encryption:",
"Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.",
"Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.",
diff --git a/apps/files_encryption/l10n/en_GB.json b/apps/files_encryption/l10n/en_GB.json
index 3a722673a84..68478b60d68 100644
--- a/apps/files_encryption/l10n/en_GB.json
+++ b/apps/files_encryption/l10n/en_GB.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.",
"Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator",
"Missing requirements." : "Missing requirements.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Please make sure that OpenSSL together with the PHP extension is enabled and properly configured. For now, the encryption app has been disabled.",
"Following users are not set up for encryption:" : "Following users are not set up for encryption:",
"Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.",
"Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.",
diff --git a/apps/files_encryption/l10n/es.js b/apps/files_encryption/l10n/es.js
index 045b0ee8abe..c70ea8e341d 100644
--- a/apps/files_encryption/l10n/es.js
+++ b/apps/files_encryption/l10n/es.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
"Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte a su administrador",
"Missing requirements." : "Requisitos incompletos.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que OpenSSL y la extensión de PHP estén habilitados y configurados correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.",
"Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:",
"Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada..... Esto puede tomar un tiempo. Por favor espere.",
"Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.",
diff --git a/apps/files_encryption/l10n/es.json b/apps/files_encryption/l10n/es.json
index f3717c0c049..ab62508b000 100644
--- a/apps/files_encryption/l10n/es.json
+++ b/apps/files_encryption/l10n/es.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
"Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte a su administrador",
"Missing requirements." : "Requisitos incompletos.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que OpenSSL y la extensión de PHP estén habilitados y configurados correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.",
"Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:",
"Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada..... Esto puede tomar un tiempo. Por favor espere.",
"Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.",
diff --git a/apps/files_encryption/l10n/fr.js b/apps/files_encryption/l10n/fr.js
index fc5e2d5c5fb..34d5f7a13f2 100644
--- a/apps/files_encryption/l10n/fr.js
+++ b/apps/files_encryption/l10n/fr.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.",
"Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.",
"Missing requirements." : "Système minimum requis non respecté.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.",
"Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
"Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
"Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
diff --git a/apps/files_encryption/l10n/fr.json b/apps/files_encryption/l10n/fr.json
index c4a4fd1a23e..998947b8053 100644
--- a/apps/files_encryption/l10n/fr.json
+++ b/apps/files_encryption/l10n/fr.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.",
"Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.",
"Missing requirements." : "Système minimum requis non respecté.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.",
"Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
"Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
"Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
diff --git a/apps/files_encryption/l10n/it.js b/apps/files_encryption/l10n/it.js
index 6a63d188c36..08167b8ea7c 100644
--- a/apps/files_encryption/l10n/it.js
+++ b/apps/files_encryption/l10n/it.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
"Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore",
"Missing requirements." : "Requisiti mancanti.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Assicurati che OpenSSL e l'estensione PHP sia abilitatati e configurati correttamente. Per ora, l'applicazione di cifratura è disabilitata.",
"Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:",
"Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.",
"Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.",
diff --git a/apps/files_encryption/l10n/it.json b/apps/files_encryption/l10n/it.json
index f92e26a40ee..15d2b1b0343 100644
--- a/apps/files_encryption/l10n/it.json
+++ b/apps/files_encryption/l10n/it.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
"Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore",
"Missing requirements." : "Requisiti mancanti.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Assicurati che OpenSSL e l'estensione PHP sia abilitatati e configurati correttamente. Per ora, l'applicazione di cifratura è disabilitata.",
"Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:",
"Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.",
"Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.",
diff --git a/apps/files_encryption/l10n/ja.js b/apps/files_encryption/l10n/ja.js
index 765d1193de4..6d0930b5e25 100644
--- a/apps/files_encryption/l10n/ja.js
+++ b/apps/files_encryption/l10n/ja.js
@@ -23,10 +23,11 @@ OC.L10N.register(
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。",
- "Missing requirements." : "必要要件が満たされていません。",
- "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:",
"Initial encryption started... This can take some time. Please wait." : "暗号化の初期化作業を開始しました... この処理にはしばらく時間がかかります。お待ちください。",
"Initial encryption running... Please try again later." : "初期暗号化実行中... 後でもう一度お試しください。",
+ "Missing requirements." : "必要要件が満たされていません。",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、OpenSSL及びOpenSSLのPHPの拡張を有効にした上で、適切に設定してください。現時点では暗号化アプリは無効になっています。",
+ "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:",
"Go directly to your %spersonal settings%s." : "直接 %s個人設定%s に進む。",
"Encryption" : "暗号化",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
diff --git a/apps/files_encryption/l10n/ja.json b/apps/files_encryption/l10n/ja.json
index 1bfa3c4b650..abf2a3555ee 100644
--- a/apps/files_encryption/l10n/ja.json
+++ b/apps/files_encryption/l10n/ja.json
@@ -21,10 +21,11 @@
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。",
- "Missing requirements." : "必要要件が満たされていません。",
- "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:",
"Initial encryption started... This can take some time. Please wait." : "暗号化の初期化作業を開始しました... この処理にはしばらく時間がかかります。お待ちください。",
"Initial encryption running... Please try again later." : "初期暗号化実行中... 後でもう一度お試しください。",
+ "Missing requirements." : "必要要件が満たされていません。",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、OpenSSL及びOpenSSLのPHPの拡張を有効にした上で、適切に設定してください。現時点では暗号化アプリは無効になっています。",
+ "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:",
"Go directly to your %spersonal settings%s." : "直接 %s個人設定%s に進む。",
"Encryption" : "暗号化",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
diff --git a/apps/files_encryption/l10n/nl.js b/apps/files_encryption/l10n/nl.js
index 4ba98adff34..0400accd2bd 100644
--- a/apps/files_encryption/l10n/nl.js
+++ b/apps/files_encryption/l10n/nl.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.",
"Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder",
"Missing requirements." : "Missende benodigdheden.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Weed er zeker van dat OpenSSL met de PHP extensie is ingeschakeld en goed geconfigureerd. Op dit moment is de encryptie app uitgeschakeld.",
"Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:",
"Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.",
"Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.",
diff --git a/apps/files_encryption/l10n/nl.json b/apps/files_encryption/l10n/nl.json
index fe0d21610b8..eb2ea89428b 100644
--- a/apps/files_encryption/l10n/nl.json
+++ b/apps/files_encryption/l10n/nl.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.",
"Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder",
"Missing requirements." : "Missende benodigdheden.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Weed er zeker van dat OpenSSL met de PHP extensie is ingeschakeld en goed geconfigureerd. Op dit moment is de encryptie app uitgeschakeld.",
"Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:",
"Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.",
"Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.",
diff --git a/apps/files_encryption/l10n/pt_BR.js b/apps/files_encryption/l10n/pt_BR.js
index c519bdfde2b..2bcf3bc345b 100644
--- a/apps/files_encryption/l10n/pt_BR.js
+++ b/apps/files_encryption/l10n/pt_BR.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.",
"Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador",
"Missing requirements." : "Requisitos não encontrados.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL em conjunto com a extensão PHP está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.",
"Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:",
"Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.",
"Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.",
diff --git a/apps/files_encryption/l10n/pt_BR.json b/apps/files_encryption/l10n/pt_BR.json
index 8aae593d03e..d078c218ad3 100644
--- a/apps/files_encryption/l10n/pt_BR.json
+++ b/apps/files_encryption/l10n/pt_BR.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.",
"Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador",
"Missing requirements." : "Requisitos não encontrados.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL em conjunto com a extensão PHP está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.",
"Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:",
"Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.",
"Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.",
diff --git a/apps/files_encryption/l10n/ru.js b/apps/files_encryption/l10n/ru.js
index e43a6430f27..8e3615e169c 100644
--- a/apps/files_encryption/l10n/ru.js
+++ b/apps/files_encryption/l10n/ru.js
@@ -23,10 +23,11 @@ OC.L10N.register(
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш закрытый ключ недействителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.",
"Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Пожалуйста, проверьте системные настройки или свяжитесь с администратором",
- "Missing requirements." : "Требования отсутствуют.",
- "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:",
"Initial encryption started... This can take some time. Please wait." : "Начато начальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.",
"Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.",
+ "Missing requirements." : "Требования отсутствуют.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Пожалуйста, убедитесь, что OpenSSL и соответствующее расширение PHP включены и и правильно настроены. На данный момент приложение шифрования отключено.",
+ "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:",
"Go directly to your %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.",
"Encryption" : "Шифрование",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь",
diff --git a/apps/files_encryption/l10n/ru.json b/apps/files_encryption/l10n/ru.json
index 93584da0cc4..9162f8da1f6 100644
--- a/apps/files_encryption/l10n/ru.json
+++ b/apps/files_encryption/l10n/ru.json
@@ -21,10 +21,11 @@
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш закрытый ключ недействителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.",
"Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Пожалуйста, проверьте системные настройки или свяжитесь с администратором",
- "Missing requirements." : "Требования отсутствуют.",
- "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:",
"Initial encryption started... This can take some time. Please wait." : "Начато начальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.",
"Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.",
+ "Missing requirements." : "Требования отсутствуют.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Пожалуйста, убедитесь, что OpenSSL и соответствующее расширение PHP включены и и правильно настроены. На данный момент приложение шифрования отключено.",
+ "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:",
"Go directly to your %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.",
"Encryption" : "Шифрование",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь",
diff --git a/apps/files_encryption/l10n/sl.js b/apps/files_encryption/l10n/sl.js
index 7969a6b5cfd..678709ab891 100644
--- a/apps/files_encryption/l10n/sl.js
+++ b/apps/files_encryption/l10n/sl.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
"Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.",
"Missing requirements." : "Manjkajoče zahteve",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Preverite, ali je OpenSSL z ustrezno razširitvijo PHP omogočen in ustrezno nastavljen. Trenutno je šifriranje onemogočeno.",
"Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:",
"Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.",
"Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.",
diff --git a/apps/files_encryption/l10n/sl.json b/apps/files_encryption/l10n/sl.json
index 31c401df567..943fe8a96c1 100644
--- a/apps/files_encryption/l10n/sl.json
+++ b/apps/files_encryption/l10n/sl.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
"Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.",
"Missing requirements." : "Manjkajoče zahteve",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Preverite, ali je OpenSSL z ustrezno razširitvijo PHP omogočen in ustrezno nastavljen. Trenutno je šifriranje onemogočeno.",
"Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:",
"Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.",
"Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.",
diff --git a/apps/files_encryption/l10n/tr.js b/apps/files_encryption/l10n/tr.js
index 56787c176f8..43a05a696a6 100644
--- a/apps/files_encryption/l10n/tr.js
+++ b/apps/files_encryption/l10n/tr.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
"Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin",
"Missing requirements." : "Gereklilikler eksik.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL'nin PHP uzantısıyla birlikte etkin ve düzgün yapılandırılmış olduğundan emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.",
"Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:",
"Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.",
"Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.",
diff --git a/apps/files_encryption/l10n/tr.json b/apps/files_encryption/l10n/tr.json
index 92cd17c57b6..e78f8fb5203 100644
--- a/apps/files_encryption/l10n/tr.json
+++ b/apps/files_encryption/l10n/tr.json
@@ -22,6 +22,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
"Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin",
"Missing requirements." : "Gereklilikler eksik.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL'nin PHP uzantısıyla birlikte etkin ve düzgün yapılandırılmış olduğundan emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.",
"Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:",
"Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.",
"Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.",
diff --git a/apps/files_encryption/lib/capabilities.php b/apps/files_encryption/lib/capabilities.php
index ef94c9e086d..e6e4ee7d419 100644
--- a/apps/files_encryption/lib/capabilities.php
+++ b/apps/files_encryption/lib/capabilities.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
class Capabilities {
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index cf915ae27b2..38993ba65b0 100644
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -25,7 +25,7 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class for common cryptography functionality
@@ -133,7 +133,7 @@ class Crypt {
* Check if a file's contents contains an IV and is symmetrically encrypted
* @param string $content
* @return boolean
- * @note see also OCA\Encryption\Util->isEncryptedPath()
+ * @note see also \OCA\Files_Encryption\Util->isEncryptedPath()
*/
public static function isCatfileContent($content) {
@@ -190,7 +190,7 @@ class Crypt {
* @param string $passphrase
* @param string $cypher used for encryption, currently we support AES-128-CFB and AES-256-CFB
* @return string encrypted file content
- * @throws \OCA\Encryption\Exception\EncryptionException
+ * @throws \OCA\Files_Encryption\Exception\EncryptionException
*/
private static function encrypt($plainContent, $iv, $passphrase = '', $cipher = Crypt::DEFAULT_CIPHER) {
@@ -379,7 +379,7 @@ class Crypt {
* @param string $plainContent content to be encrypted
* @param array $publicKeys array keys must be the userId of corresponding user
* @return array keys: keys (array, key = userId), data
- * @throws \OCA\Encryption\Exception\MultiKeyEncryptException if encryption failed
+ * @throws \OCA\Files_Encryption\Exception\MultiKeyEncryptException if encryption failed
* @note symmetricDecryptFileContent() can decrypt files created using this method
*/
public static function multiKeyEncrypt($plainContent, array $publicKeys) {
@@ -425,7 +425,7 @@ class Crypt {
* @param string $encryptedContent
* @param string $shareKey
* @param mixed $privateKey
- * @throws \OCA\Encryption\Exception\MultiKeyDecryptException if decryption failed
+ * @throws \OCA\Files_Encryption\Exception\MultiKeyDecryptException if decryption failed
* @internal param string $plainContent contains decrypted content
* @return string $plainContent decrypted string
* @note symmetricDecryptFileContent() can be used to decrypt files created using this method
@@ -554,7 +554,7 @@ class Crypt {
* get chiper from header
*
* @param array $header
- * @throws \OCA\Encryption\Exception\EncryptionException
+ * @throws \OCA\Files_Encryption\Exception\EncryptionException
*/
public static function getCipher($header) {
$cipher = isset($header['cipher']) ? $header['cipher'] : 'AES-128-CFB';
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 34deb112798..6a8ea25d44e 100644
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -23,11 +23,11 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class to manage registration of hooks an various helper methods
- * @package OCA\Encryption
+ * @package OCA\Files_Encryption
*/
class Helper {
@@ -39,9 +39,9 @@ class Helper {
*/
public static function registerShareHooks() {
- \OCP\Util::connectHook('OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared');
- \OCP\Util::connectHook('OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared');
- \OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare');
+ \OCP\Util::connectHook('OCP\Share', 'pre_shared', 'OCA\Files_Encryption\Hooks', 'preShared');
+ \OCP\Util::connectHook('OCP\Share', 'post_shared', 'OCA\Files_Encryption\Hooks', 'postShared');
+ \OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OCA\Files_Encryption\Hooks', 'postUnshare');
}
/**
@@ -50,12 +50,12 @@ class Helper {
*/
public static function registerUserHooks() {
- \OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login');
- \OCP\Util::connectHook('OC_User', 'logout', 'OCA\Encryption\Hooks', 'logout');
- \OCP\Util::connectHook('OC_User', 'post_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase');
- \OCP\Util::connectHook('OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'preSetPassphrase');
- \OCP\Util::connectHook('OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser');
- \OCP\Util::connectHook('OC_User', 'post_deleteUser', 'OCA\Encryption\Hooks', 'postDeleteUser');
+ \OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Files_Encryption\Hooks', 'login');
+ \OCP\Util::connectHook('OC_User', 'logout', 'OCA\Files_Encryption\Hooks', 'logout');
+ \OCP\Util::connectHook('OC_User', 'post_setPassword', 'OCA\Files_Encryption\Hooks', 'setPassphrase');
+ \OCP\Util::connectHook('OC_User', 'pre_setPassword', 'OCA\Files_Encryption\Hooks', 'preSetPassphrase');
+ \OCP\Util::connectHook('OC_User', 'post_createUser', 'OCA\Files_Encryption\Hooks', 'postCreateUser');
+ \OCP\Util::connectHook('OC_User', 'post_deleteUser', 'OCA\Files_Encryption\Hooks', 'postDeleteUser');
}
/**
@@ -64,15 +64,15 @@ class Helper {
*/
public static function registerFilesystemHooks() {
- \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Encryption\Hooks', 'preRename');
- \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRenameOrCopy');
- \OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Encryption\Hooks', 'preCopy');
- \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Encryption\Hooks', 'postRenameOrCopy');
- \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Encryption\Hooks', 'postDelete');
- \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Encryption\Hooks', 'preDelete');
- \OCP\Util::connectHook('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', 'OCA\Encryption\Hooks', 'postPasswordReset');
- \OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Encryption\Hooks', 'postUnmount');
- \OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Encryption\Hooks', 'preUnmount');
+ \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Encryption\Hooks', 'preRename');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Encryption\Hooks', 'postRenameOrCopy');
+ \OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Files_Encryption\Hooks', 'preCopy');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Files_Encryption\Hooks', 'postRenameOrCopy');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Files_Encryption\Hooks', 'postDelete');
+ \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Encryption\Hooks', 'preDelete');
+ \OCP\Util::connectHook('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', 'OCA\Files_Encryption\Hooks', 'postPasswordReset');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Files_Encryption\Hooks', 'postUnmount');
+ \OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Files_Encryption\Hooks', 'preUnmount');
}
/**
@@ -81,8 +81,8 @@ class Helper {
*/
public static function registerAppHooks() {
- \OCP\Util::connectHook('OC_App', 'pre_disable', 'OCA\Encryption\Hooks', 'preDisable');
- \OCP\Util::connectHook('OC_App', 'post_disable', 'OCA\Encryption\Hooks', 'postEnable');
+ \OCP\Util::connectHook('OC_App', 'pre_disable', 'OCA\Files_Encryption\Hooks', 'preDisable');
+ \OCP\Util::connectHook('OC_App', 'post_disable', 'OCA\Files_Encryption\Hooks', 'postEnable');
}
/**
@@ -131,8 +131,6 @@ class Helper {
*
* @param string $recoveryKeyId
* @param string $recoveryPassword
- * @internal param \OCA\Encryption\Util $util
- * @internal param string $password
* @return bool
*/
public static function adminEnableRecovery($recoveryKeyId, $recoveryPassword) {
@@ -147,13 +145,13 @@ class Helper {
if (!Keymanager::recoveryKeyExists($view)) {
- $keypair = \OCA\Encryption\Crypt::createKeypair();
+ $keypair = Crypt::createKeypair();
// Save public key
Keymanager::setPublicKey($keypair['publicKey'], $recoveryKeyId);
- $cipher = \OCA\Encryption\Helper::getCipher();
- $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword, $cipher);
+ $cipher = Helper::getCipher();
+ $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword, $cipher);
if ($encryptedKey) {
Keymanager::setPrivateSystemKey($encryptedKey, $recoveryKeyId);
// Set recoveryAdmin as enabled
@@ -162,7 +160,7 @@ class Helper {
}
} else { // get recovery key and check the password
- $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser());
+ $util = new Util(new \OC\Files\View('/'), \OCP\User::getUser());
$return = $util->checkRecoveryPassword($recoveryPassword);
if ($return) {
$appConfig->setValue('files_encryption', 'recoveryAdminEnabled', 1);
@@ -362,14 +360,14 @@ class Helper {
if ($errorCode === null) {
$init = $session->getInitialized();
switch ($init) {
- case \OCA\Encryption\Session::INIT_EXECUTED:
- $errorCode = \OCA\Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR;
+ case Session::INIT_EXECUTED:
+ $errorCode = Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR;
break;
- case \OCA\Encryption\Session::NOT_INITIALIZED:
- $errorCode = \OCA\Encryption\Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR;
+ case Session::NOT_INITIALIZED:
+ $errorCode = Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR;
break;
default:
- $errorCode = \OCA\Encryption\Crypt::ENCRYPTION_UNKNOWN_ERROR;
+ $errorCode = Crypt::ENCRYPTION_UNKNOWN_ERROR;
}
}
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/lib/hooks.php
index a6b7555b376..bddfb7b2544 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/lib/hooks.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
use OC\Files\Filesystem;
@@ -59,7 +59,7 @@ class Hooks {
\OC_Util::setupFS($params['uid']);
}
- $privateKey = \OCA\Encryption\Keymanager::getPrivateKey($view, $params['uid']);
+ $privateKey = Keymanager::getPrivateKey($view, $params['uid']);
// if no private key exists, check server configuration
if (!$privateKey) {
@@ -128,7 +128,7 @@ class Hooks {
* remove keys from session during logout
*/
public static function logout() {
- $session = new \OCA\Encryption\Session(new \OC\Files\View());
+ $session = new Session(new \OC\Files\View());
$session->removeKeys();
}
@@ -182,7 +182,7 @@ class Hooks {
if (Crypt::mode() === 'server') {
$view = new \OC\Files\View('/');
- $session = new \OCA\Encryption\Session($view);
+ $session = new Session($view);
// Get existing decrypted private key
$privateKey = $session->getPrivateKey();
@@ -236,7 +236,7 @@ class Hooks {
Keymanager::setPublicKey($keypair['publicKey'], $user);
// Encrypt private key with new password
- $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher());
+ $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher());
if ($encryptedKey) {
Keymanager::setPrivateKey($encryptedKey, $user);
@@ -331,7 +331,7 @@ class Hooks {
private static function updateKeyfiles($path) {
$view = new \OC\Files\View('/');
$userId = \OCP\User::getUser();
- $session = new \OCA\Encryption\Session($view);
+ $session = new Session($view);
$util = new Util($view, $userId);
$sharingEnabled = \OCP\Share::isEnabled();
@@ -502,10 +502,10 @@ class Hooks {
public static function preDisable($params) {
if ($params['app'] === 'files_encryption') {
- \OC_Preferences::deleteAppFromAllUsers('files_encryption');
+ \OC::$server->getConfig()->deleteAppFromAllUsers('files_encryption');
- $session = new \OCA\Encryption\Session(new \OC\Files\View('/'));
- $session->setInitialized(\OCA\Encryption\Session::NOT_INITIALIZED);
+ $session = new Session(new \OC\Files\View('/'));
+ $session->setInitialized(Session::NOT_INITIALIZED);
}
}
@@ -515,8 +515,8 @@ class Hooks {
*/
public static function postEnable($params) {
if ($params['app'] === 'files_encryption') {
- $session = new \OCA\Encryption\Session(new \OC\Files\View('/'));
- $session->setInitialized(\OCA\Encryption\Session::NOT_INITIALIZED);
+ $session = new Session(new \OC\Files\View('/'));
+ $session->setInitialized(Session::NOT_INITIALIZED);
}
}
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index c8de1a73d27..dfde3684798 100644
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -22,7 +22,7 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class to manage storage and retrieval of encryption keys
@@ -141,7 +141,7 @@ class Keymanager {
* store file encryption key
*
* @param \OC\Files\View $view
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $path relative path of the file, including filename
* @param string $catfile keyfile content
* @return bool true/false
@@ -158,7 +158,7 @@ class Keymanager {
* get path to key folder for a given file
*
* @param \OC\Files\View $view relative to data directory
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $path path to the file, relative to the users file directory
* @return string
*/
@@ -186,7 +186,7 @@ class Keymanager {
* get path to file key for a given file
*
* @param \OC\Files\View $view relative to data directory
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $path path to the file, relative to the users file directory
* @return string
*/
@@ -199,7 +199,7 @@ class Keymanager {
* get path to share key for a given user
*
* @param \OC\Files\View $view relateive to data directory
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $path path to file relative to the users files directoy
* @param string $uid user for whom we want the share-key path
* @retrun string
@@ -243,9 +243,8 @@ class Keymanager {
/**
* retrieve keyfile for an encrypted file
* @param \OC\Files\View $view
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string|false $filePath
- * @internal param \OCA\Encryption\file $string name
* @return string file key or false
* @note The keyfile returned is asymmetrically encrypted. Decryption
* of the keyfile must be performed by client code
@@ -347,7 +346,7 @@ class Keymanager {
/**
* store multiple share keys for a single file
* @param \OC\Files\View $view
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $path
* @param array $shareKeys
* @return bool
@@ -376,7 +375,7 @@ class Keymanager {
* retrieve shareKey for an encrypted file
* @param \OC\Files\View $view
* @param string $userId
- * @param \OCA\Encryption\Util $util
+ * @param \OCA\Files_Encryption\Util $util
* @param string $filePath
* @return string file key or false
* @note The sharekey returned is encrypted. Decryption
diff --git a/apps/files_encryption/lib/migration.php b/apps/files_encryption/lib/migration.php
index ee2e52114cf..1bab1dfe4a5 100644
--- a/apps/files_encryption/lib/migration.php
+++ b/apps/files_encryption/lib/migration.php
@@ -35,8 +35,8 @@ class Migration {
public function __construct() {
$this->view = new \OC\Files\View();
- $this->public_share_key_id = \OCA\Encryption\Helper::getPublicShareKeyId();
- $this->recovery_key_id = \OCA\Encryption\Helper::getRecoveryKeyId();
+ $this->public_share_key_id = Helper::getPublicShareKeyId();
+ $this->recovery_key_id = Helper::getRecoveryKeyId();
}
public function reorganizeFolderStructure() {
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 0e8ca7319f0..ba78c81aa35 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -30,11 +30,11 @@
* webui.
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class Proxy
- * @package OCA\Encryption
+ * @package OCA\Files_Encryption
*/
class Proxy extends \OC_FileProxy {
@@ -130,7 +130,7 @@ class Proxy extends \OC_FileProxy {
$view = new \OC\Files\View('/');
// get relative path
- $relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
+ $relativePath = Helper::stripUserFilesPath($path);
if (!isset($relativePath)) {
return true;
@@ -338,7 +338,7 @@ class Proxy extends \OC_FileProxy {
}
// get relative path
- $relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
+ $relativePath = Helper::stripUserFilesPath($path);
// if path is empty we cannot resolve anything
if (empty($relativePath)) {
diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php
index 7f1e0664cdc..4c70bc7e8fc 100644
--- a/apps/files_encryption/lib/session.php
+++ b/apps/files_encryption/lib/session.php
@@ -22,7 +22,7 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class for handling encryption related session data
@@ -72,8 +72,8 @@ class Session {
Keymanager::setPublicKey($keypair['publicKey'], $publicShareKeyId);
// Encrypt private key empty passphrase
- $cipher = \OCA\Encryption\Helper::getCipher();
- $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], '', $cipher);
+ $cipher = Helper::getCipher();
+ $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], '', $cipher);
if ($encryptedKey) {
Keymanager::setPrivateSystemKey($encryptedKey, $publicShareKeyId);
} else {
@@ -82,7 +82,7 @@ class Session {
}
- if (\OCA\Encryption\Helper::isPublicAccess() && !self::getPublicSharePrivateKey()) {
+ if (Helper::isPublicAccess() && !self::getPublicSharePrivateKey()) {
// Disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
@@ -151,7 +151,7 @@ class Session {
public function getInitialized() {
if (!is_null(\OC::$server->getSession()->get('encryptionInitialized'))) {
return \OC::$server->getSession()->get('encryptionInitialized');
- } else if (\OCA\Encryption\Helper::isPublicAccess() && self::getPublicSharePrivateKey()) {
+ } else if (Helper::isPublicAccess() && self::getPublicSharePrivateKey()) {
return self::INIT_SUCCESSFUL;
} else {
return self::NOT_INITIALIZED;
@@ -165,7 +165,7 @@ class Session {
*/
public function getPrivateKey() {
// return the public share private key if this is a public access
- if (\OCA\Encryption\Helper::isPublicAccess()) {
+ if (Helper::isPublicAccess()) {
return self::getPublicSharePrivateKey();
} else {
if (!is_null(\OC::$server->getSession()->get('privateKey'))) {
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 4038e641343..17da4eb1cdc 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -30,8 +30,9 @@
* and then fopen('crypt://streams/foo');
*/
-namespace OCA\Encryption;
-use OCA\Encryption\Exception\EncryptionException;
+namespace OCA\Files_Encryption;
+
+use OCA\Files_Encryption\Exception\EncryptionException;
/**
* Provides 'crypt://' stream wrapper protocol.
@@ -81,7 +82,7 @@ class Stream {
private $rootView; // a fsview object set to '/'
/**
- * @var \OCA\Encryption\Session
+ * @var \OCA\Files_Encryption\Session
*/
private $session;
private $privateKey;
@@ -92,7 +93,7 @@ class Stream {
* @param int $options
* @param string $opened_path
* @return bool
- * @throw \OCA\Encryption\Exception\EncryptionException
+ * @throw \OCA\Files_Encryption\Exception\EncryptionException
*/
public function stream_open($path, $mode, $options, &$opened_path) {
@@ -106,7 +107,7 @@ class Stream {
$this->rootView = new \OC\Files\View('/');
}
- $this->session = new \OCA\Encryption\Session($this->rootView);
+ $this->session = new Session($this->rootView);
$this->privateKey = $this->session->getPrivateKey();
if ($this->privateKey === false) {
@@ -162,7 +163,7 @@ class Stream {
if($this->privateKey === false) {
// if private key is not valid redirect user to a error page
- \OCA\Encryption\Helper::redirectToErrorPage($this->session);
+ Helper::redirectToErrorPage($this->session);
}
$this->size = $this->rootView->filesize($this->rawPath);
@@ -251,7 +252,7 @@ class Stream {
/**
* @param int $count
* @return bool|string
- * @throws \OCA\Encryption\Exception\EncryptionException
+ * @throws \OCA\Files_Encryption\Exception\EncryptionException
*/
public function stream_read($count) {
@@ -329,7 +330,7 @@ class Stream {
// Fetch and decrypt keyfile
// Fetch existing keyfile
- $util = new \OCA\Encryption\Util($this->rootView, $this->userId);
+ $util = new Util($this->rootView, $this->userId);
$this->encKeyfile = Keymanager::getFileKey($this->rootView, $util, $this->relPath);
// If a keyfile already exists
@@ -340,13 +341,13 @@ class Stream {
// if there is no valid private key return false
if ($this->privateKey === false) {
// if private key is not valid redirect user to a error page
- \OCA\Encryption\Helper::redirectToErrorPage($this->session);
+ Helper::redirectToErrorPage($this->session);
return false;
}
if ($shareKey === false) {
// if no share key is available redirect user to a error page
- \OCA\Encryption\Helper::redirectToErrorPage($this->session, \OCA\Encryption\Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND);
+ Helper::redirectToErrorPage($this->session, Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND);
return false;
}
@@ -367,7 +368,7 @@ class Stream {
/**
* write header at beginning of encrypted file
*
- * @throws Exception\EncryptionException
+ * @throws \OCA\Files_Encryption\Exception\EncryptionException
*/
private function writeHeader() {
@@ -589,7 +590,7 @@ class Stream {
}
// if private key is not valid redirect user to a error page
- \OCA\Encryption\Helper::redirectToErrorPage($this->session);
+ Helper::redirectToErrorPage($this->session);
}
if (
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 42a7e20c87f..ad6948b95a6 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\Encryption;
+namespace OCA\Files_Encryption;
/**
* Class for utilities relating to encrypted file storage system
@@ -83,7 +83,7 @@ class Util {
// make sure that the owners home is mounted
\OC\Files\Filesystem::initMountPoints($userId);
- if (\OCA\Encryption\Helper::isPublicAccess()) {
+ if (Helper::isPublicAccess()) {
$this->keyId = $this->publicShareKeyId;
$this->isPublic = true;
} else {
@@ -225,7 +225,7 @@ class Util {
*/
public function recoveryEnabledForUser() {
- $recoveryMode = \OC_Preferences::getValue($this->userId, 'files_encryption', 'recovery_enabled', '0');
+ $recoveryMode = \OC::$server->getConfig()->getUserValue($this->userId, 'files_encryption', 'recovery_enabled', '0');
return ($recoveryMode === '1') ? true : false;
@@ -239,7 +239,12 @@ class Util {
public function setRecoveryForUser($enabled) {
$value = $enabled ? '1' : '0';
- return \OC_Preferences::setValue($this->userId, 'files_encryption', 'recovery_enabled', $value);
+ try {
+ \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'recovery_enabled', $value);
+ return true;
+ } catch(\OCP\PreConditionNotMetException $e) {
+ return false;
+ }
}
@@ -272,7 +277,7 @@ class Util {
if ($file !== "." && $file !== "..") {
$filePath = $directory . '/' . $this->view->getRelativePath('/' . $file);
- $relPath = \OCA\Encryption\Helper::stripUserFilesPath($filePath);
+ $relPath = Helper::stripUserFilesPath($filePath);
// If the path is a directory, search
// its contents
@@ -446,13 +451,13 @@ class Util {
}
}
fclose($stream);
- $relPath = \OCA\Encryption\Helper::stripUserFilesPath($path);
+ $relPath = Helper::stripUserFilesPath($path);
$shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $relPath);
if($shareKey===false) {
\OC_FileProxy::$enabled = $proxyStatus;
return $result;
}
- $session = new \OCA\Encryption\Session($this->view);
+ $session = new Session($this->view);
$privateKey = $session->getPrivateKey();
$plainKeyfile = $this->decryptKeyfile($relPath, $privateKey);
$plainKey = Crypt::multiKeyDecrypt($plainKeyfile, $shareKey, $privateKey);
@@ -1035,7 +1040,7 @@ class Util {
// Make sure that a share key is generated for the owner too
list($owner, $ownerPath) = $this->getUidAndFilename($filePath);
- $ownerPath = \OCA\Encryption\Helper::stripPartialFileExtension($ownerPath);
+ $ownerPath = Helper::stripPartialFileExtension($ownerPath);
// always add owner to the list of users with access to the file
$userIds = array($owner);
@@ -1102,7 +1107,12 @@ class Util {
// convert to string if preCondition is set
$preCondition = ($preCondition === null) ? null : (string)$preCondition;
- return \OC_Preferences::setValue($this->userId, 'files_encryption', 'migration_status', (string)$status, $preCondition);
+ try {
+ \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'migration_status', (string)$status, $preCondition);
+ return true;
+ } catch(\OCP\PreConditionNotMetException $e) {
+ return false;
+ }
}
@@ -1154,9 +1164,9 @@ class Util {
$migrationStatus = false;
if (\OCP\User::userExists($this->userId)) {
- $migrationStatus = \OC_Preferences::getValue($this->userId, 'files_encryption', 'migration_status');
+ $migrationStatus = \OC::$server->getConfig()->getUserValue($this->userId, 'files_encryption', 'migration_status', null);
if ($migrationStatus === null) {
- \OC_Preferences::setValue($this->userId, 'files_encryption', 'migration_status', (string)self::MIGRATION_OPEN);
+ \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'migration_status', (string)self::MIGRATION_OPEN);
$migrationStatus = self::MIGRATION_OPEN;
}
}
@@ -1392,7 +1402,7 @@ class Util {
if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) {
$this->addRecoveryKeys($filePath . '/');
} else {
- $session = new \OCA\Encryption\Session(new \OC\Files\View('/'));
+ $session = new Session(new \OC\Files\View('/'));
$sharingEnabled = \OCP\Share::isEnabled();
$usersSharing = $this->getSharingUsersArray($sharingEnabled, $filePath);
$this->setSharedFileKeyfiles($session, $usersSharing, $filePath);
@@ -1549,10 +1559,10 @@ class Util {
*/
public function initEncryption($params) {
- $session = new \OCA\Encryption\Session($this->view);
+ $session = new Session($this->view);
// we tried to initialize the encryption app for this session
- $session->setInitialized(\OCA\Encryption\Session::INIT_EXECUTED);
+ $session->setInitialized(Session::INIT_EXECUTED);
$encryptedKey = Keymanager::getPrivateKey($this->view, $params['uid']);
@@ -1568,7 +1578,7 @@ class Util {
}
$session->setPrivateKey($privateKey);
- $session->setInitialized(\OCA\Encryption\Session::INIT_SUCCESSFUL);
+ $session->setInitialized(Session::INIT_SUCCESSFUL);
return $session;
}
@@ -1577,7 +1587,7 @@ class Util {
* remove encryption related keys from the session
*/
public function closeEncryptionSession() {
- $session = new \OCA\Encryption\Session($this->view);
+ $session = new Session($this->view);
$session->closeSession();
}
diff --git a/apps/files_encryption/settings-admin.php b/apps/files_encryption/settings-admin.php
index 496a7cffb50..0f5d56a3734 100644
--- a/apps/files_encryption/settings-admin.php
+++ b/apps/files_encryption/settings-admin.php
@@ -12,7 +12,7 @@ $tmpl = new OCP\Template('files_encryption', 'settings-admin');
// Check if an adminRecovery account is enabled for recovering files after lost pwd
$recoveryAdminEnabled = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled', '0');
-$session = new \OCA\Encryption\Session(new \OC\Files\View('/'));
+$session = new \OCA\Files_Encryption\Session(new \OC\Files\View('/'));
$initStatus = $session->getInitialized();
$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled);
diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php
index e9875518f67..834bac611ad 100644
--- a/apps/files_encryption/settings-personal.php
+++ b/apps/files_encryption/settings-personal.php
@@ -13,8 +13,8 @@ $tmpl = new OCP\Template('files_encryption', 'settings-personal');
$user = \OCP\USER::getUser();
$view = new \OC\Files\View('/');
-$util = new \OCA\Encryption\Util($view, $user);
-$session = new \OCA\Encryption\Session($view);
+$util = new \OCA\Files_Encryption\Util($view, $user);
+$session = new \OCA\Files_Encryption\Session($view);
$privateKeySet = $session->getPrivateKey() !== false;
// did we tried to initialize the keys for this session?
@@ -28,7 +28,6 @@ $result = false;
if ($recoveryAdminEnabled || !$privateKeySet) {
\OCP\Util::addscript('files_encryption', 'settings-personal');
- \OCP\Util::addScript('settings', 'personal');
$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled);
$tmpl->assign('recoveryEnabledForUser', $recoveryEnabledForUser);
diff --git a/apps/files_encryption/templates/invalid_private_key.php b/apps/files_encryption/templates/invalid_private_key.php
index b275b9c428c..b148e65b199 100644
--- a/apps/files_encryption/templates/invalid_private_key.php
+++ b/apps/files_encryption/templates/invalid_private_key.php
@@ -4,7 +4,7 @@
<?php p($_['message']); ?>
<br/>
- <?php if($_['errorCode'] === \OCA\Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR): ?>
+ <?php if($_['errorCode'] === \OCA\Files_Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR): ?>
<?php p($l->t('Go directly to your %spersonal settings%s.', array('<a href="'.$location.'">', '</a>'))); ?>
<?php endif; ?>
<br/>
diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php
index d003f245bb3..4c1d724b6dd 100644
--- a/apps/files_encryption/templates/settings-admin.php
+++ b/apps/files_encryption/templates/settings-admin.php
@@ -1,7 +1,7 @@
<form id="encryption" class="section">
<h2><?php p($l->t('Encryption')); ?></h2>
- <?php if($_["initStatus"] === \OCA\Encryption\Session::NOT_INITIALIZED): ?>
+ <?php if($_["initStatus"] === \OCA\Files_Encryption\Session::NOT_INITIALIZED): ?>
<?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?>
<?php else: ?>
<p id="encryptionSetRecoveryKey">
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index ce8cf6aec28..17123a154d9 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -1,11 +1,11 @@
<form id="encryption" class="section">
<h2><?php p( $l->t( 'Encryption' ) ); ?></h2>
- <?php if ( $_["initialized"] === \OCA\Encryption\Session::NOT_INITIALIZED ): ?>
+ <?php if ( $_["initialized"] === \OCA\Files_Encryption\Session::NOT_INITIALIZED ): ?>
<?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?>
- <?php elseif ( $_["initialized"] === \OCA\Encryption\Session::INIT_EXECUTED ): ?>
+ <?php elseif ( $_["initialized"] === \OCA\Files_Encryption\Session::INIT_EXECUTED ): ?>
<p>
<a name="changePKPasswd" />
<label for="changePrivateKeyPasswd">
@@ -37,7 +37,7 @@
<span class="msg"></span>
</p>
- <?php elseif ( $_["recoveryEnabled"] && $_["privateKeySet"] && $_["initialized"] === \OCA\Encryption\Session::INIT_SUCCESSFUL ): ?>
+ <?php elseif ( $_["recoveryEnabled"] && $_["privateKeySet"] && $_["initialized"] === \OCA\Files_Encryption\Session::INIT_SUCCESSFUL ): ?>
<br />
<p id="userEnableRecovery">
<label for="userEnableRecovery"><?php p( $l->t( "Enable password recovery:" ) ); ?></label>
diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index ab2ce066cdb..451fa62fe57 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -7,12 +7,12 @@
* See the COPYING-README file.
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Crypt
+ * Class Crypt
*/
-class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
+class Crypt extends TestCase {
const TEST_ENCRYPTION_CRYPT_USER1 = "test-crypt-user1";
@@ -23,7 +23,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
public $dataUrl;
public $dataShort;
/**
- * @var OC\Files\View
+ * @var \OC\Files\View
*/
public $view;
public $legacyEncryptedData;
@@ -34,16 +34,16 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
parent::setUpBeforeClass();
// create test user
- self::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_CRYPT_USER1, true);
}
protected function setUp() {
parent::setUp();
// set user id
- self::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1);
- $this->userId = \Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1;
- $this->pass = \Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1;
+ self::loginHelper(self::TEST_ENCRYPTION_CRYPT_USER1);
+ $this->userId = self::TEST_ENCRYPTION_CRYPT_USER1;
+ $this->pass = self::TEST_ENCRYPTION_CRYPT_USER1;
// set content for encrypting / decrypting in tests
$this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php');
@@ -52,16 +52,16 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
$this->legacyData = __DIR__ . '/legacy-text.txt';
$this->legacyEncryptedData = __DIR__ . '/legacy-encrypted-text.txt';
$this->legacyEncryptedDataKey = __DIR__ . '/encryption.key';
- $this->randomKey = Encryption\Crypt::generateKey();
+ $this->randomKey = \OCA\Files_Encryption\Crypt::generateKey();
- $keypair = Encryption\Crypt::createKeypair();
+ $keypair = \OCA\Files_Encryption\Crypt::createKeypair();
$this->genPublicKey = $keypair['publicKey'];
$this->genPrivateKey = $keypair['privateKey'];
$this->view = new \OC\Files\View('/');
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
@@ -70,9 +70,9 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
} else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
$this->assertTrue(\OC_FileProxy::$enabled);
@@ -83,7 +83,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_CRYPT_USER1);
parent::tearDownAfterClass();
}
@@ -95,7 +95,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
# TODO: use more accurate (larger) string length for test confirmation
- $key = Encryption\Crypt::generateKey();
+ $key = \OCA\Files_Encryption\Crypt::generateKey();
$this->assertTrue(strlen($key) > 16);
@@ -104,16 +104,16 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
public function testDecryptPrivateKey() {
// test successful decrypt
- $crypted = Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat');
+ $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat');
- $header = Encryption\Crypt::generateHeader();
+ $header = \OCA\Files_Encryption\Crypt::generateHeader();
- $decrypted = Encryption\Crypt::decryptPrivateKey($header . $crypted, 'hat');
+ $decrypted = \OCA\Files_Encryption\Crypt::decryptPrivateKey($header . $crypted, 'hat');
$this->assertEquals($this->genPrivateKey, $decrypted);
//test private key decrypt with wrong password
- $wrongPasswd = Encryption\Crypt::decryptPrivateKey($crypted, 'hat2');
+ $wrongPasswd = \OCA\Files_Encryption\Crypt::decryptPrivateKey($crypted, 'hat2');
$this->assertEquals(false, $wrongPasswd);
@@ -127,12 +127,12 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
- $crypted = Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat');
+ $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat');
$this->assertNotEquals($this->dataShort, $crypted);
- $decrypt = Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat');
+ $decrypt = \OCA\Files_Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat');
$this->assertEquals($this->dataShort, $decrypt);
@@ -145,12 +145,12 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
- $crypted = Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat', 'AES-128-CFB');
+ $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat', 'AES-128-CFB');
$this->assertNotEquals($this->dataShort, $crypted);
- $decrypt = Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat', 'AES-128-CFB');
+ $decrypt = \OCA\Files_Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat', 'AES-128-CFB');
$this->assertEquals($this->dataShort, $decrypt);
@@ -348,7 +348,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
// remove the header to check if we can also decrypt old files without a header,
// this files should fall back to AES-128
- $cryptedWithoutHeader = substr($retreivedCryptedFile, Encryption\Crypt::BLOCKSIZE);
+ $cryptedWithoutHeader = substr($retreivedCryptedFile, \OCA\Files_Encryption\Crypt::BLOCKSIZE);
$this->view->file_put_contents($this->userId . '/files/' . $filename, $cryptedWithoutHeader);
// Re-enable proxy - our work is done
@@ -367,13 +367,13 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
*/
public function testIsEncryptedContent() {
- $this->assertFalse(Encryption\Crypt::isCatfileContent($this->dataUrl));
+ $this->assertFalse(\OCA\Files_Encryption\Crypt::isCatfileContent($this->dataUrl));
- $this->assertFalse(Encryption\Crypt::isCatfileContent($this->legacyEncryptedData));
+ $this->assertFalse(\OCA\Files_Encryption\Crypt::isCatfileContent($this->legacyEncryptedData));
- $keyfileContent = Encryption\Crypt::symmetricEncryptFileContent($this->dataUrl, 'hat', 'AES-128-CFB');
+ $keyfileContent = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataUrl, 'hat', 'AES-128-CFB');
- $this->assertTrue(Encryption\Crypt::isCatfileContent($keyfileContent));
+ $this->assertTrue(\OCA\Files_Encryption\Crypt::isCatfileContent($keyfileContent));
}
@@ -384,7 +384,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
- $pair1 = Encryption\Crypt::createKeypair();
+ $pair1 = \OCA\Files_Encryption\Crypt::createKeypair();
$this->assertEquals(2, count($pair1));
@@ -393,12 +393,12 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertTrue(strlen($pair1['privateKey']) > 1);
- $crypted = Encryption\Crypt::multiKeyEncrypt($this->dataShort, array($pair1['publicKey']));
+ $crypted = \OCA\Files_Encryption\Crypt::multiKeyEncrypt($this->dataShort, array($pair1['publicKey']));
$this->assertNotEquals($this->dataShort, $crypted['data']);
- $decrypt = Encryption\Crypt::multiKeyDecrypt($crypted['data'], $crypted['keys'][0], $pair1['privateKey']);
+ $decrypt = \OCA\Files_Encryption\Crypt::multiKeyDecrypt($crypted['data'], $crypted['keys'][0], $pair1['privateKey']);
$this->assertEquals($this->dataShort, $decrypt);
@@ -529,7 +529,7 @@ class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase {
// relogin
$params['uid'] = $this->userId;
$params['password'] = 'test';
- OCA\Encryption\Hooks::login($params);
+ \OCA\Files_Encryption\Hooks::login($params);
// Get file decrypted contents
$newDecrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $filename);
diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php
index 88ba9f20d53..bf86860125a 100644
--- a/apps/files_encryption/tests/helper.php
+++ b/apps/files_encryption/tests/helper.php
@@ -6,35 +6,35 @@
* See the COPYING-README file.
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Helper
+ * Class Helper
*/
-class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase {
+class Helper extends TestCase {
const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1";
const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2";
protected function setUpUsers() {
// create test user
- self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true);
- self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER2, true);
+ self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1, true);
}
protected function cleanUpUsers() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1);
- \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER2);
}
public static function setupHooks() {
// Filesystem related hooks
- \OCA\Encryption\Helper::registerFilesystemHooks();
+ \OCA\Files_Encryption\Helper::registerFilesystemHooks();
// clear and register hooks
\OC_FileProxy::clearProxies();
- \OC_FileProxy::register(new OCA\Encryption\Proxy());
+ \OC_FileProxy::register(new \OCA\Files_Encryption\Proxy());
}
public static function tearDownAfterClass() {
@@ -49,13 +49,13 @@ class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase {
$partFilename = 'testfile.txt.part';
$filename = 'testfile.txt';
- $this->assertTrue(Encryption\Helper::isPartialFilePath($partFilename));
+ $this->assertTrue(\OCA\Files_Encryption\Helper::isPartialFilePath($partFilename));
- $this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($partFilename));
+ $this->assertEquals('testfile.txt', \OCA\Files_Encryption\Helper::stripPartialFileExtension($partFilename));
- $this->assertFalse(Encryption\Helper::isPartialFilePath($filename));
+ $this->assertFalse(\OCA\Files_Encryption\Helper::isPartialFilePath($filename));
- $this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($filename));
+ $this->assertEquals('testfile.txt', \OCA\Files_Encryption\Helper::stripPartialFileExtension($filename));
}
@@ -67,13 +67,13 @@ class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase {
$partFilename = 'testfile.txt.ocTransferId643653835.part';
$filename = 'testfile.txt';
- $this->assertTrue(Encryption\Helper::isPartialFilePath($partFilename));
+ $this->assertTrue(\OCA\Files_Encryption\Helper::isPartialFilePath($partFilename));
- $this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($partFilename));
+ $this->assertEquals('testfile.txt', \OCA\Files_Encryption\Helper::stripPartialFileExtension($partFilename));
- $this->assertFalse(Encryption\Helper::isPartialFilePath($filename));
+ $this->assertFalse(\OCA\Files_Encryption\Helper::isPartialFilePath($filename));
- $this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($filename));
+ $this->assertEquals('testfile.txt', \OCA\Files_Encryption\Helper::stripPartialFileExtension($filename));
}
function testGetPathToRealFile() {
@@ -85,8 +85,8 @@ class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase {
$versionPath = "/user/files_versions/foo/bar/test.txt.v456756835";
$cachePath = "/user/cache/transferid636483/foo/bar/test.txt";
- $this->assertEquals($relativePath, Encryption\Helper::getPathToRealFile($versionPath));
- $this->assertEquals($relativePath, Encryption\Helper::getPathToRealFile($cachePath));
+ $this->assertEquals($relativePath, \OCA\Files_Encryption\Helper::getPathToRealFile($versionPath));
+ $this->assertEquals($relativePath, \OCA\Files_Encryption\Helper::getPathToRealFile($cachePath));
}
function testGetUser() {
@@ -100,20 +100,20 @@ class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase {
self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1);
// if we are logged-in every path should return the currently logged-in user
- $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path3));
+ $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, \OCA\Files_Encryption\Helper::getUser($path3));
// now log out
self::logoutHelper();
// now we should only get the user from /user/files and user/cache paths
- $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path1));
- $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path2));
+ $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, \OCA\Files_Encryption\Helper::getUser($path1));
+ $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, \OCA\Files_Encryption\Helper::getUser($path2));
- $this->assertFalse(Encryption\Helper::getUser($path3));
- $this->assertFalse(Encryption\Helper::getUser($path4));
+ $this->assertFalse(\OCA\Files_Encryption\Helper::getUser($path3));
+ $this->assertFalse(\OCA\Files_Encryption\Helper::getUser($path4));
// Log-in again
- self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1);
self::cleanUpUsers();
}
diff --git a/apps/files_encryption/tests/hooks.php b/apps/files_encryption/tests/hooks.php
index d5a30f5074a..7c60024d637 100644
--- a/apps/files_encryption/tests/hooks.php
+++ b/apps/files_encryption/tests/hooks.php
@@ -20,13 +20,13 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Hooks
+ * Class Hooks
* this class provide basic hook app tests
*/
-class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
+class Hooks extends TestCase {
const TEST_ENCRYPTION_HOOKS_USER1 = "test-encryption-hooks-user1.dot";
const TEST_ENCRYPTION_HOOKS_USER2 = "test-encryption-hooks-user2.dot";
@@ -64,20 +64,20 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
);
// create test user
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1, true);
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2, true);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2, true);
}
protected function setUp() {
parent::setUp();
// set user id
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
- \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1);
+ \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1);
// init filesystem view
- $this->user1View = new \OC\Files\View('/'. \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '/files');
- $this->user2View = new \OC\Files\View('/'. \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '/files');
+ $this->user1View = new \OC\Files\View('/'. self::TEST_ENCRYPTION_HOOKS_USER1 . '/files');
+ $this->user2View = new \OC\Files\View('/'. self::TEST_ENCRYPTION_HOOKS_USER2 . '/files');
$this->rootView = new \OC\Files\View('/');
// init short data
@@ -89,8 +89,8 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
- \OC_User::deleteUser(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_HOOKS_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_HOOKS_USER2);
parent::tearDownAfterClass();
}
@@ -104,7 +104,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertTrue(is_array($row));
// disabling the app should delete all user specific settings
- \OCA\Encryption\Hooks::preDisable(array('app' => 'files_encryption'));
+ \OCA\Files_Encryption\Hooks::preDisable(array('app' => 'files_encryption'));
// check if user specific settings for the encryption app are really gone
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*preferences` WHERE `appid` = ?');
@@ -121,7 +121,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
function testDeleteHooks() {
// remember files_trashbin state
- $stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we want to tests with app files_trashbin disabled
\OC_App::disable('files_trashbin');
@@ -134,14 +134,14 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// check if all keys are generated
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
self::logoutHelper();
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
- \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2);
+ \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER2);
$this->user2View->file_put_contents($this->filename, $this->data);
@@ -149,7 +149,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// check if all keys are generated
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
@@ -164,7 +164,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// all keys should still exist
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
@@ -176,33 +176,33 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// check if keys from user2 are really deleted
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
// but user1 keys should still exist
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
if ($stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
}
function testDeleteHooksForSharedFiles() {
self::logoutHelper();
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
- \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1);
+ \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1);
// remember files_trashbin state
- $stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we want to tests with app files_trashbin disabled
\OC_App::disable('files_trashbin');
@@ -215,7 +215,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// check if all keys are generated
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
@@ -231,11 +231,11 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// check if new share key exists
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
self::logoutHelper();
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
- \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2);
+ \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER2);
// user2 update the shared file
$this->user2View->file_put_contents($this->filename, $this->data);
@@ -243,7 +243,7 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// keys should be stored at user1s dir, not in user2s
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
@@ -255,24 +255,24 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
// share key for user2 from user1s home should be gone, all other keys should still exists
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey'));
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey'));
// cleanup
self::logoutHelper();
- self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
- \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1);
+ \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1);
if ($stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
}
@@ -407,35 +407,35 @@ class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase {
$view = new \OC\Files\View();
// set user password for the first time
- \OCA\Encryption\Hooks::postCreateUser(array('uid' => 'newUser', 'password' => 'newUserPassword'));
+ \OCA\Files_Encryption\Hooks::postCreateUser(array('uid' => 'newUser', 'password' => 'newUserPassword'));
- $this->assertTrue($view->file_exists(\OCA\Encryption\Keymanager::getPublicKeyPath() . '/newUser.publicKey'));
+ $this->assertTrue($view->file_exists(\OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/newUser.publicKey'));
$this->assertTrue($view->file_exists('newUser/files_encryption/newUser.privateKey'));
// check if we are able to decrypt the private key
- $encryptedKey = \OCA\Encryption\Keymanager::getPrivateKey($view, 'newUser');
- $privateKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, 'newUserPassword');
+ $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser');
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'newUserPassword');
$this->assertTrue(is_string($privateKey));
// change the password before the user logged-in for the first time,
// we can replace the encryption keys
- \OCA\Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged'));
+ \OCA\Files_Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged'));
- $encryptedKey = \OCA\Encryption\Keymanager::getPrivateKey($view, 'newUser');
- $privateKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged');
+ $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser');
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged');
$this->assertTrue(is_string($privateKey));
// now create a files folder to simulate a already used account
$view->mkdir('/newUser/files');
// change the password after the user logged in, now the password should not change
- \OCA\Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged2'));
+ \OCA\Files_Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged2'));
- $encryptedKey = \OCA\Encryption\Keymanager::getPrivateKey($view, 'newUser');
- $privateKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged2');
+ $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser');
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged2');
$this->assertFalse($privateKey);
- $privateKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged');
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged');
$this->assertTrue(is_string($privateKey));
}
diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php
index 21f03839430..82df9350d4b 100644
--- a/apps/files_encryption/tests/keymanager.php
+++ b/apps/files_encryption/tests/keymanager.php
@@ -6,12 +6,12 @@
* See the COPYING-README file.
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Keymanager
+ * Class Keymanager
*/
-class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
+class Keymanager extends TestCase {
const TEST_USER = "test-keymanager-user.dot";
@@ -19,7 +19,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
public $pass;
public static $stateFilesTrashbin;
/**
- * @var OC\Files\View
+ * @var \OC\Files\View
*/
public $view;
public $randomKey;
@@ -32,14 +32,14 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = false;
// remember files_trashbin state
- self::$stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ self::$stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
// create test user
- \OC_User::deleteUser(\Test_Encryption_Keymanager::TEST_USER);
- parent::loginHelper(\Test_Encryption_Keymanager::TEST_USER, true);
+ \OC_User::deleteUser(self::TEST_USER);
+ parent::loginHelper(self::TEST_USER, true);
}
protected function setUp() {
@@ -50,24 +50,24 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$this->dataUrl = __DIR__ . '/../lib/crypt.php';
$this->legacyData = __DIR__ . '/legacy-text.txt';
$this->legacyEncryptedData = __DIR__ . '/legacy-encrypted-text.txt';
- $this->randomKey = Encryption\Crypt::generateKey();
+ $this->randomKey = \OCA\Files_Encryption\Crypt::generateKey();
- $keypair = Encryption\Crypt::createKeypair();
+ $keypair = \OCA\Files_Encryption\Crypt::createKeypair();
$this->genPublicKey = $keypair['publicKey'];
$this->genPrivateKey = $keypair['privateKey'];
$this->view = new \OC\Files\View('/');
- self::loginHelper(Test_Encryption_Keymanager::TEST_USER);
- $this->userId = \Test_Encryption_Keymanager::TEST_USER;
- $this->pass = \Test_Encryption_Keymanager::TEST_USER;
+ self::loginHelper(self::TEST_USER);
+ $this->userId = self::TEST_USER;
+ $this->pass = self::TEST_USER;
$userHome = \OC_User::getHome($this->userId);
$this->dataDir = str_replace('/' . $this->userId, '', $userHome);
}
function tearDown() {
- $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys');
+ $this->view->deleteAll('/' . self::TEST_USER . '/files_encryption/keys');
parent::tearDown();
}
@@ -75,10 +75,10 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = true;
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Keymanager::TEST_USER);
+ \OC_User::deleteUser(self::TEST_USER);
// reset app files_trashbin
if (self::$stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
parent::tearDownAfterClass();
@@ -89,9 +89,9 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testGetPrivateKey() {
- $key = Encryption\Keymanager::getPrivateKey($this->view, $this->userId);
+ $key = \OCA\Files_Encryption\Keymanager::getPrivateKey($this->view, $this->userId);
- $privateKey = Encryption\Crypt::decryptPrivateKey($key, $this->pass);
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($key, $this->pass);
$res = openssl_pkey_get_private($privateKey);
@@ -108,7 +108,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testGetPublicKey() {
- $publiceKey = Encryption\Keymanager::getPublicKey($this->view, $this->userId);
+ $publiceKey = \OCA\Files_Encryption\Keymanager::getPublicKey($this->view, $this->userId);
$res = openssl_pkey_get_public($publiceKey);
@@ -128,7 +128,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$file = 'unittest-' . $this->getUniqueID() . '.txt';
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
// Disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
@@ -136,7 +136,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$this->view->file_put_contents($this->userId . '/files/' . $file, $this->dataShort);
- Encryption\Keymanager::setFileKey($this->view, $util, $file, $key);
+ \OCA\Files_Encryption\Keymanager::setFileKey($this->view, $util, $file, $key);
$this->assertTrue($this->view->file_exists('/' . $this->userId . '/files_encryption/keys/' . $file . '/fileKey'));
@@ -154,7 +154,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$key = "dummy key";
- Encryption\Keymanager::setPrivateKey($key, 'dummyUser');
+ \OCA\Files_Encryption\Keymanager::setPrivateKey($key, 'dummyUser');
$this->assertTrue($this->view->file_exists('/dummyUser/files_encryption/dummyUser.privateKey'));
@@ -169,13 +169,13 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$key = "dummy key";
$keyName = "myDummyKey";
- $encHeader = Encryption\Crypt::generateHeader();
+ $encHeader = \OCA\Files_Encryption\Crypt::generateHeader();
- Encryption\Keymanager::setPrivateSystemKey($key, $keyName);
+ \OCA\Files_Encryption\Keymanager::setPrivateSystemKey($key, $keyName);
$this->assertTrue($this->view->file_exists('/files_encryption/' . $keyName . '.privateKey'));
- $result = Encryption\Keymanager::getPrivateSystemKey($keyName);
+ $result = \OCA\Files_Encryption\Keymanager::getPrivateSystemKey($keyName);
$this->assertSame($encHeader . $key, $result);
@@ -189,7 +189,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testGetUserKeys() {
- $keys = Encryption\Keymanager::getUserKeys($this->view, $this->userId);
+ $keys = \OCA\Files_Encryption\Keymanager::getUserKeys($this->view, $this->userId);
$resPublic = openssl_pkey_get_public($keys['publicKey']);
@@ -199,7 +199,7 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertArrayHasKey('key', $sslInfoPublic);
- $privateKey = Encryption\Crypt::decryptPrivateKey($keys['privateKey'], $this->pass);
+ $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($keys['privateKey'], $this->pass);
$resPrivate = openssl_pkey_get_private($privateKey);
@@ -215,85 +215,85 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testRecursiveDelShareKeysFolder() {
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data');
+ $this->view->mkdir('/' . self::TEST_USER . '/files/folder1');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files/folder1/existingFile.txt', 'data');
// create folder structure for some dummy share key files
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file1');
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file1');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2');
// create some dummy share keys
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/user1.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.test.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user2.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user3.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2/user3.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file1/user1.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user2.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user1.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.test.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/userx.' . self::TEST_USER . '.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.userx.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.' . self::TEST_USER . '.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.user1.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user2.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user3.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2/user3.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file1/user1.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user2.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey', 'data');
// recursive delete share keys from user1 and user2
- Encryption\Keymanager::delShareKey($this->view,
- array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER),
- Encryption\Keymanager::getKeyPath($this->view, new Encryption\Util($this->view, Test_Encryption_Keymanager::TEST_USER), '/folder1'),
- Test_Encryption_Keymanager::TEST_USER,
+ \OCA\Files_Encryption\Keymanager::delShareKey($this->view,
+ array('user1', 'user2', self::TEST_USER),
+ \OCA\Files_Encryption\Keymanager::getKeyPath($this->view, new \OCA\Files_Encryption\Util($this->view, self::TEST_USER), '/folder1'),
+ self::TEST_USER,
'/folder1');
// check if share keys from user1 and user2 are deleted
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/user1.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user1.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1/user1.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/file1/user1.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2/user2.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/file2/user2.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1/user1.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1/user1.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2/user2.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2/user2.shareKey'));
// check if share keys from user3 still exists
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user3.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user3.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2/user3.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2/user3.shareKey'));
// check if share keys for user or file with similar name
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.test.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.test.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.userx.shareKey'));
// FIXME: this case currently cannot be distinguished, needs further fixing
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/userx.' . self::TEST_USER . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.' . self::TEST_USER . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.user1.shareKey'));
// owner key from existing file should still exists because the file is still there
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/' . Test_Encryption_Keymanager::TEST_USER . '.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey'));
// cleanup
- $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1');
+ $this->view->deleteAll('/' . self::TEST_USER . '/files/folder1');
}
@@ -302,44 +302,44 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testRecursiveDelShareKeysFile() {
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data');
+ $this->view->mkdir('/' . self::TEST_USER . '/files/folder1');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files/folder1/existingFile.txt', 'data');
// create folder structure for some dummy share key files
- $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1');
+ $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/share-keys/folder1');
// create some dummy share keys
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user1.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user2.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey', 'data');
- $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.user1.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.user2.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey', 'data');
+ $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.' . self::TEST_USER . '.shareKey', 'data');
// recursive delete share keys from user1 and user2
- Encryption\Keymanager::delShareKey($this->view,
- array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER),
- Encryption\Keymanager::getKeyPath($this->view, new Encryption\Util($this->view, Test_Encryption_Keymanager::TEST_USER), '/folder1/existingFile.txt'),
- Test_Encryption_Keymanager::TEST_USER,
+ \OCA\Files_Encryption\Keymanager::delShareKey($this->view,
+ array('user1', 'user2', self::TEST_USER),
+ \OCA\Files_Encryption\Keymanager::getKeyPath($this->view, new \OCA\Files_Encryption\Util($this->view, self::TEST_USER), '/folder1/existingFile.txt'),
+ self::TEST_USER,
'/folder1/existingFile.txt');
// check if share keys from user1 and user2 are deleted
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.user1.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.user1.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.user2.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.user2.shareKey'));
// check if share keys for user3 and owner
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.' . self::TEST_USER . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey'));
+ '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey'));
// cleanup
- $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1');
+ $this->view->deleteAll('/' . self::TEST_USER . '/files/folder1');
}
function testKeySetPreperation() {
- $basePath = '/'.Test_Encryption_Keymanager::TEST_USER.'/files';
+ $basePath = '/' . self::TEST_USER . '/files';
$path = '/folder1/subfolder/subsubfolder/file.txt';
$this->assertFalse($this->view->is_dir($basePath . '/testKeySetPreperation'));
@@ -356,9 +356,9 @@ class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase {
}
/**
- * dummy class to access protected methods of \OCA\Encryption\Keymanager for testing
+ * dummy class to access protected methods of \OCA\Files_Encryption\Keymanager for testing
*/
-class TestProtectedKeymanagerMethods extends \OCA\Encryption\Keymanager {
+class TestProtectedKeymanagerMethods extends \OCA\Files_Encryption\Keymanager {
/**
* @param \OC\Files\View $view relative to data/
@@ -366,6 +366,6 @@ class TestProtectedKeymanagerMethods extends \OCA\Encryption\Keymanager {
* @param string $basePath
*/
public static function testKeySetPreperation($view, $path) {
- return self::keySetPreparation($view, $path);
+ self::keySetPreparation($view, $path);
}
}
diff --git a/apps/files_encryption/tests/migration.php b/apps/files_encryption/tests/migration.php
index 21c4e354c29..f0d1ba202ed 100644
--- a/apps/files_encryption/tests/migration.php
+++ b/apps/files_encryption/tests/migration.php
@@ -21,15 +21,15 @@
*
*/
-use OCA\Encryption;
-use OCA\Files_Encryption\Migration;
+namespace OCA\Files_Encryption\Tests;
-class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase {
+class Migration extends TestCase {
const TEST_ENCRYPTION_MIGRATION_USER1='test_encryption_user1';
const TEST_ENCRYPTION_MIGRATION_USER2='test_encryption_user2';
const TEST_ENCRYPTION_MIGRATION_USER3='test_encryption_user3';
+ /** @var \OC\Files\View */
private $view;
private $public_share_key_id;
private $recovery_key_id;
@@ -49,8 +49,8 @@ class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase {
}
protected function tearDown() {
- if (OC_DB::tableExists('encryption_test')) {
- OC_DB::dropTable('encryption_test');
+ if (\OC_DB::tableExists('encryption_test')) {
+ \OC_DB::dropTable('encryption_test');
}
$this->assertTableNotExist('encryption_test');
@@ -60,10 +60,10 @@ class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase {
public function setUp() {
$this->loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER1);
$this->view = new \OC\Files\View();
- $this->public_share_key_id = Encryption\Helper::getPublicShareKeyId();
- $this->recovery_key_id = Encryption\Helper::getRecoveryKeyId();
- if (OC_DB::tableExists('encryption_test')) {
- OC_DB::dropTable('encryption_test');
+ $this->public_share_key_id = \OCA\Files_Encryption\Helper::getPublicShareKeyId();
+ $this->recovery_key_id = \OCA\Files_Encryption\Helper::getRecoveryKeyId();
+ if (\OC_DB::tableExists('encryption_test')) {
+ \OC_DB::dropTable('encryption_test');
}
$this->assertTableNotExist('encryption_test');
}
@@ -101,7 +101,7 @@ class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase {
// create test table
$this->checkLastIndexId();
- OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml');
+ \OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml');
$this->checkLastIndexId();
}
@@ -109,12 +109,12 @@ class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase {
* @param string $table
*/
public function assertTableNotExist($table) {
- $type=OC_Config::getValue( "dbtype", "sqlite" );
+ $type = \OC_Config::getValue( "dbtype", "sqlite" );
if( $type == 'sqlite' || $type == 'sqlite3' ) {
// sqlite removes the tables after closing the DB
$this->assertTrue(true);
} else {
- $this->assertFalse(OC_DB::tableExists($table), 'Table ' . $table . ' exists.');
+ $this->assertFalse(\OC_DB::tableExists($table), 'Table ' . $table . ' exists.');
}
}
diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php
index 72a9a9a5551..d5d9cc7daee 100644
--- a/apps/files_encryption/tests/proxy.php
+++ b/apps/files_encryption/tests/proxy.php
@@ -20,13 +20,13 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Proxy
+ * Class Proxy
* this class provide basic proxy app tests
*/
-class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase {
+class Proxy extends TestCase {
const TEST_ENCRYPTION_PROXY_USER1 = "test-proxy-user1";
@@ -45,20 +45,20 @@ class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase {
parent::setUpBeforeClass();
// create test user
- self::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_PROXY_USER1, true);
}
protected function setUp() {
parent::setUp();
// set user id
- \OC_User::setUserId(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1);
- $this->userId = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1;
- $this->pass = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1;
+ \OC_User::setUserId(self::TEST_ENCRYPTION_PROXY_USER1);
+ $this->userId = self::TEST_ENCRYPTION_PROXY_USER1;
+ $this->pass = self::TEST_ENCRYPTION_PROXY_USER1;
// init filesystem view
- $this->view = new \OC\Files\View('/'. \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files');
- $this->rootView = new \OC\Files\View('/'. \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 );
+ $this->view = new \OC\Files\View('/'. self::TEST_ENCRYPTION_PROXY_USER1 . '/files');
+ $this->rootView = new \OC\Files\View('/'. self::TEST_ENCRYPTION_PROXY_USER1 );
// init short data
$this->data = 'hats';
@@ -69,7 +69,7 @@ class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_PROXY_USER1);
parent::tearDownAfterClass();
}
@@ -137,13 +137,13 @@ class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase {
public function isExcludedPathProvider() {
return array(
- array ('/' . \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false),
- array (\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false),
+ array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false),
+ array (self::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false),
array ('/files/test.txt', true),
- array ('/' . \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files/versions/test.txt', false),
- array ('/' . \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files_versions/test.txt', false),
- array ('/' . \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files_trashbin/test.txt', true),
- array ('/' . \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/file/test.txt', true),
+ array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files/versions/test.txt', false),
+ array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files_versions/test.txt', false),
+ array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files_trashbin/test.txt', true),
+ array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/file/test.txt', true),
);
}
@@ -153,7 +153,7 @@ class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase {
/**
* Dummy class to make protected methods available for testing
*/
-class DummyProxy extends \OCA\Encryption\Proxy {
+class DummyProxy extends \OCA\Files_Encryption\Proxy {
public function isExcludedPathTesting($path, $uid) {
return $this->isExcludedPath($path, $uid);
}
diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php
index f827017569f..9c53c73aafa 100755
--- a/apps/files_encryption/tests/share.php
+++ b/apps/files_encryption/tests/share.php
@@ -20,12 +20,12 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Share
+ * Class Share
*/
-class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
+class Share extends TestCase {
const TEST_ENCRYPTION_SHARE_USER1 = "test-share-user1";
const TEST_ENCRYPTION_SHARE_USER2 = "test-share-user2";
@@ -37,7 +37,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
public $filename;
public $dataShort;
/**
- * @var OC\Files\View
+ * @var \OC\Files\View
*/
public $view;
public $folder1;
@@ -55,18 +55,18 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OCA\Files_Sharing\Helper::registerHooks();
// clear and register hooks
- \OC_FileProxy::register(new OCA\Files\Share\Proxy());
+ \OC_FileProxy::register(new \OCA\Files\Share\Proxy());
// create users
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1, true);
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, true);
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, true);
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, true);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2, true);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3, true);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER4, true);
// create group and assign users
- \OC_Group::createGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
- \OC_Group::addToGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
- \OC_Group::addToGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OC_Group::createGroup(self::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OC_Group::addToGroup(self::TEST_ENCRYPTION_SHARE_USER3, self::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OC_Group::addToGroup(self::TEST_ENCRYPTION_SHARE_USER4, self::TEST_ENCRYPTION_SHARE_GROUP1);
}
protected function setUp() {
@@ -82,21 +82,21 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->filename = 'share-tmp.test';
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
// login as first user
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
}
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
} else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
parent::tearDown();
@@ -104,13 +104,13 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// clean group
- \OC_Group::deleteGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OC_Group::deleteGroup(self::TEST_ENCRYPTION_SHARE_GROUP1);
// cleanup users
- \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
- \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
- \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
- \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER2);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER3);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER4);
parent::tearDownAfterClass();
}
@@ -122,10 +122,10 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testShareFile($withTeardown = true) {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
@@ -136,7 +136,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
@@ -148,22 +148,22 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = $proxyStatus;
// share the file
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user1 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// login as user1
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@@ -172,25 +172,25 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
if ($withTeardown) {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// unshare the file
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
}
@@ -202,29 +202,29 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->testShareFile(false);
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// get the file info
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// share the file with user3
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user2 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
// check if data is the same as previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@@ -233,36 +233,36 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
if ($withTeardown) {
// login as user1
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// unshare the file with user2
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// unshare the file with user1
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
}
@@ -273,18 +273,18 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testShareFolder($withTeardown = true) {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// create folder structure
- $this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
+ $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder
. $this->subsubfolder);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
. $this->filename, $this->dataShort);
// test that data was successfully written
@@ -296,7 +296,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created folder
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
@@ -305,23 +305,23 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = $proxyStatus;
// share the folder with user1
- \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user1 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// login as user1
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/' . $this->filename);
// check if data is the same
@@ -331,27 +331,27 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
if ($withTeardown) {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// unshare the folder with user1
- \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files');
$this->view->unlink($this->folder1);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
return $fileInfo;
@@ -365,7 +365,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$fileInfoFolder1 = $this->testShareFolder(false);
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
@@ -373,7 +373,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created folder
$fileInfoSubFolder = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
. $this->subfolder);
// check if we have a valid file info
@@ -383,23 +383,23 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = $proxyStatus;
// share the file with user3
- \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user3 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// login as user3
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
+ '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
. $this->subsubfolder . '/' . $this->filename);
// check if data is the same
@@ -407,30 +407,30 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
+ '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
. $this->subsubfolder . '/' . $this->filename);
// check if we have fileInfos
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
// share the file with user3
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER4, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user3 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
// login as user3
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER4);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '/files/' . $this->filename);
// check if data is the same
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@@ -439,61 +439,61 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
if ($withTeardown) {
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3);
// unshare the file with user3
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER4);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
// login as user1
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
// unshare the folder with user2
- \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// unshare the folder1 with user1
- \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files');
$this->view->unlink($this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys'
. $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
}
function testPublicShareFile() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
@@ -504,7 +504,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
@@ -519,22 +519,22 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, false, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
$publicShareKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'publicShareKeyId');
// check if share key for public exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $publicShareKeyId . '.shareKey'));
// some hacking to simulate public link
//$GLOBALS['app'] = 'files_sharing';
- //$GLOBALS['fileOwner'] = \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1;
+ //$GLOBALS['fileOwner'] = self::TEST_ENCRYPTION_SHARE_USER1;
self::logoutHelper();
// get file contents
- $retrievedCryptedFile = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ $retrievedCryptedFile = file_get_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@@ -542,25 +542,25 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// tear down
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// unshare the file
\OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $publicShareKeyId . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
/**
@@ -568,10 +568,10 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testShareFileWithGroup() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
@@ -582,7 +582,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
@@ -594,52 +594,52 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = $proxyStatus;
// share the file
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user2 and user3 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
// login as user1
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// unshare the file
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->chroot('/');
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
@@ -649,15 +649,15 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
function testRecoveryFile() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
- \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123');
+ \OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123');
$recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId');
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
- $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ $util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), self::TEST_ENCRYPTION_SHARE_USER1);
// check if recovery password match
$this->assertTrue($util->checkRecoveryPassword('test123'));
@@ -667,16 +667,16 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$util->addRecoveryKeys();
// create folder structure
- $this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
+ $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder
. $this->subsubfolder);
// save file with content
- $cryptedFile1 = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
- $cryptedFile2 = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
+ $cryptedFile1 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
. $this->filename, $this->dataShort);
// test that data was successfully written
@@ -685,17 +685,17 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// check if share key for admin and recovery exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
@@ -707,10 +707,10 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// check if share key for recovery not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
@@ -722,30 +722,30 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// check if share key for admin and recovery exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->unlink($this->folder1);
$this->view->chroot('/');
// check if share key for recovery not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
- $this->assertTrue(\OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'));
- $this->assertTrue(\OCA\Encryption\Helper::adminDisableRecovery('test123'));
+ $this->assertTrue(\OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123'));
+ $this->assertTrue(\OCA\Files_Encryption\Helper::adminDisableRecovery('test123'));
$this->assertEquals(0, \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled'));
}
@@ -755,17 +755,17 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
function testRecoveryForUser() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
- $result = \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123');
+ $result = \OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123');
$this->assertTrue($result);
$recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId');
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
- $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ $util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), self::TEST_ENCRYPTION_SHARE_USER2);
// enable recovery for admin
$this->assertTrue($util->setRecoveryForUser(1));
@@ -774,16 +774,16 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$util->addRecoveryKeys();
// create folder structure
- $this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1);
+ $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder);
$this->view->mkdir(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder
. $this->subsubfolder);
// save file with content
- $cryptedFile1 = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2. '/files/' . $this->filename, $this->dataShort);
- $cryptedFile2 = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
+ $cryptedFile1 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2. '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/'
. $this->filename, $this->dataShort);
// test that data was successfully written
@@ -792,76 +792,76 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// check if share key for user and recovery exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// change password
- \OC_User::setPassword(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, 'test', 'test123');
- $params = array('uid' => \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2,
+ \OC_User::setPassword(self::TEST_ENCRYPTION_SHARE_USER2, 'test', 'test123');
+ $params = array('uid' => self::TEST_ENCRYPTION_SHARE_USER2,
'password' => 'test',
'recoveryPassword' => 'test123');
- \OCA\Encryption\Hooks::setPassphrase($params);
+ \OCA\Files_Encryption\Hooks::setPassphrase($params);
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, false, 'test');
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2, false, 'test');
// get file contents
- $retrievedCryptedFile1 = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
+ $retrievedCryptedFile1 = file_get_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
$retrievedCryptedFile2 = file_get_contents(
- 'crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename);
+ 'crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile1);
$this->assertEquals($this->dataShort, $retrievedCryptedFile2);
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/');
$this->view->unlink($this->folder1);
$this->view->unlink($this->filename);
$this->view->chroot('/');
// check if share key for user and recovery exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '/' . $recoveryKeyId . '.shareKey'));
// enable recovery for admin
$this->assertTrue($util->setRecoveryForUser(0));
- \OCA\Encryption\Helper::adminDisableRecovery('test123');
+ \OCA\Files_Encryption\Helper::adminDisableRecovery('test123');
$this->assertEquals(0, \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled'));
//clean up, reset passwords
- \OC_User::setPassword(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, 'test123');
- $params = array('uid' => \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2,
- 'password' => \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2,
+ \OC_User::setPassword(self::TEST_ENCRYPTION_SHARE_USER2, self::TEST_ENCRYPTION_SHARE_USER2, 'test123');
+ $params = array('uid' => self::TEST_ENCRYPTION_SHARE_USER2,
+ 'password' => self::TEST_ENCRYPTION_SHARE_USER2,
'recoveryPassword' => 'test123');
- \OCA\Encryption\Hooks::setPassphrase($params);
+ \OCA\Files_Encryption\Hooks::setPassphrase($params);
}
/**
@@ -869,10 +869,10 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testFailShareFile() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
@@ -883,7 +883,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
@@ -892,27 +892,27 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertGreaterThan(0, $fileInfo['unencrypted_size']);
// break users public key
- $this->view->rename(\OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey',
- \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup');
+ $this->view->rename(\OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey',
+ \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup');
// re-enable the file proxy
\OC_FileProxy::$enabled = $proxyStatus;
// share the file
try {
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL);
- } catch (Exception $e) {
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL);
+ } catch (\Exception $e) {
$this->assertEquals(0, strpos($e->getMessage(), "Following users are not set up for encryption"));
}
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user1 not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
@@ -920,27 +920,27 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
// break user1 public key
$this->view->rename(
- \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup',
- \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey');
+ \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup',
+ \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey');
// remove share file
- $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3
+ $this->view->unlink('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3
. '.shareKey');
// re-enable the file proxy
\OC_FileProxy::$enabled = $proxyStatus;
// unshare the file with user1
- \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1);
+ \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1);
// check if share key not exists
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// cleanup
- $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
+ $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/');
$this->view->unlink($this->filename);
$this->view->chroot('/');
}
@@ -952,56 +952,56 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
function testRename() {
// login as admin
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// save file with content
- $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
+ $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
// share the file
- \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
// check if share key for user2 exists
$this->assertTrue($this->view->file_exists(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
- . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/'
+ . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// login as user2
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2);
- $this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename));
+ $this->assertTrue($this->view->file_exists('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename));
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
// move the file to a subfolder
- $this->view->rename('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename,
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
+ $this->view->rename('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename,
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
// check if we can read the moved file
$retrievedRenamedFile = $this->view->file_get_contents(
- '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
+ '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedRenamedFile);
// cleanup
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
- $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
+ $this->view->unlink('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
}
/**
@@ -1010,7 +1010,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testMoveFolder() {
- $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ $view = new \OC\Files\View('/' . self::TEST_ENCRYPTION_SHARE_USER1);
$filename = '/tmp-' . $this->getUniqueID();
$folder = '/folder' . $this->getUniqueID();
@@ -1036,7 +1036,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
// share the folder
- \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
\OC\Files\Filesystem::rename($folder, $newFolder);
@@ -1045,10 +1045,10 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertEquals($this->dataShort, $newDecrypt);
// check if additional share key for user2 exists
- $this->assertTrue($view->file_exists('files_encryption/keys' . $newFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ $this->assertTrue($view->file_exists('files_encryption/keys' . $newFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// check that old keys were removed/moved properly
- $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// tear down
\OC\Files\Filesystem::unlink($newFolder);
@@ -1058,9 +1058,9 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
function usersProvider() {
return array(
// test as owner
- array(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1),
+ array(self::TEST_ENCRYPTION_SHARE_USER1),
// test as share receiver
- array(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2),
+ array(self::TEST_ENCRYPTION_SHARE_USER2),
);
}
@@ -1068,7 +1068,7 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
* @dataProvider usersProvider
*/
function testMoveFileToFolder($userId) {
- $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ $view = new \OC\Files\View('/' . self::TEST_ENCRYPTION_SHARE_USER1);
$filename = '/tmp-' . $this->getUniqueID();
$folder = '/folder' . $this->getUniqueID();
@@ -1094,28 +1094,28 @@ class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo);
// share the folder
- \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
+ \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL);
// check that the share keys exist
- $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
- $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// move the file into the subfolder as the test user
self::loginHelper($userId);
\OC\Files\Filesystem::rename($folder . $filename, $subFolder . $filename);
- self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1);
// Get file decrypted contents
$newDecrypt = \OC\Files\Filesystem::file_get_contents($subFolder . $filename);
$this->assertEquals($this->dataShort, $newDecrypt);
// check if additional share key for user2 exists
- $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
- $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// check that old keys were removed/moved properly
- $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
- $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
+ $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
+ $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
// tear down
\OC\Files\Filesystem::unlink($subFolder);
diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php
index f4824935ca0..8295ddd9523 100644
--- a/apps/files_encryption/tests/stream.php
+++ b/apps/files_encryption/tests/stream.php
@@ -20,13 +20,13 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Stream
+ * Class Stream
* this class provide basic stream tests
*/
-class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
+class Stream extends TestCase {
const TEST_ENCRYPTION_STREAM_USER1 = "test-stream-user1";
@@ -43,16 +43,16 @@ class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
parent::setUpBeforeClass();
// create test user
- self::loginHelper(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_STREAM_USER1, true);
}
protected function setUp() {
parent::setUp();
// set user id
- \OC_User::setUserId(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1);
- $this->userId = \Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1;
- $this->pass = \Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1;
+ \OC_User::setUserId(self::TEST_ENCRYPTION_STREAM_USER1);
+ $this->userId = self::TEST_ENCRYPTION_STREAM_USER1;
+ $this->pass = self::TEST_ENCRYPTION_STREAM_USER1;
// init filesystem view
$this->view = new \OC\Files\View('/');
@@ -61,7 +61,7 @@ class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
$this->dataShort = 'hats';
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
@@ -70,10 +70,10 @@ class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
parent::tearDown();
@@ -81,7 +81,7 @@ class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_STREAM_USER1);
parent::tearDownAfterClass();
}
@@ -208,7 +208,7 @@ class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase {
file_put_contents($tmpFilename, $encryptedContent);
- \OCA\Encryption\Helper::addTmpFileToMapper($tmpFilename, $filename);
+ \OCA\Files_Encryption\Helper::addTmpFileToMapper($tmpFilename, $filename);
// try to read the file from /tmp
$handle = fopen("crypt://".$tmpFilename, "r");
diff --git a/apps/files_encryption/tests/testcase.php b/apps/files_encryption/tests/testcase.php
index 743a876ab45..9cb724648cb 100644
--- a/apps/files_encryption/tests/testcase.php
+++ b/apps/files_encryption/tests/testcase.php
@@ -8,10 +8,8 @@
namespace OCA\Files_Encryption\Tests;
-use OCA\Encryption;
-
/**
- * Class Test_Encryption_TestCase
+ * Class TestCase
*/
abstract class TestCase extends \Test\TestCase {
@@ -42,7 +40,7 @@ abstract class TestCase extends \Test\TestCase {
if ($loadEncryption) {
$params['uid'] = $user;
$params['password'] = $password;
- \OCA\Encryption\Hooks::login($params);
+ \OCA\Files_Encryption\Hooks::login($params);
}
}
@@ -59,16 +57,16 @@ abstract class TestCase extends \Test\TestCase {
\OC_User::clearBackends();
\OC_User::useBackend('database');
- \OCA\Encryption\Helper::registerFilesystemHooks();
- \OCA\Encryption\Helper::registerUserHooks();
- \OCA\Encryption\Helper::registerShareHooks();
+ \OCA\Files_Encryption\Helper::registerFilesystemHooks();
+ \OCA\Files_Encryption\Helper::registerUserHooks();
+ \OCA\Files_Encryption\Helper::registerShareHooks();
\OC::registerShareHooks();
\OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
// clear and register hooks
\OC_FileProxy::clearProxies();
- \OC_FileProxy::register(new \OCA\Encryption\Proxy());
+ \OC_FileProxy::register(new \OCA\Files_Encryption\Proxy());
}
public static function tearDownAfterClass() {
diff --git a/apps/files_encryption/tests/trashbin.php b/apps/files_encryption/tests/trashbin.php
index de5b8bd6edb..d924b8ac77a 100755
--- a/apps/files_encryption/tests/trashbin.php
+++ b/apps/files_encryption/tests/trashbin.php
@@ -20,13 +20,13 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Trashbin
+ * Class Trashbin
* this class provide basic trashbin app tests
*/
-class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase {
+class Trashbin extends TestCase {
const TEST_ENCRYPTION_TRASHBIN_USER1 = "test-trashbin-user1";
@@ -71,7 +71,7 @@ class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase {
$this->subsubfolder = '/subsubfolder1';
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we want to tests with app files_trashbin enabled
\OC_App::enable('files_trashbin');
@@ -80,10 +80,10 @@ class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase {
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
parent::tearDown();
@@ -173,7 +173,7 @@ class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase {
// check if we found the file we created
$this->assertNotNull($trashFileSuffix);
- $this->assertTrue($this->view->is_dir('/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.' . $trashFileSuffix));
+ $this->assertTrue($this->view->is_dir('/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.' . $trashFileSuffix));
// check if key for admin not exists
$this->assertTrue($this->view->file_exists(
@@ -219,10 +219,10 @@ class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase {
// before calling the restore operation the keys shouldn't be there
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey'));
+ '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey'));
$this->assertFalse($this->view->file_exists(
- '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/'
- . $filename . '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey'));
+ '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/'
+ . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey'));
// restore first file
$this->assertTrue(\OCA\Files_Trashbin\Trashbin::restore($filename . '.' . $trashFileSuffix, $filename, $timestamp));
diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php
index 8d9aba423cd..c71b9a0481f 100755
--- a/apps/files_encryption/tests/util.php
+++ b/apps/files_encryption/tests/util.php
@@ -6,12 +6,12 @@
* See the COPYING-README file.
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Util
+ * Class Util
*/
-class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
+class Util extends TestCase {
const TEST_ENCRYPTION_UTIL_USER1 = "test-util-user1";
const TEST_ENCRYPTION_UTIL_USER2 = "test-util-user2";
@@ -24,14 +24,14 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
public $publicKeyDir;
public $pass;
/**
- * @var OC\Files\View
+ * @var \OC\Files\View
*/
public $view;
public $keyfilesPath;
public $publicKeyPath;
public $privateKeyPath;
/**
- * @var \OCA\Encryption\Util
+ * @var \OCA\Files_Encryption\Util
*/
public $util;
public $dataShort;
@@ -74,12 +74,12 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$this->legacyEncryptedDataKey = __DIR__ . '/encryption.key';
$this->legacyKey = "30943623843030686906\0\0\0\0";
- $keypair = Encryption\Crypt::createKeypair();
+ $keypair = \OCA\Files_Encryption\Crypt::createKeypair();
$this->genPublicKey = $keypair['publicKey'];
$this->genPrivateKey = $keypair['privateKey'];
- $this->publicKeyDir = \OCA\Encryption\Keymanager::getPublicKeyPath();
+ $this->publicKeyDir = \OCA\Files_Encryption\Keymanager::getPublicKeyPath();
$this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption';
$this->keysPath = $this->encryptionDir . '/' . 'keys';
$this->publicKeyPath =
@@ -89,10 +89,10 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$this->view = new \OC\Files\View('/');
- $this->util = new Encryption\Util($this->view, $this->userId);
+ $this->util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
@@ -101,10 +101,10 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
}
else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
parent::tearDown();
@@ -128,7 +128,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
* test that paths set during User construction are correct
*/
function testKeyPaths() {
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
$this->assertEquals($this->publicKeyDir, $util->getPath('publicKeyDir'));
$this->assertEquals($this->encryptionDir, $util->getPath('encryptionDir'));
@@ -144,7 +144,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testIsEncryptedPath() {
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
self::loginHelper($this->userId);
@@ -197,7 +197,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
//
// $params['uid'] = $this->userId;
// $params['password'] = $this->pass;
-// $this->assertFalse(OCA\Encryption\Hooks::login($params));
+// $this->assertFalse(OCA\Files_Encryption\Hooks::login($params));
//
// $this->view->unlink($this->privateKeyPath);
// }
@@ -207,7 +207,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
*/
function testRecoveryEnabledForUser() {
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
// Record the value so we can return it to it's original state later
$enabled = $util->recoveryEnabledForUser();
@@ -241,7 +241,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
// Re-enable proxy - our work is done
\OC_FileProxy::$enabled = $proxyStatus;
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
list($fileOwnerUid, $file) = $util->getUidAndFilename($filename);
@@ -283,7 +283,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
function testEncryptAll() {
$filename = "/encryptAll" . $this->getUniqueID() . ".txt";
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
// disable encryption to upload a unencrypted file
\OC_App::disable('files_encryption');
@@ -338,18 +338,18 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$this->assertSame($encContent, $content);
// now we load the encryption app again
- OC_App::loadApp('files_encryption');
+ \OC_App::loadApp('files_encryption');
// init encryption app
$params = array('uid' => \OCP\User::getUser(),
'password' => \OCP\User::getUser());
- $view = new OC\Files\View('/');
- $util = new \OCA\Encryption\Util($view, \OCP\User::getUser());
+ $view = new \OC\Files\View('/');
+ $util = new \OCA\Files_Encryption\Util($view, \OCP\User::getUser());
$result = $util->initEncryption($params);
- $this->assertTrue($result instanceof \OCA\Encryption\Session);
+ $this->assertTrue($result instanceof \OCA\Files_Encryption\Session);
$successful = $util->decryptAll();
@@ -385,7 +385,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
// cleanup
$this->view->unlink($this->userId . '/files/' . $filename);
$this->view->deleteAll($backupPath);
- OC_App::enable('files_encryption');
+ \OC_App::enable('files_encryption');
}
@@ -401,7 +401,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$this->view->file_put_contents($encPath . '/keys/foo/fileKey', 'key');
$this->view->file_put_contents($encPath . '/keys/foo/user1.shareKey', 'share key');
- $util = new \OCA\Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1);
+ $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1);
$util->backupAllKeys('testBackupAllKeys');
@@ -427,7 +427,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$file1 = "/decryptAll1" . $this->getUniqueID() . ".txt";
$file2 = "/decryptAll2" . $this->getUniqueID() . ".txt";
- $util = new Encryption\Util($this->view, $this->userId);
+ $util = new \OCA\Files_Encryption\Util($this->view, $this->userId);
$this->view->file_put_contents($this->userId . '/files/' . $file1, $this->dataShort);
$this->view->file_put_contents($this->userId . '/files/' . $file2, $this->dataShort);
@@ -551,13 +551,13 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
$publicShareKeyId,
$recoveryKeyId,
);
- \Test_Encryption_Util::loginHelper('readyUser', true);
- \Test_Encryption_Util::loginHelper('notReadyUser', true);
+ self::loginHelper('readyUser', true);
+ self::loginHelper('notReadyUser', true);
// delete encryption dir to make it not ready
$this->view->unlink('notReadyUser/files_encryption/');
// login as user1
- \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1);
$result = $this->util->filterShareReadyUsers($usersToTest);
$this->assertEquals(
@@ -598,7 +598,7 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
if ($loadEncryption) {
$params['uid'] = $user;
$params['password'] = $password;
- OCA\Encryption\Hooks::login($params);
+ \OCA\Files_Encryption\Hooks::login($params);
}
}
@@ -617,15 +617,17 @@ class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase {
* @return boolean
*/
private function setMigrationStatus($status, $user) {
- return \OC_Preferences::setValue($user, 'files_encryption', 'migration_status', (string)$status);
+ \OC::$server->getConfig()->setUserValue($user, 'files_encryption', 'migration_status', (string)$status);
+ // the update will definitely be executed -> return value is always true
+ return true;
}
}
/**
- * dummy class extends \OCA\Encryption\Util to access protected methods for testing
+ * dummy class extends \OCA\Files_Encryption\Util to access protected methods for testing
*/
-class DummyUtilClass extends \OCA\Encryption\Util {
+class DummyUtilClass extends \OCA\Files_Encryption\Util {
public function testIsMountPointApplicableToUser($mount) {
return $this->isMountPointApplicableToUser($mount);
}
diff --git a/apps/files_encryption/tests/webdav.php b/apps/files_encryption/tests/webdav.php
index a04a7621291..83f4c0a77de 100755
--- a/apps/files_encryption/tests/webdav.php
+++ b/apps/files_encryption/tests/webdav.php
@@ -20,14 +20,14 @@
*
*/
-use OCA\Encryption;
+namespace OCA\Files_Encryption\Tests;
/**
- * Class Test_Encryption_Webdav
+ * Class Webdav
*
* this class provide basic webdav tests for PUT,GET and DELETE
*/
-class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
+class Webdav extends TestCase {
const TEST_ENCRYPTION_WEBDAV_USER1 = "test-webdav-user1";
@@ -46,7 +46,7 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
parent::setUpBeforeClass();
// create test user
- self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true);
+ self::loginHelper(self::TEST_ENCRYPTION_WEBDAV_USER1, true);
}
@@ -57,9 +57,9 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
\OC_User::useBackend('database');
// set user id
- \OC_User::setUserId(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1);
- $this->userId = \Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1;
- $this->pass = \Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1;
+ \OC_User::setUserId(self::TEST_ENCRYPTION_WEBDAV_USER1);
+ $this->userId = self::TEST_ENCRYPTION_WEBDAV_USER1;
+ $this->pass = self::TEST_ENCRYPTION_WEBDAV_USER1;
// init filesystem view
$this->view = new \OC\Files\View('/');
@@ -68,21 +68,21 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
$this->dataShort = 'hats';
// remember files_trashbin state
- $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+ $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin');
// we don't want to tests with app files_trashbin enabled
\OC_App::disable('files_trashbin');
// create test user
- self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1);
+ self::loginHelper(self::TEST_ENCRYPTION_WEBDAV_USER1);
}
protected function tearDown() {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
- OC_App::enable('files_trashbin');
+ \OC_App::enable('files_trashbin');
} else {
- OC_App::disable('files_trashbin');
+ \OC_App::disable('files_trashbin');
}
parent::tearDown();
@@ -90,7 +90,7 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
public static function tearDownAfterClass() {
// cleanup test user
- \OC_User::deleteUser(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1);
+ \OC_User::deleteUser(self::TEST_ENCRYPTION_WEBDAV_USER1);
parent::tearDownAfterClass();
}
@@ -138,7 +138,7 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
\OC_FileProxy::$enabled = $proxyStatus;
// check if encrypted content is valid
- $this->assertTrue(Encryption\Crypt::isCatfileContent($encryptedContent));
+ $this->assertTrue(\OCA\Files_Encryption\Crypt::isCatfileContent($encryptedContent));
// get decrypted file contents
$decrypt = file_get_contents('crypt:///' . $this->userId . '/files' . $filename);
@@ -211,14 +211,14 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
*/
function handleWebdavRequest($body = false) {
// Backends
- $authBackend = new OC_Connector_Sabre_Auth();
- $lockBackend = new OC_Connector_Sabre_Locks();
- $requestBackend = new OC_Connector_Sabre_Request();
+ $authBackend = new \OC_Connector_Sabre_Auth();
+ $lockBackend = new \OC_Connector_Sabre_Locks();
+ $requestBackend = new \OC_Connector_Sabre_Request();
// Create ownCloud Dir
$root = '/' . $this->userId . '/files';
$view = new \OC\Files\View($root);
- $publicDir = new OC_Connector_Sabre_Directory($view, $view->getFileInfo(''));
+ $publicDir = new \OC_Connector_Sabre_Directory($view, $view->getFileInfo(''));
$objectTree = new \OC\Connector\Sabre\ObjectTree();
$mountManager = \OC\Files\Filesystem::getMountManager();
$objectTree->init($publicDir, $view, $mountManager);
@@ -232,8 +232,8 @@ class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase {
$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, 'ownCloud'));
$server->addPlugin(new \Sabre\DAV\Locks\Plugin($lockBackend));
$server->addPlugin(new \Sabre\DAV\Browser\Plugin(false)); // Show something in the Browser, but no upload
- $server->addPlugin(new OC_Connector_Sabre_QuotaPlugin($view));
- $server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin());
+ $server->addPlugin(new \OC_Connector_Sabre_QuotaPlugin($view));
+ $server->addPlugin(new \OC_Connector_Sabre_MaintenancePlugin());
$server->debugExceptions = true;
// And off we go!
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Aws.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Aws.php
index 1824e09c664..9cd4ae2e16f 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Aws.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Aws.php
@@ -28,7 +28,7 @@ class Aws extends ServiceBuilder
/**
* @var string Current version of the SDK
*/
- const VERSION = '2.6.15';
+ const VERSION = '2.7.5';
/**
* Create a new service locator for the AWS SDK
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php
index 0e2aa1a88ed..c9ee86a66ff 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php
@@ -17,7 +17,6 @@
namespace Aws\Common\Client;
use Aws\Common\Aws;
-use Aws\Common\Credentials\Credentials;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Credentials\NullCredentials;
use Aws\Common\Enum\ClientOptions as Options;
@@ -111,13 +110,7 @@ abstract class AbstractClient extends Client implements AwsClientInterface
/**
* Get an endpoint for a specific region from a service description
- *
- * @param ServiceDescriptionInterface $description Service description
- * @param string $region Region of the endpoint
- * @param string $scheme URL scheme
- *
- * @return string
- * @throws InvalidArgumentException
+ * @deprecated This function will no longer be updated to work with new regions.
*/
public static function getEndpoint(ServiceDescriptionInterface $description, $region, $scheme)
{
@@ -177,12 +170,27 @@ abstract class AbstractClient extends Client implements AwsClientInterface
$config = $this->getConfig();
$formerRegion = $config->get(Options::REGION);
$global = $this->serviceDescription->getData('globalEndpoint');
+ $provider = $config->get('endpoint_provider');
+
+ if (!$provider) {
+ throw new \RuntimeException('No endpoint provider configured');
+ }
// Only change the region if the service does not have a global endpoint
if (!$global || $this->serviceDescription->getData('namespace') === 'S3') {
- $baseUrl = self::getEndpoint($this->serviceDescription, $region, $config->get(Options::SCHEME));
- $this->setBaseUrl($baseUrl);
- $config->set(Options::BASE_URL, $baseUrl)->set(Options::REGION, $region);
+
+ $endpoint = call_user_func(
+ $provider,
+ array(
+ 'scheme' => $config->get(Options::SCHEME),
+ 'region' => $region,
+ 'service' => $config->get(Options::SERVICE)
+ )
+ );
+
+ $this->setBaseUrl($endpoint['endpoint']);
+ $config->set(Options::BASE_URL, $endpoint['endpoint']);
+ $config->set(Options::REGION, $region);
// Update the signature if necessary
$signature = $this->getSignature();
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php
index dd81cba2351..b34a67ffd92 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php
@@ -20,13 +20,13 @@ use Aws\Common\Credentials\Credentials;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Credentials\NullCredentials;
use Aws\Common\Enum\ClientOptions as Options;
-use Aws\Common\Enum\Region;
use Aws\Common\Exception\ExceptionListener;
use Aws\Common\Exception\InvalidArgumentException;
use Aws\Common\Exception\NamespaceExceptionFactory;
use Aws\Common\Exception\Parser\DefaultXmlExceptionParser;
use Aws\Common\Exception\Parser\ExceptionParserInterface;
use Aws\Common\Iterator\AwsResourceIteratorFactory;
+use Aws\Common\RulesEndpointProvider;
use Aws\Common\Signature\EndpointSignatureInterface;
use Aws\Common\Signature\SignatureInterface;
use Aws\Common\Signature\SignatureV2;
@@ -38,7 +38,6 @@ use Guzzle\Plugin\Backoff\CurlBackoffStrategy;
use Guzzle\Plugin\Backoff\ExponentialBackoffStrategy;
use Guzzle\Plugin\Backoff\HttpBackoffStrategy;
use Guzzle\Plugin\Backoff\TruncatedBackoffStrategy;
-use Guzzle\Service\Client;
use Guzzle\Service\Description\ServiceDescription;
use Guzzle\Service\Resource\ResourceIteratorClassFactory;
use Guzzle\Log\LogAdapterInterface;
@@ -200,6 +199,10 @@ class ClientBuilder
(self::$commonConfigRequirements + $this->configRequirements)
);
+ if (!isset($config['endpoint_provider'])) {
+ $config['endpoint_provider'] = RulesEndpointProvider::fromDefaults();
+ }
+
// Resolve the endpoint, signature, and credentials
$description = $this->updateConfigFromDescription($config);
$signature = $this->getSignature($description, $config);
@@ -366,33 +369,36 @@ class ClientBuilder
$this->setIteratorsConfig($iterators);
}
- // Ensure that the service description has regions
- if (!$description->getData('regions')) {
- throw new InvalidArgumentException(
- 'No regions found in the ' . $description->getData('serviceFullName'). ' description'
- );
- }
-
// Make sure a valid region is set
$region = $config->get(Options::REGION);
$global = $description->getData('globalEndpoint');
+
if (!$global && !$region) {
throw new InvalidArgumentException(
'A region is required when using ' . $description->getData('serviceFullName')
- . '. Set "region" to one of: ' . implode(', ', array_keys($description->getData('regions')))
);
} elseif ($global && (!$region || $description->getData('namespace') !== 'S3')) {
- $region = Region::US_EAST_1;
- $config->set(Options::REGION, $region);
+ $region = 'us-east-1';
+ $config->set(Options::REGION, 'us-east-1');
}
if (!$config->get(Options::BASE_URL)) {
- // Set the base URL using the scheme and hostname of the service's region
- $config->set(Options::BASE_URL, AbstractClient::getEndpoint(
- $description,
- $region,
- $config->get(Options::SCHEME)
- ));
+ $endpoint = call_user_func(
+ $config->get('endpoint_provider'),
+ array(
+ 'scheme' => $config->get(Options::SCHEME),
+ 'region' => $region,
+ 'service' => $config->get(Options::SERVICE)
+ )
+ );
+ $config->set(Options::BASE_URL, $endpoint['endpoint']);
+
+ // Set a signature if one was not explicitly provided.
+ if (!$config->hasKey(Options::SIGNATURE)
+ && isset($endpoint['signatureVersion'])
+ ) {
+ $config->set(Options::SIGNATURE, $endpoint['signatureVersion']);
+ }
}
return $description;
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Enum/Region.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Enum/Region.php
index b44bd971beb..017d1d7e16c 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Enum/Region.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Enum/Region.php
@@ -39,6 +39,9 @@ class Region extends Enum
const EU_WEST_1 = 'eu-west-1';
const IRELAND = 'eu-west-1';
+
+ const EU_CENTRAL_1 = 'eu-central-1';
+ const FRANKFURT = 'eu-central-1';
const AP_SOUTHEAST_1 = 'ap-southeast-1';
const SINGAPORE = 'ap-southeast-1';
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Hash/HashUtils.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Hash/HashUtils.php
index dd82ff75edd..f66af6edf53 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Hash/HashUtils.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Hash/HashUtils.php
@@ -38,6 +38,10 @@ class HashUtils
$useNative = function_exists('hex2bin');
}
+ if (!$useNative && strlen($hash) % 2 !== 0) {
+ $hash = '0' . $hash;
+ }
+
return $useNative ? hex2bin($hash) : pack("H*", $hash);
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php
index a1ad678610c..8690d5cb562 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php
@@ -49,7 +49,7 @@ abstract class AbstractUploadBuilder
/**
* Return a new instance of the UploadBuilder
*
- * @return self
+ * @return static
*/
public static function newInstance()
{
@@ -61,7 +61,7 @@ abstract class AbstractUploadBuilder
*
* @param AwsClientInterface $client Client to use
*
- * @return self
+ * @return $this
*/
public function setClient(AwsClientInterface $client)
{
@@ -78,7 +78,7 @@ abstract class AbstractUploadBuilder
* multipart upload. When an ID is passed, the builder will create a
* state object using the data from a ListParts API response.
*
- * @return self
+ * @return $this
*/
public function resumeFrom($state)
{
@@ -94,7 +94,7 @@ abstract class AbstractUploadBuilder
* You can also stream from a resource returned from fopen or a Guzzle
* {@see EntityBody} object.
*
- * @return self
+ * @return $this
* @throws InvalidArgumentException when the source cannot be found or opened
*/
public function setSource($source)
@@ -123,7 +123,7 @@ abstract class AbstractUploadBuilder
*
* @param array $headers Headers to add to the uploaded object
*
- * @return self
+ * @return $this
*/
public function setHeaders(array $headers)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/aws-config.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/aws-config.php
index 6a1e30c6413..710ad0d3385 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/aws-config.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/aws-config.php
@@ -78,6 +78,12 @@ return array(
'class' => 'Aws\CloudWatch\CloudWatchClient'
),
+ 'cloudwatchlogs' => array(
+ 'alias' => 'CloudWatchLogs',
+ 'extends' => 'default_settings',
+ 'class' => 'Aws\CloudWatchLogs\CloudWatchLogsClient'
+ ),
+
'cognito-identity' => array(
'alias' => 'CognitoIdentity',
'extends' => 'default_settings',
@@ -94,10 +100,16 @@ return array(
'cognitosync' => array('extends' => 'cognito-sync'),
- 'cloudwatchlogs' => array(
- 'alias' => 'CloudWatchLogs',
+ 'codedeploy' => array(
+ 'alias' => 'CodeDeploy',
'extends' => 'default_settings',
- 'class' => 'Aws\CloudWatchLogs\CloudWatchLogsClient'
+ 'class' => 'Aws\CodeDeploy\CodeDeployClient'
+ ),
+
+ 'config' => array(
+ 'alias' => 'ConfigService',
+ 'extends' => 'default_settings',
+ 'class' => 'Aws\ConfigService\ConfigServiceClient'
),
'datapipeline' => array(
@@ -173,6 +185,18 @@ return array(
'class' => 'Aws\Kinesis\KinesisClient'
),
+ 'kms' => array(
+ 'alias' => 'Kms',
+ 'extends' => 'default_settings',
+ 'class' => 'Aws\Kms\KmsClient'
+ ),
+
+ 'lambda' => array(
+ 'alias' => 'Lambda',
+ 'extends' => 'default_settings',
+ 'class' => 'Aws\Lambda\LambdaClient'
+ ),
+
'iam' => array(
'alias' => 'Iam',
'extends' => 'default_settings',
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/public-endpoints.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/public-endpoints.php
new file mode 100644
index 00000000000..f24f3404f21
--- /dev/null
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Resources/public-endpoints.php
@@ -0,0 +1,64 @@
+<?php
+return array(
+ 'version' => 2,
+ 'endpoints' => array(
+ '*/*' => array(
+ 'endpoint' => '{service}.{region}.amazonaws.com'
+ ),
+ 'cn-north-1/*' => array(
+ 'endpoint' => '{service}.{region}.amazonaws.com.cn',
+ 'signatureVersion' => 'v4'
+ ),
+ 'us-gov-west-1/iam' => array(
+ 'endpoint' => 'iam.us-gov.amazonaws.com'
+ ),
+ 'us-gov-west-1/sts' => array(
+ 'endpoint' => 'sts.us-gov.amazonaws.com'
+ ),
+ 'us-gov-west-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ '*/cloudfront' => array(
+ 'endpoint' => 'cloudfront.amazonaws.com'
+ ),
+ '*/iam' => array(
+ 'endpoint' => 'iam.amazonaws.com'
+ ),
+ '*/importexport' => array(
+ 'endpoint' => 'importexport.amazonaws.com'
+ ),
+ '*/route53' => array(
+ 'endpoint' => 'route53.amazonaws.com'
+ ),
+ '*/sts' => array(
+ 'endpoint' => 'sts.amazonaws.com'
+ ),
+ 'us-east-1/sdb' => array(
+ 'endpoint' => 'sdb.amazonaws.com'
+ ),
+ 'us-east-1/s3' => array(
+ 'endpoint' => 's3.amazonaws.com'
+ ),
+ 'us-west-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'us-west-2/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'eu-west-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'ap-southeast-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'ap-southeast-2/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'ap-northeast-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ ),
+ 'sa-east-1/s3' => array(
+ 'endpoint' => 's3-{region}.amazonaws.com'
+ )
+ )
+);
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/RulesEndpointProvider.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/RulesEndpointProvider.php
new file mode 100644
index 00000000000..ec57cb862ca
--- /dev/null
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/RulesEndpointProvider.php
@@ -0,0 +1,67 @@
+<?php
+namespace Aws\Common;
+
+/**
+ * Provides endpoints based on a rules configuration file.
+ */
+class RulesEndpointProvider
+{
+ /** @var array */
+ private $patterns;
+
+ /**
+ * @param array $patterns Hash of endpoint patterns mapping to endpoint
+ * configurations.
+ */
+ public function __construct(array $patterns)
+ {
+ $this->patterns = $patterns;
+ }
+
+ /**
+ * Creates and returns the default RulesEndpointProvider based on the
+ * public rule sets.
+ *
+ * @return self
+ */
+ public static function fromDefaults()
+ {
+ return new self(require __DIR__ . '/Resources/public-endpoints.php');
+ }
+
+ public function __invoke(array $args = array())
+ {
+ if (!isset($args['service'])) {
+ throw new \InvalidArgumentException('Requires a "service" value');
+ }
+
+ if (!isset($args['region'])) {
+ throw new \InvalidArgumentException('Requires a "region" value');
+ }
+
+ foreach ($this->getKeys($args['region'], $args['service']) as $key) {
+ if (isset($this->patterns['endpoints'][$key])) {
+ return $this->expand($this->patterns['endpoints'][$key], $args);
+ }
+ }
+
+ throw new \RuntimeException('Could not resolve endpoint');
+ }
+
+ private function expand(array $config, array $args)
+ {
+ $scheme = isset($args['scheme']) ? $args['scheme'] : 'https';
+ $config['endpoint'] = $scheme . '://' . str_replace(
+ array('{service}', '{region}'),
+ array($args['service'], $args['region']),
+ $config['endpoint']
+ );
+
+ return $config;
+ }
+
+ private function getKeys($region, $service)
+ {
+ return array("$region/$service", "$region/*", "*/$service", "*/*");
+ }
+}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Signature/SignatureV4.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Signature/SignatureV4.php
index fda63a95fc4..38b60b4594b 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Signature/SignatureV4.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Signature/SignatureV4.php
@@ -19,7 +19,6 @@ namespace Aws\Common\Signature;
use Aws\Common\Credentials\CredentialsInterface;
use Aws\Common\Enum\DateFormat;
use Aws\Common\HostNameUtils;
-use Guzzle\Http\Message\EntityEnclosingRequest;
use Guzzle\Http\Message\EntityEnclosingRequestInterface;
use Guzzle\Http\Message\RequestFactory;
use Guzzle\Http\Message\RequestInterface;
@@ -304,43 +303,42 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac
*/
private function createSigningContext(RequestInterface $request, $payload)
{
+ $signable = array(
+ 'host' => true,
+ 'date' => true,
+ 'content-md5' => true
+ );
+
// Normalize the path as required by SigV4 and ensure it's absolute
$canon = $request->getMethod() . "\n"
. $this->createCanonicalizedPath($request) . "\n"
. $this->getCanonicalizedQueryString($request) . "\n";
- // Create the canonical headers
- $headers = array();
+ $canonHeaders = array();
+
foreach ($request->getHeaders()->getAll() as $key => $values) {
$key = strtolower($key);
- if ($key != 'user-agent') {
- $headers[$key] = array();
- foreach ($values as $value) {
- $headers[$key][] = preg_replace('/\s+/', ' ', trim($value));
- }
- // Sort the value if there is more than one
- if (count($values) > 1) {
- sort($headers[$key]);
+ if (isset($signable[$key]) || substr($key, 0, 6) === 'x-amz-') {
+ $values = $values->toArray();
+ if (count($values) == 1) {
+ $values = $values[0];
+ } else {
+ sort($values);
+ $values = implode(',', $values);
}
+ $canonHeaders[$key] = $key . ':' . preg_replace('/\s+/', ' ', $values);
}
}
- // The headers must be sorted
- ksort($headers);
-
- // Continue to build the canonical request by adding headers
- foreach ($headers as $key => $values) {
- // Combine multi-value headers into a comma separated list
- $canon .= $key . ':' . implode(',', $values) . "\n";
- }
-
- // Create the signed headers
- $signedHeaders = implode(';', array_keys($headers));
- $canon .= "\n{$signedHeaders}\n{$payload}";
+ ksort($canonHeaders);
+ $signedHeadersString = implode(';', array_keys($canonHeaders));
+ $canon .= implode("\n", $canonHeaders) . "\n\n"
+ . $signedHeadersString . "\n"
+ . $payload;
return array(
'canonical_request' => $canon,
- 'signed_headers' => $signedHeaders
+ 'signed_headers' => $signedHeadersString
);
}
@@ -394,6 +392,8 @@ class SignatureV4 extends AbstractSignature implements EndpointSignatureInterfac
foreach ($queryParams as $key => $values) {
if (is_array($values)) {
sort($values);
+ } elseif ($values === 0) {
+ $values = array('0');
} elseif (!$values) {
$values = array('');
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Acp.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Acp.php
index 8325a2b6570..6c19f668400 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Acp.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Acp.php
@@ -54,7 +54,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable
*
* @param array $data Array of ACP data
*
- * @return self
+ * @return Acp
*/
public static function fromArray(array $data)
{
@@ -100,7 +100,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable
*
* @param Grantee $owner ACP policy owner
*
- * @return self
+ * @return $this
*
* @throws InvalidArgumentException if the grantee does not have an ID set
*/
@@ -130,7 +130,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable
*
* @param array|\Traversable $grants List of grants for the ACP
*
- * @return self
+ * @return $this
*
* @throws InvalidArgumentException
*/
@@ -167,7 +167,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable
*
* @param Grant $grant Grant to add
*
- * @return self
+ * @return $this
*/
public function addGrant(Grant $grant)
{
@@ -205,7 +205,7 @@ class Acp implements ToArrayInterface, \IteratorAggregate, \Countable
*
* @param AbstractCommand $command Command to be updated
*
- * @return self
+ * @return $this
*/
public function updateCommand(AbstractCommand $command)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/AcpBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/AcpBuilder.php
index 0e41c3cb0a0..b6d1be72167 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/AcpBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/AcpBuilder.php
@@ -36,11 +36,11 @@ class AcpBuilder
/**
* Static method for chainable instantiation
*
- * @return self
+ * @return static
*/
public static function newInstance()
{
- return new self;
+ return new static;
}
/**
@@ -49,7 +49,7 @@ class AcpBuilder
* @param string $id Owner identifier
* @param string $displayName Owner display name
*
- * @return self
+ * @return $this
*/
public function setOwner($id, $displayName = null)
{
@@ -65,7 +65,7 @@ class AcpBuilder
* @param string $id Grantee identifier
* @param string $displayName Grantee display name
*
- * @return self
+ * @return $this
*/
public function addGrantForUser($permission, $id, $displayName = null)
{
@@ -81,7 +81,7 @@ class AcpBuilder
* @param string $permission Permission for the Grant
* @param string $email Grantee email address
*
- * @return self
+ * @return $this
*/
public function addGrantForEmail($permission, $email)
{
@@ -97,7 +97,7 @@ class AcpBuilder
* @param string $permission Permission for the Grant
* @param string $group Grantee group
*
- * @return self
+ * @return $this
*/
public function addGrantForGroup($permission, $group)
{
@@ -113,7 +113,7 @@ class AcpBuilder
* @param string $permission Permission for the Grant
* @param Grantee $grantee The Grantee for the Grant
*
- * @return self
+ * @return $this
*/
public function addGrant($permission, Grantee $grantee)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/ClearBucket.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/ClearBucket.php
index 77ce9378f45..09982d8ae7d 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/ClearBucket.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/ClearBucket.php
@@ -81,7 +81,7 @@ class ClearBucket extends AbstractHasDispatcher
*
* @param string $bucket Name of the bucket to clear
*
- * @return self
+ * @return $this
*/
public function setBucket($bucket)
{
@@ -114,7 +114,7 @@ class ClearBucket extends AbstractHasDispatcher
*
* @param \Iterator $iterator Iterator used to yield the keys to be deleted
*
- * @return self
+ * @return $this
*/
public function setIterator(\Iterator $iterator)
{
@@ -129,7 +129,7 @@ class ClearBucket extends AbstractHasDispatcher
* @param string $mfa MFA token to send with each request. The value is the concatenation of the authentication
* device's serial number, a space, and the value displayed on your authentication device.
*
- * @return self
+ * @return $this
*/
public function setMfa($mfa)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsBatch.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsBatch.php
index 17d8af33a73..ab6425bbb87 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsBatch.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsBatch.php
@@ -38,7 +38,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator
* @param string $bucket Bucket that contains the objects to delete
* @param string $mfa MFA token to use with the request
*
- * @return self
+ * @return static
*/
public static function factory(AwsClientInterface $client, $bucket, $mfa = null)
{
@@ -47,7 +47,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator
->transferWith(new DeleteObjectsTransfer($client, $bucket, $mfa))
->build();
- return new self($batch);
+ return new static($batch);
}
/**
@@ -56,7 +56,7 @@ class DeleteObjectsBatch extends AbstractBatchDecorator
* @param string $key Key of the object
* @param string $versionId VersionID of the object
*
- * @return self
+ * @return $this
*/
public function addKey($key, $versionId = null)
{
@@ -82,6 +82,6 @@ class DeleteObjectsBatch extends AbstractBatchDecorator
throw new InvalidArgumentException('Item must be a DeleteObject command or array containing a Key and VersionId key.');
}
- return $this->decoratedBatch->add($item);
+ return parent::add($item);
}
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsTransfer.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsTransfer.php
index c3d3828c4e3..5918ff18ff7 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsTransfer.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/DeleteObjectsTransfer.php
@@ -64,7 +64,7 @@ class DeleteObjectsTransfer implements BatchTransferInterface
*
* @param string $token MFA token
*
- * @return self
+ * @return $this
*/
public function setMfa($token)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grant.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grant.php
index afc2757e8cc..2e35f059511 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grant.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grant.php
@@ -63,7 +63,7 @@ class Grant implements ToArrayInterface
*
* @param Grantee $grantee Affected grantee
*
- * @return self
+ * @return $this
*/
public function setGrantee(Grantee $grantee)
{
@@ -87,7 +87,7 @@ class Grant implements ToArrayInterface
*
* @param string $permission Permission applied
*
- * @return self
+ * @return $this
*
* @throws InvalidArgumentException
*/
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grantee.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grantee.php
index f49c70fca1c..7634b84a350 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grantee.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/Grantee.php
@@ -214,7 +214,7 @@ class Grantee implements ToArrayInterface
*/
public function getHeaderValue()
{
- $key = self::$headerMap[$this->type];
+ $key = static::$headerMap[$this->type];
return "{$key}=\"{$this->id}\"";
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/MultipartUpload/UploadBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/MultipartUpload/UploadBuilder.php
index cae7658d72e..e30f23a36cf 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/MultipartUpload/UploadBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Model/MultipartUpload/UploadBuilder.php
@@ -67,7 +67,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param string $bucket Name of the bucket
*
- * @return self
+ * @return $this
*/
public function setBucket($bucket)
{
@@ -79,7 +79,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param string $key Key of the object to upload
*
- * @return self
+ * @return $this
*/
public function setKey($key)
{
@@ -91,7 +91,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param int $minSize Minimum acceptable part size in bytes
*
- * @return self
+ * @return $this
*/
public function setMinPartSize($minSize)
{
@@ -107,7 +107,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param int $concurrency Concurrency level
*
- * @return self
+ * @return $this
*/
public function setConcurrency($concurrency)
{
@@ -121,7 +121,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param string $md5 MD5 hash of the entire body
*
- * @return self
+ * @return $this
*/
public function setMd5($md5)
{
@@ -137,7 +137,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param bool $calculateMd5 Set to true to calculate the MD5 hash of the body
*
- * @return self
+ * @return $this
*/
public function calculateMd5($calculateMd5)
{
@@ -152,7 +152,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param bool $usePartMd5 Set to true to calculate the MD5 has of each part
*
- * @return self
+ * @return $this
*/
public function calculatePartMd5($usePartMd5)
{
@@ -166,7 +166,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param Acp $acp ACP to set on the object
*
- * @return self
+ * @return $this
*/
public function setAcp(Acp $acp)
{
@@ -179,7 +179,7 @@ class UploadBuilder extends AbstractUploadBuilder
* @param string $name Option name
* @param string $value Option value
*
- * @return self
+ * @return $this
*/
public function setOption($name, $value)
{
@@ -193,7 +193,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param array $options Array of CreateMultipartUpload operation parameters
*
- * @return self
+ * @return $this
*/
public function addOptions(array $options)
{
@@ -207,7 +207,7 @@ class UploadBuilder extends AbstractUploadBuilder
*
* @param array $options Transfer options
*
- * @return self
+ * @return $this
*/
public function setTransferOptions(array $options)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Resources/s3-2006-03-01.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Resources/s3-2006-03-01.php
index 8739cef6a04..0d7b023f029 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Resources/s3-2006-03-01.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Resources/s3-2006-03-01.php
@@ -45,6 +45,11 @@ return array (
'https' => true,
'hostname' => 's3-eu-west-1.amazonaws.com',
),
+ 'eu-central-1' => array(
+ 'http' => true,
+ 'https' => true,
+ 'hostname' => 's3-eu-central-1.amazonaws.com',
+ ),
'ap-northeast-1' => array(
'http' => true,
'https' => true,
@@ -355,6 +360,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5',
),
+ 'CopySourceSSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-copy-source-server-side-encryption-aws-kms-key-id',
+ ),
'ACP' => array(
'type' => 'object',
'additionalProperties' => true,
@@ -564,6 +574,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'ACP' => array(
'type' => 'object',
'additionalProperties' => true,
@@ -1068,6 +1083,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'SaveAs' => array(
'location' => 'response_body',
),
@@ -1236,6 +1256,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
),
'errorResponses' => array(
array(
@@ -1843,10 +1868,22 @@ return array (
'location' => 'uri',
),
'TopicConfiguration' => array(
- 'required' => true,
'type' => 'object',
'location' => 'xml',
'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ ),
+ ),
'Event' => array(
'type' => 'string',
),
@@ -1855,6 +1892,59 @@ return array (
),
),
),
+ 'QueueConfiguration' => array(
+ 'type' => 'object',
+ 'location' => 'xml',
+ 'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Event' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ ),
+ ),
+ 'Queue' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ),
+ 'CloudFunctionConfiguration' => array(
+ 'type' => 'object',
+ 'location' => 'xml',
+ 'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Event' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ ),
+ ),
+ 'CloudFunction' => array(
+ 'type' => 'string',
+ ),
+ 'InvocationRole' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ),
),
),
'PutBucketPolicy' => array(
@@ -2241,6 +2331,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'ACP' => array(
'type' => 'object',
'additionalProperties' => true,
@@ -2399,6 +2494,11 @@ return array (
'Aws\\S3\\S3Client::explodeKey',
),
),
+ 'VersionId' => array(
+ 'type' => 'string',
+ 'location' => 'query',
+ 'sentAs' => 'versionId',
+ ),
'Days' => array(
'required' => true,
'type' => 'numeric',
@@ -2488,6 +2588,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
),
),
'UploadPartCopy' => array(
@@ -2602,6 +2707,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5',
),
+ 'CopySourceSSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'command.expects' => array(
'static' => true,
'default' => 'application/xml',
@@ -2655,6 +2765,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-version-id',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -2698,6 +2813,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -2750,6 +2870,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -3197,6 +3322,21 @@ return array (
'type' => 'object',
'location' => 'xml',
'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'sentAs' => 'Event',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ 'sentAs' => 'Event',
+ ),
+ ),
'Event' => array(
'type' => 'string',
),
@@ -3205,6 +3345,63 @@ return array (
),
),
),
+ 'QueueConfiguration' => array(
+ 'type' => 'object',
+ 'location' => 'xml',
+ 'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Event' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'sentAs' => 'Event',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ 'sentAs' => 'Event',
+ ),
+ ),
+ 'Queue' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ),
+ 'CloudFunctionConfiguration' => array(
+ 'type' => 'object',
+ 'location' => 'xml',
+ 'properties' => array(
+ 'Id' => array(
+ 'type' => 'string',
+ ),
+ 'Event' => array(
+ 'type' => 'string',
+ ),
+ 'Events' => array(
+ 'type' => 'array',
+ 'sentAs' => 'Event',
+ 'data' => array(
+ 'xmlFlattened' => true,
+ ),
+ 'items' => array(
+ 'name' => 'Event',
+ 'type' => 'string',
+ 'sentAs' => 'Event',
+ ),
+ ),
+ 'CloudFunction' => array(
+ 'type' => 'string',
+ ),
+ 'InvocationRole' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -3478,6 +3675,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -3676,6 +3878,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -3745,6 +3952,10 @@ return array (
'type' => 'string',
'location' => 'xml',
),
+ 'Delimiter' => array(
+ 'type' => 'string',
+ 'location' => 'xml',
+ ),
'NextUploadIdMarker' => array(
'type' => 'string',
'location' => 'xml',
@@ -3949,6 +4160,10 @@ return array (
'type' => 'string',
'location' => 'xml',
),
+ 'Delimiter' => array(
+ 'type' => 'string',
+ 'location' => 'xml',
+ ),
'MaxKeys' => array(
'type' => 'numeric',
'location' => 'xml',
@@ -4042,6 +4257,10 @@ return array (
'type' => 'string',
'location' => 'xml',
),
+ 'Delimiter' => array(
+ 'type' => 'string',
+ 'location' => 'xml',
+ ),
'MaxKeys' => array(
'type' => 'numeric',
'location' => 'xml',
@@ -4298,6 +4517,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -4349,6 +4573,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
@@ -4387,6 +4616,11 @@ return array (
'location' => 'header',
'sentAs' => 'x-amz-server-side-encryption-customer-key-MD5',
),
+ 'SSEKMSKeyId' => array(
+ 'type' => 'string',
+ 'location' => 'header',
+ 'sentAs' => 'x-amz-server-side-encryption-aws-kms-key-id',
+ ),
'RequestId' => array(
'location' => 'header',
'sentAs' => 'x-amz-request-id',
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3Client.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3Client.php
index 219e37eb92d..7f7c7cf22c4 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3Client.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3Client.php
@@ -24,7 +24,6 @@ use Aws\Common\Enum\ClientOptions as Options;
use Aws\Common\Exception\RuntimeException;
use Aws\Common\Exception\InvalidArgumentException;
use Aws\Common\Signature\SignatureV4;
-use Aws\Common\Signature\SignatureInterface;
use Aws\Common\Model\MultipartUpload\AbstractTransfer;
use Aws\S3\Exception\AccessDeniedException;
use Aws\S3\Exception\Parser\S3ExceptionParser;
@@ -156,7 +155,7 @@ class S3Client extends AbstractClient
*
* @param array|Collection $config Client configuration data
*
- * @return self
+ * @return S3Client
* @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/configuration.html#client-configuration-options
*/
public static function factory($config = array())
@@ -165,10 +164,10 @@ class S3Client extends AbstractClient
// Configure the custom exponential backoff plugin for retrying S3 specific errors
if (!isset($config[Options::BACKOFF])) {
- $config[Options::BACKOFF] = self::createBackoffPlugin($exceptionParser);
+ $config[Options::BACKOFF] = static::createBackoffPlugin($exceptionParser);
}
- $config[Options::SIGNATURE] = $signature = self::createSignature($config);
+ $config[Options::SIGNATURE] = $signature = static::createSignature($config);
$client = ClientBuilder::factory(__NAMESPACE__)
->setConfig($config)
@@ -222,7 +221,7 @@ class S3Client extends AbstractClient
// Add aliases for some S3 operations
$default = CompositeFactory::getDefaultChain($client);
$default->add(
- new AliasFactory($client, self::$commandAliases),
+ new AliasFactory($client, static::$commandAliases),
'Guzzle\Service\Command\Factory\ServiceDescriptionFactory'
);
$client->setCommandFactory($default);
@@ -266,11 +265,16 @@ class S3Client extends AbstractClient
{
$currentValue = isset($config[Options::SIGNATURE]) ? $config[Options::SIGNATURE] : null;
+ // Force v4 if no value is provided, a region is in the config, and
+ // the region starts with "cn-" or "eu-central-".
+ $requiresV4 = !$currentValue
+ && isset($config['region'])
+ && (strpos($config['region'], 'eu-central-') === 0
+ || strpos($config['region'], 'cn-') === 0);
+
// Use the Amazon S3 signature V4 when the value is set to "v4" or when
// the value is not set and the region starts with "cn-".
- if ($currentValue == 'v4' ||
- (!$currentValue && isset($config['region']) && substr($config['region'], 0, 3) == 'cn-')
- ) {
+ if ($currentValue == 'v4' || $requiresV4) {
// Force SignatureV4 for specific regions or if specified in the config
$currentValue = new S3SignatureV4('s3');
} elseif (!$currentValue || $currentValue == 's3') {
@@ -456,7 +460,7 @@ class S3Client extends AbstractClient
/**
* Register the Amazon S3 stream wrapper and associates it with this client object
*
- * @return self
+ * @return $this
*/
public function registerStreamWrapper()
{
@@ -515,8 +519,7 @@ class S3Client extends AbstractClient
->setTransferOptions($options->toArray())
->addOptions($options['params'])
->setOption('ACL', $acl)
- ->build()
- ->upload();
+ ->build();
if ($options['before_upload']) {
$transfer->getEventDispatcher()->addListener(
@@ -525,7 +528,7 @@ class S3Client extends AbstractClient
);
}
- return $transfer;
+ return $transfer->upload();
}
/**
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3SignatureV4.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3SignatureV4.php
index 7587af0fcba..edbb4fcd082 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3SignatureV4.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/S3SignatureV4.php
@@ -32,7 +32,10 @@ class S3SignatureV4 extends SignatureV4 implements S3SignatureInterface
public function signRequest(RequestInterface $request, CredentialsInterface $credentials)
{
if (!$request->hasHeader('x-amz-content-sha256')) {
- $request->setHeader('x-amz-content-sha256', $this->getPresignedPayload($request));
+ $request->setHeader(
+ 'x-amz-content-sha256',
+ $this->getPayload($request)
+ );
}
parent::signRequest($request, $credentials);
@@ -44,14 +47,7 @@ class S3SignatureV4 extends SignatureV4 implements S3SignatureInterface
*/
protected function getPresignedPayload(RequestInterface $request)
{
- $result = parent::getPresignedPayload($request);
-
- // If the body is empty, then sign with 'UNSIGNED-PAYLOAD'
- if ($result === self::DEFAULT_PAYLOAD) {
- $result = hash('sha256', 'UNSIGNED-PAYLOAD');
- }
-
- return $result;
+ return 'UNSIGNED-PAYLOAD';
}
/**
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/StreamWrapper.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/StreamWrapper.php
index 3bb85aae6df..b0bdb21f564 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/StreamWrapper.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/StreamWrapper.php
@@ -133,7 +133,7 @@ class StreamWrapper
}
stream_wrapper_register('s3', get_called_class(), STREAM_IS_URL);
- self::$client = $client;
+ static::$client = $client;
}
/**
@@ -172,7 +172,7 @@ class StreamWrapper
}
// When using mode "x" validate if the file exists before attempting to read
- if ($mode == 'x' && self::$client->doesObjectExist($params['Bucket'], $params['Key'], $this->getOptions())) {
+ if ($mode == 'x' && static::$client->doesObjectExist($params['Bucket'], $params['Key'], $this->getOptions())) {
$errors[] = "{$path} already exists on Amazon S3";
}
@@ -219,7 +219,7 @@ class StreamWrapper
}
try {
- self::$client->putObject($params);
+ static::$client->putObject($params);
return true;
} catch (\Exception $e) {
return $this->triggerError($e->getMessage());
@@ -283,7 +283,7 @@ class StreamWrapper
{
try {
$this->clearStatInfo($path);
- self::$client->deleteObject($this->getParams($path));
+ static::$client->deleteObject($this->getParams($path));
return true;
} catch (\Exception $e) {
return $this->triggerError($e->getMessage());
@@ -316,15 +316,15 @@ class StreamWrapper
public function url_stat($path, $flags)
{
// Check if this path is in the url_stat cache
- if (isset(self::$nextStat[$path])) {
- return self::$nextStat[$path];
+ if (isset(static::$nextStat[$path])) {
+ return static::$nextStat[$path];
}
$parts = $this->getParams($path);
if (!$parts['Key']) {
// Stat "directories": buckets, or "s3://"
- if (!$parts['Bucket'] || self::$client->doesBucketExist($parts['Bucket'])) {
+ if (!$parts['Bucket'] || static::$client->doesBucketExist($parts['Bucket'])) {
return $this->formatUrlStat($path);
} else {
return $this->triggerError("File or directory not found: {$path}", $flags);
@@ -333,7 +333,7 @@ class StreamWrapper
try {
try {
- $result = self::$client->headObject($parts)->toArray();
+ $result = static::$client->headObject($parts)->toArray();
if (substr($parts['Key'], -1, 1) == '/' && $result['ContentLength'] == 0) {
// Return as if it is a bucket to account for console bucket objects (e.g., zero-byte object "foo/")
return $this->formatUrlStat($path);
@@ -343,7 +343,7 @@ class StreamWrapper
}
} catch (NoSuchKeyException $e) {
// Maybe this isn't an actual key, but a prefix. Do a prefix listing of objects to determine.
- $result = self::$client->listObjects(array(
+ $result = static::$client->listObjects(array(
'Bucket' => $parts['Bucket'],
'Prefix' => rtrim($parts['Key'], '/') . '/',
'MaxKeys' => 1
@@ -404,7 +404,7 @@ class StreamWrapper
try {
if (!$params['Key']) {
- self::$client->deleteBucket(array('Bucket' => $params['Bucket']));
+ static::$client->deleteBucket(array('Bucket' => $params['Bucket']));
$this->clearStatInfo($path);
return true;
}
@@ -412,7 +412,7 @@ class StreamWrapper
// Use a key that adds a trailing slash if needed.
$prefix = rtrim($params['Key'], '/') . '/';
- $result = self::$client->listObjects(array(
+ $result = static::$client->listObjects(array(
'Bucket' => $params['Bucket'],
'Prefix' => $prefix,
'MaxKeys' => 1
@@ -476,7 +476,7 @@ class StreamWrapper
$operationParams['Delimiter'] = $delimiter;
}
- $objectIterator = self::$client->getIterator('ListObjects', $operationParams, array(
+ $objectIterator = static::$client->getIterator('ListObjects', $operationParams, array(
'return_prefixes' => true,
'sort_results' => true
));
@@ -554,7 +554,7 @@ class StreamWrapper
// Cache the object data for quick url_stat lookups used with
// RecursiveDirectoryIterator.
- self::$nextStat = array($key => $stat);
+ static::$nextStat = array($key => $stat);
$this->objectIterator->next();
return $result;
@@ -582,14 +582,14 @@ class StreamWrapper
try {
// Copy the object and allow overriding default parameters if desired, but by default copy metadata
- self::$client->copyObject($this->getOptions() + array(
+ static::$client->copyObject($this->getOptions() + array(
'Bucket' => $partsTo['Bucket'],
'Key' => $partsTo['Key'],
'CopySource' => '/' . $partsFrom['Bucket'] . '/' . rawurlencode($partsFrom['Key']),
'MetadataDirective' => 'COPY'
));
// Delete the original object
- self::$client->deleteObject(array(
+ static::$client->deleteObject(array(
'Bucket' => $partsFrom['Bucket'],
'Key' => $partsFrom['Key']
) + $this->getOptions());
@@ -685,7 +685,7 @@ class StreamWrapper
protected function openReadStream(array $params, array &$errors)
{
// Create the command and serialize the request
- $request = $this->getSignedRequest(self::$client->getCommand('GetObject', $params));
+ $request = $this->getSignedRequest(static::$client->getCommand('GetObject', $params));
// Create a stream that uses the EntityBody object
$factory = $this->getOption('stream_factory') ?: new PhpStreamRequestFactory();
$this->body = $factory->fromRequest($request, array(), array('stream_class' => 'Guzzle\Http\EntityBody'));
@@ -723,7 +723,7 @@ class StreamWrapper
{
try {
// Get the body of the object
- $this->body = self::$client->getObject($params)->get('Body');
+ $this->body = static::$client->getObject($params)->get('Body');
$this->body->seek(0, SEEK_END);
} catch (S3Exception $e) {
// The object does not exist, so use a simple write stream
@@ -810,7 +810,7 @@ class StreamWrapper
*/
protected function clearStatInfo($path = null)
{
- self::$nextStat = array();
+ static::$nextStat = array();
if ($path) {
clearstatcache(true, $path);
}
@@ -826,12 +826,12 @@ class StreamWrapper
*/
private function createBucket($path, array $params)
{
- if (self::$client->doesBucketExist($params['Bucket'])) {
+ if (static::$client->doesBucketExist($params['Bucket'])) {
return $this->triggerError("Directory already exists: {$path}");
}
try {
- self::$client->createBucket($params);
+ static::$client->createBucket($params);
$this->clearStatInfo($path);
return true;
} catch (\Exception $e) {
@@ -854,12 +854,12 @@ class StreamWrapper
$params['Body'] = '';
// Fail if this pseudo directory key already exists
- if (self::$client->doesObjectExist($params['Bucket'], $params['Key'])) {
+ if (static::$client->doesObjectExist($params['Bucket'], $params['Key'])) {
return $this->triggerError("Directory already exists: {$path}");
}
try {
- self::$client->putObject($params);
+ static::$client->putObject($params);
$this->clearStatInfo($path);
return true;
} catch (\Exception $e) {
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/AbstractSyncBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/AbstractSyncBuilder.php
index a2fe0fc5b8f..df69f4a8519 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/AbstractSyncBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/AbstractSyncBuilder.php
@@ -65,7 +65,7 @@ abstract class AbstractSyncBuilder
protected $debug;
/**
- * @return self
+ * @return static
*/
public static function getInstance()
{
@@ -77,7 +77,7 @@ abstract class AbstractSyncBuilder
*
* @param string $bucket Amazon S3 bucket name
*
- * @return self
+ * @return $this
*/
public function setBucket($bucket)
{
@@ -91,7 +91,7 @@ abstract class AbstractSyncBuilder
*
* @param S3Client $client Amazon S3 client
*
- * @return self
+ * @return $this
*/
public function setClient(S3Client $client)
{
@@ -105,7 +105,7 @@ abstract class AbstractSyncBuilder
*
* @param \Iterator $iterator
*
- * @return self
+ * @return $this
*/
public function setSourceIterator(\Iterator $iterator)
{
@@ -119,7 +119,7 @@ abstract class AbstractSyncBuilder
*
* @param FileNameConverterInterface $converter Filename to object key provider
*
- * @return self
+ * @return $this
*/
public function setSourceFilenameConverter(FilenameConverterInterface $converter)
{
@@ -133,7 +133,7 @@ abstract class AbstractSyncBuilder
*
* @param FileNameConverterInterface $converter Filename to object key provider
*
- * @return self
+ * @return $this
*/
public function setTargetFilenameConverter(FilenameConverterInterface $converter)
{
@@ -148,7 +148,7 @@ abstract class AbstractSyncBuilder
*
* @param string $baseDir Base directory, which will be deleted from each uploaded object key
*
- * @return self
+ * @return $this
*/
public function setBaseDir($baseDir)
{
@@ -164,7 +164,7 @@ abstract class AbstractSyncBuilder
*
* @param string $keyPrefix Prefix for each uploaded key
*
- * @return self
+ * @return $this
*/
public function setKeyPrefix($keyPrefix)
{
@@ -179,7 +179,7 @@ abstract class AbstractSyncBuilder
*
* @param string $delimiter Delimiter to use to separate paths
*
- * @return self
+ * @return $this
*/
public function setDelimiter($delimiter)
{
@@ -193,7 +193,7 @@ abstract class AbstractSyncBuilder
*
* @param array $params Associative array of PutObject (upload) GetObject (download) parameters
*
- * @return self
+ * @return $this
*/
public function setOperationParams(array $params)
{
@@ -207,7 +207,7 @@ abstract class AbstractSyncBuilder
*
* @param int $concurrency Number of concurrent transfers
*
- * @return self
+ * @return $this
*/
public function setConcurrency($concurrency)
{
@@ -221,7 +221,7 @@ abstract class AbstractSyncBuilder
*
* @param bool $force Set to true to force transfers without checking if it has changed
*
- * @return self
+ * @return $this
*/
public function force($force = false)
{
@@ -235,7 +235,7 @@ abstract class AbstractSyncBuilder
*
* @param bool|resource $enabledOrResource Set to true or false to enable or disable debug output. Pass an opened
* fopen resource to write to instead of writing to standard out.
- * @return self
+ * @return $this
*/
public function enableDebugOutput($enabledOrResource = true)
{
@@ -249,7 +249,7 @@ abstract class AbstractSyncBuilder
*
* @param string $search Regular expression search (in preg_match format). Any filename that matches this regex
* will not be transferred.
- * @return self
+ * @return $this
*/
public function addRegexFilter($search)
{
@@ -301,7 +301,7 @@ abstract class AbstractSyncBuilder
/**
* Hook to implement in subclasses
*
- * @return self
+ * @return AbstractSync
*/
abstract protected function specificBuild();
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/DownloadSyncBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/DownloadSyncBuilder.php
index b0a1e8cda4c..d9cd044449a 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/DownloadSyncBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/DownloadSyncBuilder.php
@@ -38,7 +38,7 @@ class DownloadSyncBuilder extends AbstractSyncBuilder
*
* @param string $directory Directory
*
- * @return self
+ * @return $this
*/
public function setDirectory($directory)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/UploadSyncBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/UploadSyncBuilder.php
index ad6333d687b..20830590692 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/UploadSyncBuilder.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Aws/S3/Sync/UploadSyncBuilder.php
@@ -36,7 +36,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder
*
* @param string $path Path that contains files to upload
*
- * @return self
+ * @return $this
*/
public function uploadFromDirectory($path)
{
@@ -54,7 +54,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder
*
* @param string $glob Glob expression
*
- * @return self
+ * @return $this
* @link http://www.php.net/manual/en/function.glob.php
*/
public function uploadFromGlob($glob)
@@ -71,7 +71,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder
*
* @param string $acl Canned ACL for each upload
*
- * @return self
+ * @return $this
*/
public function setAcl($acl)
{
@@ -85,7 +85,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder
*
* @param Acp $acp Access control policy
*
- * @return self
+ * @return $this
*/
public function setAcp(Acp $acp)
{
@@ -100,7 +100,7 @@ class UploadSyncBuilder extends AbstractSyncBuilder
*
* @param int $size Size threshold
*
- * @return self
+ * @return $this
*/
public function setMultipartUploadSize($size)
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ApcClassLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ApcClassLoader.php
index 8ee49fb45d3..513362a5030 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ApcClassLoader.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ApcClassLoader.php
@@ -15,7 +15,7 @@ namespace Symfony\Component\ClassLoader;
* ApcClassLoader implements a wrapping autoloader cached in APC for PHP 5.3.
*
* It expects an object implementing a findFile method to find the file. This
- * allow using it as a wrapper around the other loaders of the component (the
+ * allows using it as a wrapper around the other loaders of the component (the
* ClassLoader and the UniversalClassLoader for instance) but also around any
* other autoloader following this convention (the Composer one for instance)
*
@@ -46,7 +46,7 @@ class ApcClassLoader
/**
* The class loader object being decorated.
*
- * @var \Symfony\Component\ClassLoader\ClassLoader
+ * @var object
* A class loader object that implements the findFile() method.
*/
protected $decorated;
@@ -133,5 +133,4 @@ class ApcClassLoader
{
return call_user_func_array(array($this->decorated, $method), $args);
}
-
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ClassMapGenerator.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ClassMapGenerator.php
index 7f83dbc5592..efc95ec8be9 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ClassMapGenerator.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/ClassMapGenerator.php
@@ -71,7 +71,6 @@ class ClassMapGenerator
foreach ($classes as $class) {
$map[$class] = $path;
}
-
}
return $map;
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Psr4ClassLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Psr4ClassLoader.php
index 429812d1156..1c0c37e0988 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Psr4ClassLoader.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Psr4ClassLoader.php
@@ -32,7 +32,7 @@ class Psr4ClassLoader
public function addPrefix($prefix, $baseDir)
{
$prefix = trim($prefix, '\\').'\\';
- $baseDir = rtrim($baseDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
+ $baseDir = rtrim($baseDir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
$this->prefixes[] = array($prefix, $baseDir);
}
@@ -49,7 +49,7 @@ class Psr4ClassLoader
list($currentPrefix, $currentBaseDir) = $current;
if (0 === strpos($class, $currentPrefix)) {
$classWithoutPrefix = substr($class, strlen($currentPrefix));
- $file = $currentBaseDir . str_replace('\\', DIRECTORY_SEPARATOR, $classWithoutPrefix) . '.php';
+ $file = $currentBaseDir.str_replace('\\', DIRECTORY_SEPARATOR, $classWithoutPrefix).'.php';
if (file_exists($file)) {
return $file;
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/README.md b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/README.md
index fc222b1c9e3..3c785049d20 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/README.md
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/README.md
@@ -9,51 +9,63 @@ standard or the PEAR naming convention.
First, register the autoloader:
- require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+```php
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
- use Symfony\Component\ClassLoader\UniversalClassLoader;
+use Symfony\Component\ClassLoader\UniversalClassLoader;
- $loader = new UniversalClassLoader();
- $loader->register();
+$loader = new UniversalClassLoader();
+$loader->register();
+```
Then, register some namespaces with the `registerNamespace()` method:
- $loader->registerNamespace('Symfony', __DIR__.'/src');
- $loader->registerNamespace('Monolog', __DIR__.'/vendor/monolog/src');
+```php
+$loader->registerNamespace('Symfony', __DIR__.'/src');
+$loader->registerNamespace('Monolog', __DIR__.'/vendor/monolog/src');
+```
The `registerNamespace()` method takes a namespace prefix and a path where to
look for the classes as arguments.
You can also register a sub-namespaces:
- $loader->registerNamespace('Doctrine\\Common', __DIR__.'/vendor/doctrine-common/lib');
+```php
+$loader->registerNamespace('Doctrine\\Common', __DIR__.'/vendor/doctrine-common/lib');
+```
The order of registration is significant and the first registered namespace
takes precedence over later registered one.
You can also register more than one path for a given namespace:
- $loader->registerNamespace('Symfony', array(__DIR__.'/src', __DIR__.'/symfony/src'));
+```php
+$loader->registerNamespace('Symfony', array(__DIR__.'/src', __DIR__.'/symfony/src'));
+```
Alternatively, you can use the `registerNamespaces()` method to register more
than one namespace at once:
- $loader->registerNamespaces(array(
- 'Symfony' => array(__DIR__.'/src', __DIR__.'/symfony/src'),
- 'Doctrine\\Common' => __DIR__.'/vendor/doctrine-common/lib',
- 'Doctrine' => __DIR__.'/vendor/doctrine/lib',
- 'Monolog' => __DIR__.'/vendor/monolog/src',
- ));
+```php
+$loader->registerNamespaces(array(
+ 'Symfony' => array(__DIR__.'/src', __DIR__.'/symfony/src'),
+ 'Doctrine\\Common' => __DIR__.'/vendor/doctrine-common/lib',
+ 'Doctrine' => __DIR__.'/vendor/doctrine/lib',
+ 'Monolog' => __DIR__.'/vendor/monolog/src',
+));
+```
For better performance, you can use the APC based version of the universal
class loader:
- require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
- require_once __DIR__.'/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
+```php
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
- use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
+use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
- $loader = new ApcUniversalClassLoader('apc.prefix.');
+$loader = new ApcUniversalClassLoader('apc.prefix.');
+```
Furthermore, the component provides tools to aggregate classes into a single
file, which is especially useful to improve performance on servers that do not
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
index 38a17f28453..9755256c79a 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
@@ -55,13 +55,13 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue(class_exists($className), $message);
}
- public function getLoadClassTests()
- {
- return array(
+ public function getLoadClassTests()
+ {
+ return array(
array('\\Apc\\Namespaced\\Foo', 'Apc\\Namespaced\\Foo', '->loadClass() loads Apc\Namespaced\Foo class'),
array('Apc_Pearlike_Foo', 'Apc_Pearlike_Foo', '->loadClass() loads Apc_Pearlike_Foo class'),
);
- }
+ }
/**
* @dataProvider getLoadClassFromFallbackTests
@@ -77,15 +77,15 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue(class_exists($className), $message);
}
- public function getLoadClassFromFallbackTests()
- {
- return array(
+ public function getLoadClassFromFallbackTests()
+ {
+ return array(
array('\\Apc\\Namespaced\\Baz', 'Apc\\Namespaced\\Baz', '->loadClass() loads Apc\Namespaced\Baz class'),
array('Apc_Pearlike_Baz', 'Apc_Pearlike_Baz', '->loadClass() loads Apc_Pearlike_Baz class'),
array('\\Apc\\Namespaced\\FooBar', 'Apc\\Namespaced\\FooBar', '->loadClass() loads Apc\Namespaced\Baz class from fallback dir'),
array('Apc_Pearlike_FooBar', 'Apc_Pearlike_FooBar', '->loadClass() loads Apc_Pearlike_Baz class from fallback dir'),
);
- }
+ }
/**
* @dataProvider getLoadClassNamespaceCollisionTests
@@ -100,9 +100,9 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue(class_exists($className), $message);
}
- public function getLoadClassNamespaceCollisionTests()
- {
- return array(
+ public function getLoadClassNamespaceCollisionTests()
+ {
+ return array(
array(
array(
'Apc\\NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha',
@@ -136,7 +136,7 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
'->loadClass() loads NamespaceCollision\A\B\Bar from beta.',
),
);
- }
+ }
/**
* @dataProvider getLoadClassPrefixCollisionTests
@@ -150,9 +150,9 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
$this->assertTrue(class_exists($className), $message);
}
- public function getLoadClassPrefixCollisionTests()
- {
- return array(
+ public function getLoadClassPrefixCollisionTests()
+ {
+ return array(
array(
array(
'ApcPrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha/Apc',
@@ -186,5 +186,5 @@ class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
'->loadClass() loads ApcPrefixCollision_A_B_Bar from beta.',
),
);
- }
+ }
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
index b8600fc54ed..35617e363ea 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
@@ -76,7 +76,7 @@ class ClassMapGeneratorTest extends \PHPUnit_Framework_TestCase
'Namespaced\\Foo' => realpath(__DIR__).'/Fixtures/Namespaced/Foo.php',
'Namespaced\\Baz' => realpath(__DIR__).'/Fixtures/Namespaced/Baz.php',
'Namespaced\\WithComments' => realpath(__DIR__).'/Fixtures/Namespaced/WithComments.php',
- )
+ ),
),
array(__DIR__.'/Fixtures/beta/NamespaceCollision', array(
'NamespaceCollision\\A\\B\\Bar' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/A/B/Bar.php',
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/A.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/A.php
index dff891dcb79..b0f9425950f 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/A.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/A.php
@@ -2,4 +2,6 @@
namespace ClassesWithParents;
-class A extends B {}
+class A extends B
+{
+}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/B.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/B.php
index 196bf7a2d31..22c751a7e5d 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/B.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/B.php
@@ -2,4 +2,6 @@
namespace ClassesWithParents;
-class B implements CInterface {}
+class B implements CInterface
+{
+}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
index 26fabbd96e2..c63cef9233e 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
@@ -13,5 +13,4 @@ namespace ClassMap;
class SomeClass extends SomeParent implements SomeInterface
{
-
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
index 09d7a8f35a4..1fe5e09aa1f 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
@@ -13,5 +13,4 @@ namespace ClassMap;
interface SomeInterface
{
-
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
index 5a859a94607..ce2f9fc6c47 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
@@ -13,5 +13,4 @@ namespace ClassMap;
abstract class SomeParent
{
-
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
index d19e07fc11a..7db8cd3b67c 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
@@ -1,14 +1,24 @@
<?php
namespace {
- class A {}
+ class A
+ {
+ }
}
namespace Alpha {
- class A {}
- class B {}
+ class A
+ {
+ }
+ class B
+ {
+ }
}
namespace Beta {
- class A {}
- class B {}
+ class A
+ {
+ }
+ class B
+ {
+ }
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
index d5ef5e5aa25..b34b9dd28be 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
@@ -11,5 +11,9 @@
namespace Foo\Bar;
-class A {}
-class B {}
+class A
+{
+}
+class B
+{
+}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/deps/traits.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/deps/traits.php
index a5537ac92fa..82b30a6f9d0 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/deps/traits.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/deps/traits.php
@@ -1,7 +1,8 @@
<?php
trait TD
-{}
+{
+}
trait TZ
{
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
index 2d92c378e1a..70950be6ff2 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
@@ -25,6 +25,7 @@ namespace Foo {
class CBar implements IBar
{
- use TBar, TFooBar;
+ use TBar;
+ use TFooBar;
}
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Psr4ClassLoaderTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Psr4ClassLoaderTest.php
index 65cae485ad2..21a7afbd6e7 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Psr4ClassLoaderTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/Tests/Psr4ClassLoaderTest.php
@@ -24,7 +24,7 @@ class Psr4ClassLoaderTest extends \PHPUnit_Framework_TestCase
$loader = new Psr4ClassLoader();
$loader->addPrefix(
'Acme\\DemoLib',
- __DIR__ . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR . 'psr-4'
+ __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'psr-4'
);
$loader->loadClass($className);
$this->assertTrue(class_exists($className), sprintf('loadClass() should load %s', $className));
@@ -39,7 +39,7 @@ class Psr4ClassLoaderTest extends \PHPUnit_Framework_TestCase
array('Acme\\DemoLib\\Foo'),
array('Acme\\DemoLib\\Class_With_Underscores'),
array('Acme\\DemoLib\\Lets\\Go\\Deeper\\Foo'),
- array('Acme\\DemoLib\\Lets\\Go\\Deeper\\Class_With_Underscores')
+ array('Acme\\DemoLib\\Lets\\Go\\Deeper\\Class_With_Underscores'),
);
}
@@ -52,7 +52,7 @@ class Psr4ClassLoaderTest extends \PHPUnit_Framework_TestCase
$loader = new Psr4ClassLoader();
$loader->addPrefix(
'Acme\\DemoLib',
- __DIR__ . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR . 'psr-4'
+ __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'psr-4'
);
$loader->loadClass($className);
$this->assertFalse(class_exists($className), sprintf('loadClass() should not load %s', $className));
@@ -65,7 +65,7 @@ class Psr4ClassLoaderTest extends \PHPUnit_Framework_TestCase
{
return array(
array('Acme\\DemoLib\\I_Do_Not_Exist'),
- array('UnknownVendor\\SomeLib\\I_Do_Not_Exist')
+ array('UnknownVendor\\SomeLib\\I_Do_Not_Exist'),
);
}
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/UniversalClassLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/UniversalClassLoader.php
index 43f9a7d02c4..8a3149f3198 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/UniversalClassLoader.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/UniversalClassLoader.php
@@ -287,7 +287,6 @@ class UniversalClassLoader
return $file;
}
}
-
} else {
// PEAR-like class name
$normalizedClass = str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/XcacheClassLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/XcacheClassLoader.php
index 299a79af932..30096bc83f1 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/XcacheClassLoader.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/ClassLoader/XcacheClassLoader.php
@@ -12,7 +12,7 @@
namespace Symfony\Component\ClassLoader;
/**
- * XcacheClassLoader implements a wrapping autoloader cached in Xcache for PHP 5.3.
+ * XcacheClassLoader implements a wrapping autoloader cached in XCache for PHP 5.3.
*
* It expects an object implementing a findFile method to find the file. This
* allows using it as a wrapper around the other loaders of the component (the
@@ -43,31 +43,35 @@ namespace Symfony\Component\ClassLoader;
class XcacheClassLoader
{
private $prefix;
- private $classFinder;
+
+ /**
+ * @var object A class loader object that implements the findFile() method
+ */
+ private $decorated;
/**
* Constructor.
*
- * @param string $prefix A prefix to create a namespace in Xcache
- * @param object $classFinder An object that implements findFile() method.
+ * @param string $prefix The XCache namespace prefix to use.
+ * @param object $decorated A class loader object that implements the findFile() method.
*
* @throws \RuntimeException
* @throws \InvalidArgumentException
*
* @api
*/
- public function __construct($prefix, $classFinder)
+ public function __construct($prefix, $decorated)
{
- if (!extension_loaded('Xcache')) {
- throw new \RuntimeException('Unable to use XcacheClassLoader as Xcache is not enabled.');
+ if (!extension_loaded('xcache')) {
+ throw new \RuntimeException('Unable to use XcacheClassLoader as XCache is not enabled.');
}
- if (!method_exists($classFinder, 'findFile')) {
+ if (!method_exists($decorated, 'findFile')) {
throw new \InvalidArgumentException('The class finder must implement a "findFile" method.');
}
$this->prefix = $prefix;
- $this->classFinder = $classFinder;
+ $this->decorated = $decorated;
}
/**
@@ -116,10 +120,18 @@ class XcacheClassLoader
if (xcache_isset($this->prefix.$class)) {
$file = xcache_get($this->prefix.$class);
} else {
- $file = $this->classFinder->findFile($class);
+ $file = $this->decorated->findFile($class);
xcache_set($this->prefix.$class, $file);
}
return $file;
}
+
+ /**
+ * Passes through all unknown calls onto the decorated object.
+ */
+ public function __call($method, $args)
+ {
+ return call_user_func_array(array($this->decorated, $method), $args);
+ }
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
index 410226bb363..b797667208b 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
@@ -271,7 +271,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
if ($listener instanceof \Closure) {
$info += array(
'type' => 'Closure',
- 'pretty' => 'closure'
+ 'pretty' => 'closure',
);
} elseif (is_string($listener)) {
try {
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/EventDispatcherInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
index 3fdbfd8822e..c85ebdafc15 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
@@ -64,8 +64,8 @@ interface EventDispatcherInterface
/**
* Removes an event listener from the specified events.
*
- * @param string|array $eventName The event(s) to remove a listener from
- * @param callable $listener The listener to remove
+ * @param string $eventName The event to remove a listener from
+ * @param callable $listener The listener to remove
*/
public function removeListener($eventName, $listener);
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/README.md b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/README.md
index 22bf74fdc9d..c928f136692 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/README.md
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/README.md
@@ -4,16 +4,18 @@ EventDispatcher Component
The Symfony2 EventDispatcher component implements the Mediator pattern in a
simple and effective way to make your projects truly extensible.
- use Symfony\Component\EventDispatcher\EventDispatcher;
- use Symfony\Component\EventDispatcher\Event;
+```php
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\Event;
- $dispatcher = new EventDispatcher();
+$dispatcher = new EventDispatcher();
- $dispatcher->addListener('event_name', function (Event $event) {
- // ...
- });
+$dispatcher->addListener('event_name', function (Event $event) {
+ // ...
+});
- $dispatcher->dispatch('event_name');
+$dispatcher->dispatch('event_name');
+```
Resources
---------
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
index 8ccfabb1ca4..47dd5da1682 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
@@ -24,7 +24,7 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
$dispatcher = new EventDispatcher();
$tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
- $tdispatcher->addListener('foo', $listener = function () { ; });
+ $tdispatcher->addListener('foo', $listener = function () {; });
$listeners = $dispatcher->getListeners('foo');
$this->assertCount(1, $listeners);
$this->assertSame($listener, $listeners[0]);
@@ -38,7 +38,7 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
$dispatcher = new EventDispatcher();
$tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
- $tdispatcher->addListener('foo', $listener = function () { ; });
+ $tdispatcher->addListener('foo', $listener = function () {; });
$this->assertSame($dispatcher->getListeners('foo'), $tdispatcher->getListeners('foo'));
}
@@ -50,7 +50,7 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
$this->assertFalse($dispatcher->hasListeners('foo'));
$this->assertFalse($tdispatcher->hasListeners('foo'));
- $tdispatcher->addListener('foo', $listener = function () { ; });
+ $tdispatcher->addListener('foo', $listener = function () {; });
$this->assertTrue($dispatcher->hasListeners('foo'));
$this->assertTrue($tdispatcher->hasListeners('foo'));
}
@@ -75,7 +75,7 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
{
$dispatcher = new EventDispatcher();
$tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
- $tdispatcher->addListener('foo', $listener = function () { ; });
+ $tdispatcher->addListener('foo', $listener = function () {; });
$this->assertEquals(array(), $tdispatcher->getCalledListeners());
$this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getNotCalledListeners());
@@ -92,8 +92,8 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
$dispatcher = new EventDispatcher();
$tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
- $tdispatcher->addListener('foo', $listener1 = function () { ; });
- $tdispatcher->addListener('foo', $listener2 = function () { ; });
+ $tdispatcher->addListener('foo', $listener1 = function () {; });
+ $tdispatcher->addListener('foo', $listener2 = function () {; });
$logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
$logger->expects($this->at(1))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
@@ -108,7 +108,7 @@ class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
$dispatcher = new EventDispatcher();
$tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
$tdispatcher->addListener('foo', $listener1 = function (Event $event) { $event->stopPropagation(); });
- $tdispatcher->addListener('foo', $listener2 = function () { ; });
+ $tdispatcher->addListener('foo', $listener2 = function () {; });
$logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
$logger->expects($this->at(1))->method('debug')->with("Listener \"closure\" stopped propagation of the event \"foo\".");
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
index 5959db0d422..b291e1ee3c4 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
@@ -37,7 +37,10 @@ class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase
->method('getClass')
->will($this->returnValue('stdClass'));
- $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder');
+ $builder = $this->getMock(
+ 'Symfony\Component\DependencyInjection\ContainerBuilder',
+ array('hasDefinition', 'findTaggedServiceIds', 'getDefinition')
+ );
$builder->expects($this->any())
->method('hasDefinition')
->will($this->returnValue(true));
@@ -69,7 +72,10 @@ class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase
->method('getClass')
->will($this->returnValue('Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService'));
- $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder');
+ $builder = $this->getMock(
+ 'Symfony\Component\DependencyInjection\ContainerBuilder',
+ array('hasDefinition', 'findTaggedServiceIds', 'getDefinition', 'findDefinition')
+ );
$builder->expects($this->any())
->method('hasDefinition')
->will($this->returnValue(true));
@@ -136,5 +142,7 @@ class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase
class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
{
- public static function getSubscribedEvents() {}
+ public static function getSubscribedEvents()
+ {
+ }
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
index efc0c29fab8..2bd0750b141 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
@@ -362,7 +362,7 @@ class TestEventSubscriberWithMultipleListeners implements EventSubscriberInterfa
{
return array('pre.foo' => array(
array('preFoo1'),
- array('preFoo2', 10)
+ array('preFoo2', 10),
));
}
}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
index 5dfda92f2af..1090bcb2960 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
@@ -18,7 +18,6 @@ use Symfony\Component\EventDispatcher\GenericEvent;
*/
class GenericEventTest extends \PHPUnit_Framework_TestCase
{
-
/**
* @var GenericEvent
*/
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/composer.json
index 3715ece302f..75fd243d529 100644
--- a/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/composer.json
+++ b/apps/files_external/3rdparty/aws-sdk-php/Symfony/Component/EventDispatcher/composer.json
@@ -19,7 +19,7 @@
"php": ">=5.3.3"
},
"require-dev": {
- "symfony/dependency-injection": "~2.0",
+ "symfony/dependency-injection": "~2.0,<2.6.0",
"symfony/config": "~2.0",
"symfony/stopwatch": "~2.2",
"psr/log": "~1.0"
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index ea14f7adbcf..707563096f8 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -177,3 +177,5 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array(
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Root'))));
+$mountProvider = new \OCA\Files_External\Config\ConfigAdapter();
+\OC::$server->getMountProviderCollection()->registerProvider($mountProvider);
diff --git a/apps/files_external/img/app.svg b/apps/files_external/img/app.svg
index df1bfd163ff..6cafe174f60 100644
--- a/apps/files_external/img/app.svg
+++ b/apps/files_external/img/app.svg
@@ -1,212 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- height="32px"
- width="32px"
- version="1.1"
- id="svg2"
- inkscape:version="0.48.5 r10040"
- sodipodi:docname="app.svg">
- <metadata
- id="metadata80">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1014"
- id="namedview78"
- showgrid="false"
- inkscape:zoom="7.375"
- inkscape:cx="-13.559322"
- inkscape:cy="16"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg2" />
- <defs
- id="defs4">
- <linearGradient
- id="m"
- y2="21.387"
- gradientUnits="userSpaceOnUse"
- x2="27.557"
- gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)"
- y1="7.1627"
- x1="27.557">
- <stop
- stop-color="#fff"
- offset="0"
- id="stop7" />
- <stop
- stop-color="#fff"
- stop-opacity=".23529"
- offset=".0097359"
- id="stop9" />
- <stop
- stop-color="#fff"
- stop-opacity=".15686"
- offset=".99001"
- id="stop11" />
- <stop
- stop-color="#fff"
- stop-opacity=".39216"
- offset="1"
- id="stop13" />
- </linearGradient>
- <linearGradient
- id="l"
- y2="43.761"
- gradientUnits="userSpaceOnUse"
- x2="35.793"
- gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)"
- y1="17.118"
- x1="35.793">
- <stop
- stop-color="#b4cee1"
- offset="0"
- id="stop16" />
- <stop
- stop-color="#5d9fcd"
- offset="1"
- id="stop18" />
- </linearGradient>
- <linearGradient
- id="k"
- y2="609.51"
- gradientUnits="userSpaceOnUse"
- x2="302.86"
- gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)"
- y1="366.65"
- x1="302.86">
- <stop
- stop-opacity="0"
- offset="0"
- id="stop21" />
- <stop
- offset=".5"
- id="stop23" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop25" />
- </linearGradient>
- <radialGradient
- id="n"
- gradientUnits="userSpaceOnUse"
- cy="486.65"
- cx="605.71"
- gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)"
- r="117.14">
- <stop
- offset="0"
- id="stop28" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop30" />
- </radialGradient>
- <radialGradient
- id="o"
- gradientUnits="userSpaceOnUse"
- cy="486.65"
- cx="605.71"
- gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)"
- r="117.14">
- <stop
- offset="0"
- id="stop33" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop35" />
- </radialGradient>
- <linearGradient
- id="j"
- y2="34.143"
- gradientUnits="userSpaceOnUse"
- x2="21.37"
- gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)"
- y1="4.7324"
- x1="21.37">
- <stop
- stop-color="#fff"
- offset="0"
- id="stop38" />
- <stop
- stop-color="#fff"
- stop-opacity=".23529"
- offset=".11063"
- id="stop40" />
- <stop
- stop-color="#fff"
- stop-opacity=".15686"
- offset=".99001"
- id="stop42" />
- <stop
- stop-color="#fff"
- stop-opacity=".39216"
- offset="1"
- id="stop44" />
- </linearGradient>
- <linearGradient
- id="i"
- y2="16"
- gradientUnits="userSpaceOnUse"
- x2="62.989"
- gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)"
- y1="13"
- x1="62.989">
- <stop
- stop-color="#f9f9f9"
- offset="0"
- id="stop47" />
- <stop
- stop-color="#d8d8d8"
- offset="1"
- id="stop49" />
- </linearGradient>
- <linearGradient
- id="d"
- y2="3.6337"
- gradientUnits="userSpaceOnUse"
- y1="53.514"
- gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)"
- x2="-51.786"
- x1="-51.786">
- <stop
- stop-opacity=".32174"
- offset="0"
- id="stop52" />
- <stop
- stop-opacity=".27826"
- offset="1"
- id="stop54" />
- </linearGradient>
- </defs>
- <path
- d="m 14.902928,3.2372882 4.76117,4.5146377 -7.141758,6.7719561 4.761174,4.514639 7.141756,-6.771956 4.761171,4.514636 V 3.2372882 H 14.902928 z M 5.3805857,5.4946057 C 4.0617412,5.4946057 3,6.501372 3,7.7519259 V 25.810477 c 0,1.250555 1.0617412,2.257319 2.3805857,2.257319 H 24.42527 c 1.318844,0 2.380584,-1.006764 2.380584,-2.257319 v -6.771956 l -2.380584,-2.25732 v 9.029276 H 5.3805857 V 7.7519259 H 14.902928 L 12.52234,5.4946057 H 5.3805857 z"
- id="path76"
- inkscape:connector-curvature="0"
- style="opacity:0.7;fill:#ffffff;fill-opacity:1" />
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <path d="m14.903 3.2373 4.7612 4.5146-7.1418 6.772 4.7612 4.5146 7.1418-6.772 4.7612 4.5146v-13.545h-14.283zm-9.5224 2.2573c-1.3189 0-2.3806 1.0068-2.3806 2.2573v18.058c0 1.2506 1.0617 2.2573 2.3806 2.2573h19.044c1.3188 0 2.3806-1.0068 2.3806-2.2573v-6.772l-2.3806-2.2573v9.0293h-19.044v-18.058h9.522l-2.381-2.2574h-7.1414z" fill="#fff"/>
</svg>
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 75d45ae1924..ee3d0b736da 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -468,14 +468,14 @@ $(document).ready(function() {
OC.AppConfig.setValue('files_external', 'allow_user_mounting', 'no');
$('#userMountingBackends').addClass('hidden');
}
- OC.msg.finishedSaving('#userMountingMsg', {status: 'success', data: {message: t('settings', 'Saved')}});
+ OC.msg.finishedSaving('#userMountingMsg', {status: 'success', data: {message: t('files_external', 'Saved')}});
});
$('input[name="allowUserMountingBackends\\[\\]"]').bind('change', function() {
OC.msg.startSaving('#userMountingMsg');
var userMountingBackends = $('input[name="allowUserMountingBackends\\[\\]"]:checked').map(function(){return $(this).val();}).get();
OC.AppConfig.setValue('files_external', 'user_mounting_backends', userMountingBackends.join());
- OC.msg.finishedSaving('#userMountingMsg', {status: 'success', data: {message: t('settings', 'Saved')}});
+ OC.msg.finishedSaving('#userMountingMsg', {status: 'success', data: {message: t('files_external', 'Saved')}});
// disable allowUserMounting
if(userMountingBackends.length === 0) {
diff --git a/apps/files_external/l10n/ast.js b/apps/files_external/l10n/ast.js
index d1d9f05b498..b8f3b1b366d 100644
--- a/apps/files_external/l10n/ast.js
+++ b/apps/files_external/l10n/ast.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupu)",
"Saved" : "Guardáu",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "y",
"<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>Nota:</b> El soporte de cURL en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
"<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>Nota:</b> El soporte de FTP en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" nun ta instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
diff --git a/apps/files_external/l10n/ast.json b/apps/files_external/l10n/ast.json
index eeca7714b31..675949ef750 100644
--- a/apps/files_external/l10n/ast.json
+++ b/apps/files_external/l10n/ast.json
@@ -52,7 +52,6 @@
"(group)" : "(grupu)",
"Saved" : "Guardáu",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "y",
"<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>Nota:</b> El soporte de cURL en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
"<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>Nota:</b> El soporte de FTP en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" nun ta instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.",
diff --git a/apps/files_external/l10n/bg_BG.js b/apps/files_external/l10n/bg_BG.js
index 1944af503f1..6f292358c18 100644
--- a/apps/files_external/l10n/bg_BG.js
+++ b/apps/files_external/l10n/bg_BG.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(група)",
"Saved" : "Запазено",
"<b>Note:</b> " : "<b>Бележка:</b> ",
- " and " : "и",
"<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>Note:</b> PHP подръжката на cURL не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
"<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>Note:</b> PHP подръжката на FTP не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" не е инсталиран. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
diff --git a/apps/files_external/l10n/bg_BG.json b/apps/files_external/l10n/bg_BG.json
index 0564415c3d6..a068e6dce3d 100644
--- a/apps/files_external/l10n/bg_BG.json
+++ b/apps/files_external/l10n/bg_BG.json
@@ -52,7 +52,6 @@
"(group)" : "(група)",
"Saved" : "Запазено",
"<b>Note:</b> " : "<b>Бележка:</b> ",
- " and " : "и",
"<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>Note:</b> PHP подръжката на cURL не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
"<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>Note:</b> PHP подръжката на FTP не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" не е инсталиран. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.",
diff --git a/apps/files_external/l10n/bn_BD.js b/apps/files_external/l10n/bn_BD.js
index 1afb8c66ee1..9d53353d107 100644
--- a/apps/files_external/l10n/bn_BD.js
+++ b/apps/files_external/l10n/bn_BD.js
@@ -33,7 +33,6 @@ OC.L10N.register(
"(group)" : "(গোষ্ঠি)",
"Saved" : "সংরক্ষণ করা হলো",
"<b>Note:</b> " : "<b>দ্রষ্টব্য:</b> ",
- " and " : "এবং",
"Name" : "রাম",
"External Storage" : "বাহ্যিক সংরক্ষণাগার",
"Folder name" : "ফোলডারের নাম",
diff --git a/apps/files_external/l10n/bn_BD.json b/apps/files_external/l10n/bn_BD.json
index 975bf7cace7..907cc52d1b0 100644
--- a/apps/files_external/l10n/bn_BD.json
+++ b/apps/files_external/l10n/bn_BD.json
@@ -31,7 +31,6 @@
"(group)" : "(গোষ্ঠি)",
"Saved" : "সংরক্ষণ করা হলো",
"<b>Note:</b> " : "<b>দ্রষ্টব্য:</b> ",
- " and " : "এবং",
"Name" : "রাম",
"External Storage" : "বাহ্যিক সংরক্ষণাগার",
"Folder name" : "ফোলডারের নাম",
diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js
index 4663654f63c..027abb551a3 100644
--- a/apps/files_external/l10n/ca.js
+++ b/apps/files_external/l10n/ca.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grup)",
"Saved" : "Desat",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "i",
"<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>Nota:</b> El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<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>Nota:</b> El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json
index 6bd1dcca39b..4ebb0c708a7 100644
--- a/apps/files_external/l10n/ca.json
+++ b/apps/files_external/l10n/ca.json
@@ -52,7 +52,6 @@
"(group)" : "(grup)",
"Saved" : "Desat",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "i",
"<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>Nota:</b> El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<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>Nota:</b> El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js
index 29af393cf07..8726da64020 100644
--- a/apps/files_external/l10n/cs_CZ.js
+++ b/apps/files_external/l10n/cs_CZ.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(skupina)",
"Saved" : "Uloženo",
"<b>Note:</b> " : "<b>Poznámka:</b>",
- " and " : "a",
+ "and" : "a",
"<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>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<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>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.",
diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json
index f8acc7d469d..ce99130aef6 100644
--- a/apps/files_external/l10n/cs_CZ.json
+++ b/apps/files_external/l10n/cs_CZ.json
@@ -52,7 +52,7 @@
"(group)" : "(skupina)",
"Saved" : "Uloženo",
"<b>Note:</b> " : "<b>Poznámka:</b>",
- " and " : "a",
+ "and" : "a",
"<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>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<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>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.",
diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js
index 5420917e2a9..6c1f15753b2 100644
--- a/apps/files_external/l10n/da.js
+++ b/apps/files_external/l10n/da.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(gruppe)",
"Saved" : "Gemt",
"<b>Note:</b> " : "<b>Note:</b> ",
- " and " : "og",
+ "and" : "og",
"<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>Bemærk:</b> cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.",
"<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>Bemærk:</b> FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.",
diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json
index d5c468a5d8e..732dcbfcb97 100644
--- a/apps/files_external/l10n/da.json
+++ b/apps/files_external/l10n/da.json
@@ -52,7 +52,7 @@
"(group)" : "(gruppe)",
"Saved" : "Gemt",
"<b>Note:</b> " : "<b>Note:</b> ",
- " and " : "og",
+ "and" : "og",
"<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>Bemærk:</b> cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.",
"<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>Bemærk:</b> FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.",
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index d67bda49b4d..11c64fcfd11 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_external",
{
- "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
- "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
"Please provide a valid Dropbox app key and secret." : "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.",
"Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s",
"Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s",
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Saved" : "Gespeichert",
"<b>Note:</b> " : "<b>Hinweis:</b> ",
- " and " : "und",
+ "and" : "und",
"<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.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index fb4467cc1f2..42ba188d6d8 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -1,6 +1,6 @@
{ "translations": {
- "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
- "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
"Please provide a valid Dropbox app key and secret." : "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.",
"Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s",
"Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s",
@@ -52,7 +52,7 @@
"(group)" : "(group)",
"Saved" : "Gespeichert",
"<b>Note:</b> " : "<b>Hinweis:</b> ",
- " and " : "und",
+ "and" : "und",
"<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.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index d12b171f639..dc28472740d 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files_external",
{
- "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
- "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
"Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.",
"Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s",
"Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s",
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Saved" : "Gespeichert",
"<b>Note:</b> " : "<b>Hinweis:</b> ",
- " and " : "und",
+ "and" : "und",
"<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 wenden Sie sich zur Installation an Ihren 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 wenden Sie sich zur Installation an Ihren Systemadministrator.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.",
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 43c24e0c94a..f252d9e7604 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -1,6 +1,6 @@
{ "translations": {
- "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
- "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.",
"Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.",
"Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s",
"Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s",
@@ -52,7 +52,7 @@
"(group)" : "(group)",
"Saved" : "Gespeichert",
"<b>Note:</b> " : "<b>Hinweis:</b> ",
- " and " : "und",
+ "and" : "und",
"<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 wenden Sie sich zur Installation an Ihren 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 wenden Sie sich zur Installation an Ihren Systemadministrator.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.",
diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js
index 28105a01d6b..0860e1998f7 100644
--- a/apps/files_external/l10n/el.js
+++ b/apps/files_external/l10n/el.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(ομάδα)",
"Saved" : "Αποθηκεύτηκαν",
"<b>Note:</b> " : "<b>Σημείωση:</b> ",
- " and " : "και",
"<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>Σημείωση:</b> Η υποστήριξη cURL στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Η προσάρτηση του %s δεν είναι δυνατή. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
"<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>Σημείωση:</b> Η υποστήριξη FTP στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση του %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Σημείωση:</b> Η επέκταση \"%s\" δεν είναι εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json
index 4be10506a02..e0cbb6c29a2 100644
--- a/apps/files_external/l10n/el.json
+++ b/apps/files_external/l10n/el.json
@@ -52,7 +52,6 @@
"(group)" : "(ομάδα)",
"Saved" : "Αποθηκεύτηκαν",
"<b>Note:</b> " : "<b>Σημείωση:</b> ",
- " and " : "και",
"<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>Σημείωση:</b> Η υποστήριξη cURL στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Η προσάρτηση του %s δεν είναι δυνατή. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
"<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>Σημείωση:</b> Η υποστήριξη FTP στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση του %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Σημείωση:</b> Η επέκταση \"%s\" δεν είναι εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.",
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index 9f97d2c488c..f0bffb1b0f5 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(group)",
"Saved" : "Saved",
"<b>Note:</b> " : "<b>Note:</b> ",
- " and " : " and ",
+ "and" : "and",
"<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>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>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>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>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index d4e7ad11bbe..5e62649ab87 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -52,7 +52,7 @@
"(group)" : "(group)",
"Saved" : "Saved",
"<b>Note:</b> " : "<b>Note:</b> ",
- " and " : " and ",
+ "and" : "and",
"<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>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>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>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>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
diff --git a/apps/files_external/l10n/eo.js b/apps/files_external/l10n/eo.js
index 1d5014cdf23..5e9b6aa2ae1 100644
--- a/apps/files_external/l10n/eo.js
+++ b/apps/files_external/l10n/eo.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Personal" : "Persona",
"Saved" : "Konservita",
"<b>Note:</b> " : "<b>Noto:</b>",
- " and " : "kaj",
"Name" : "Nomo",
"External Storage" : "Malena memorilo",
"Folder name" : "Dosierujnomo",
diff --git a/apps/files_external/l10n/eo.json b/apps/files_external/l10n/eo.json
index cf63614fb88..79e4c5cbbfb 100644
--- a/apps/files_external/l10n/eo.json
+++ b/apps/files_external/l10n/eo.json
@@ -36,7 +36,6 @@
"Personal" : "Persona",
"Saved" : "Konservita",
"<b>Note:</b> " : "<b>Noto:</b>",
- " and " : "kaj",
"Name" : "Nomo",
"External Storage" : "Malena memorilo",
"Folder name" : "Dosierujnomo",
diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js
index 9306558b346..69911f82bc1 100644
--- a/apps/files_external/l10n/es.js
+++ b/apps/files_external/l10n/es.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Saved" : "Guardado",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "y",
+ "and" : "y",
"<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>Nota:</b> El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
"<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>Nota:</b> El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json
index 1d9067106eb..cadc03a0b74 100644
--- a/apps/files_external/l10n/es.json
+++ b/apps/files_external/l10n/es.json
@@ -52,7 +52,7 @@
"(group)" : "(grupo)",
"Saved" : "Guardado",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "y",
+ "and" : "y",
"<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>Nota:</b> El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
"<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>Nota:</b> El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
diff --git a/apps/files_external/l10n/et_EE.js b/apps/files_external/l10n/et_EE.js
index 226190cb5f8..58daa2d3524 100644
--- a/apps/files_external/l10n/et_EE.js
+++ b/apps/files_external/l10n/et_EE.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupp)",
"Saved" : "Salvestatud",
"<b>Note:</b> " : "<b>Märkus:</b>",
- " and " : "ja",
"<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>Märkus:</b> cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.",
"<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>Märkus:</b> FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.",
diff --git a/apps/files_external/l10n/et_EE.json b/apps/files_external/l10n/et_EE.json
index a32eca9e8c2..4b401317634 100644
--- a/apps/files_external/l10n/et_EE.json
+++ b/apps/files_external/l10n/et_EE.json
@@ -52,7 +52,6 @@
"(group)" : "(grupp)",
"Saved" : "Salvestatud",
"<b>Note:</b> " : "<b>Märkus:</b>",
- " and " : "ja",
"<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>Märkus:</b> cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.",
"<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>Märkus:</b> FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.",
diff --git a/apps/files_external/l10n/eu.js b/apps/files_external/l10n/eu.js
index db535359491..b8da6ca803e 100644
--- a/apps/files_external/l10n/eu.js
+++ b/apps/files_external/l10n/eu.js
@@ -53,7 +53,6 @@ OC.L10N.register(
"(group)" : "(taldea)",
"Saved" : "Gordeta",
"<b>Note:</b> " : "<b>Oharra:</b>",
- " and " : "eta",
"<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>Oharra:</b> :PHPko cURL euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
"<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>Oharra:</b> :PHPko FTP euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Oharra:</b>\"%s\" euskarria ez dago instalatuta Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
diff --git a/apps/files_external/l10n/eu.json b/apps/files_external/l10n/eu.json
index a5c642bd772..9469c7fc45c 100644
--- a/apps/files_external/l10n/eu.json
+++ b/apps/files_external/l10n/eu.json
@@ -51,7 +51,6 @@
"(group)" : "(taldea)",
"Saved" : "Gordeta",
"<b>Note:</b> " : "<b>Oharra:</b>",
- " and " : "eta",
"<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>Oharra:</b> :PHPko cURL euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
"<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>Oharra:</b> :PHPko FTP euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Oharra:</b>\"%s\" euskarria ez dago instalatuta Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ",
diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js
index f7895f842c3..37057c19ce1 100644
--- a/apps/files_external/l10n/fi_FI.js
+++ b/apps/files_external/l10n/fi_FI.js
@@ -19,8 +19,10 @@ OC.L10N.register(
"Secure ftps://" : "Salattu ftps://",
"Timeout of HTTP requests in seconds" : "HTTP-pyyntöjen aikakatkaisu sekunneissa",
"Share" : "Jaa",
+ "Username as share" : "Käyttäjänimi jakona",
"URL" : "Verkko-osoite",
"Secure https://" : "Salattu https://",
+ "Remote subfolder" : "Etäalikansio",
"Access granted" : "Pääsy sallittu",
"Error configuring Dropbox storage" : "Virhe Dropbox levyn asetuksia tehtäessä",
"Grant access" : "Salli pääsy",
@@ -31,7 +33,7 @@ OC.L10N.register(
"(group)" : "(ryhmä)",
"Saved" : "Tallennettu",
"<b>Note:</b> " : "<b>Huomio:</b> ",
- " and " : "ja",
+ "and" : "ja",
"<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>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.",
"<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>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.",
diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json
index dad235128fb..bf127e1b9b2 100644
--- a/apps/files_external/l10n/fi_FI.json
+++ b/apps/files_external/l10n/fi_FI.json
@@ -17,8 +17,10 @@
"Secure ftps://" : "Salattu ftps://",
"Timeout of HTTP requests in seconds" : "HTTP-pyyntöjen aikakatkaisu sekunneissa",
"Share" : "Jaa",
+ "Username as share" : "Käyttäjänimi jakona",
"URL" : "Verkko-osoite",
"Secure https://" : "Salattu https://",
+ "Remote subfolder" : "Etäalikansio",
"Access granted" : "Pääsy sallittu",
"Error configuring Dropbox storage" : "Virhe Dropbox levyn asetuksia tehtäessä",
"Grant access" : "Salli pääsy",
@@ -29,7 +31,7 @@
"(group)" : "(ryhmä)",
"Saved" : "Tallennettu",
"<b>Note:</b> " : "<b>Huomio:</b> ",
- " and " : "ja",
+ "and" : "ja",
"<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>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.",
"<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>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.",
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 5885af24199..08bee38a2d8 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
- " and " : "et",
+ "and" : "et",
"<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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Attention : </b> \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index e1e2b2eccc4..a58251b5ee2 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -52,7 +52,7 @@
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
- " and " : "et",
+ "and" : "et",
"<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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Attention : </b> \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_external/l10n/gl.js b/apps/files_external/l10n/gl.js
index 1ce8dfcc783..704be53702a 100644
--- a/apps/files_external/l10n/gl.js
+++ b/apps/files_external/l10n/gl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Saved" : "Gardado",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "e",
"<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>Nota:</b> A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
"<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>Nota:</b> A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
diff --git a/apps/files_external/l10n/gl.json b/apps/files_external/l10n/gl.json
index 10a8e4d467b..5039cde2c4b 100644
--- a/apps/files_external/l10n/gl.json
+++ b/apps/files_external/l10n/gl.json
@@ -52,7 +52,6 @@
"(group)" : "(grupo)",
"Saved" : "Gardado",
"<b>Note:</b> " : "<b>Nota:</b> ",
- " and " : "e",
"<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>Nota:</b> A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
"<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>Nota:</b> A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
diff --git a/apps/files_external/l10n/hr.js b/apps/files_external/l10n/hr.js
index c166841d9c6..8c595cae15e 100644
--- a/apps/files_external/l10n/hr.js
+++ b/apps/files_external/l10n/hr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupa)",
"Saved" : "Spremljeno",
"<b>Note:</b> " : "<b>Bilješka:</b>",
- " and " : " i ",
"<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>Note:</b> Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.",
diff --git a/apps/files_external/l10n/hr.json b/apps/files_external/l10n/hr.json
index 069af3fa6c8..f2159e72bf4 100644
--- a/apps/files_external/l10n/hr.json
+++ b/apps/files_external/l10n/hr.json
@@ -52,7 +52,6 @@
"(group)" : "(grupa)",
"Saved" : "Spremljeno",
"<b>Note:</b> " : "<b>Bilješka:</b>",
- " and " : " i ",
"<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>Note:</b> Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.",
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index 8b0f4f28fbc..4a7991641c1 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grup)",
"Saved" : "Disimpan",
"<b>Note:</b> " : "<b>Catatan:</b> ",
- " and " : "dan",
"<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>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<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>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index 8f8179d7627..67389e54d15 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -52,7 +52,6 @@
"(group)" : "(grup)",
"Saved" : "Disimpan",
"<b>Note:</b> " : "<b>Catatan:</b> ",
- " and " : "dan",
"<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>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<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>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index 5834ff25f0b..a7bf4c37fcd 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(gruppo)",
"Saved" : "Salvato",
"<b>Note:</b> " : "<b>Nota:</b>",
- " and " : "e",
+ "and" : "e",
"<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>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<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>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index b780cae57a6..bd7a62bb9bb 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -52,7 +52,7 @@
"(group)" : "(gruppo)",
"Saved" : "Salvato",
"<b>Note:</b> " : "<b>Nota:</b>",
- " and " : "e",
+ "and" : "e",
"<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>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<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>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js
index d4ef6347664..c1dbf99b46b 100644
--- a/apps/files_external/l10n/ja.js
+++ b/apps/files_external/l10n/ja.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(グループ)",
"Saved" : "保存されました",
"<b>Note:</b> " : "<b>注意:</b> ",
- " and " : "と",
+ "and" : "と",
"<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>注意:</b> PHPにcURLのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。",
"<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>注意:</b> PHPにFTPのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>注意:</b> \"%s\" がインストールされていません。%sをマウントできません。このシステムの管理者にインストールをお願いしてください。",
diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json
index d630e19904d..c122832f863 100644
--- a/apps/files_external/l10n/ja.json
+++ b/apps/files_external/l10n/ja.json
@@ -52,7 +52,7 @@
"(group)" : "(グループ)",
"Saved" : "保存されました",
"<b>Note:</b> " : "<b>注意:</b> ",
- " and " : "と",
+ "and" : "と",
"<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>注意:</b> PHPにcURLのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。",
"<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>注意:</b> PHPにFTPのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>注意:</b> \"%s\" がインストールされていません。%sをマウントできません。このシステムの管理者にインストールをお願いしてください。",
diff --git a/apps/files_external/l10n/nb_NO.js b/apps/files_external/l10n/nb_NO.js
index ebf113068a2..c04dccf75fa 100644
--- a/apps/files_external/l10n/nb_NO.js
+++ b/apps/files_external/l10n/nb_NO.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(gruppe)",
"Saved" : "Lagret",
"<b>Note:</b> " : "<b>Merk:</b> ",
- " and " : " og ",
"<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>Merk:</b> Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.",
"<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>Merk:</b> FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.",
diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json
index b9b736fb13a..f6aaf962872 100644
--- a/apps/files_external/l10n/nb_NO.json
+++ b/apps/files_external/l10n/nb_NO.json
@@ -52,7 +52,6 @@
"(group)" : "(gruppe)",
"Saved" : "Lagret",
"<b>Note:</b> " : "<b>Merk:</b> ",
- " and " : " og ",
"<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>Merk:</b> Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.",
"<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>Merk:</b> FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.",
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 0dcbe8556a3..3afe1ce6b14 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(groep)",
"Saved" : "Bewaard",
"<b>Note:</b> " : "<b>Let op:</b> ",
- " and " : "en",
+ "and" : "en",
"<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>Let op:</b> Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.",
"<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>Let op:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index 135aea89664..9cf4cc6b6f7 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -52,7 +52,7 @@
"(group)" : "(groep)",
"Saved" : "Bewaard",
"<b>Note:</b> " : "<b>Let op:</b> ",
- " and " : "en",
+ "and" : "en",
"<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>Let op:</b> Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.",
"<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>Let op:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.",
diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js
index a20f61c4677..6112182db3d 100644
--- a/apps/files_external/l10n/pl.js
+++ b/apps/files_external/l10n/pl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupa)",
"Saved" : "Zapisano",
"<b>Note:</b> " : "<b>Uwaga:</b> ",
- " and " : "oraz",
"<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>Uwaga:</b> Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
"<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>Uwaga:</b> Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Uwaga:</b> \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
diff --git a/apps/files_external/l10n/pl.json b/apps/files_external/l10n/pl.json
index c838595674d..d412d38c8df 100644
--- a/apps/files_external/l10n/pl.json
+++ b/apps/files_external/l10n/pl.json
@@ -52,7 +52,6 @@
"(group)" : "(grupa)",
"Saved" : "Zapisano",
"<b>Note:</b> " : "<b>Uwaga:</b> ",
- " and " : "oraz",
"<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>Uwaga:</b> Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
"<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>Uwaga:</b> Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Uwaga:</b> \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index e9ec582e182..8bbcf728ad9 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Saved" : "Salvo",
"<b>Note:</b> " : "<b>Nota:</b>",
- " and " : "e",
+ "and" : "e",
"<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>Nota:</b> O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
"<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>Nota:</b> O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index 9f0907b9d20..7cf03ec98d7 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -52,7 +52,7 @@
"(group)" : "(grupo)",
"Saved" : "Salvo",
"<b>Note:</b> " : "<b>Nota:</b>",
- " and " : "e",
+ "and" : "e",
"<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>Nota:</b> O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
"<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>Nota:</b> O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js
index 2d3f342e9e9..d2af54cfda9 100644
--- a/apps/files_external/l10n/pt_PT.js
+++ b/apps/files_external/l10n/pt_PT.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Saved" : "Guardado",
"<b>Note:</b> " : "<b>Aviso:</b> ",
- " and " : "e",
"<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>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<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>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.",
diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json
index cee9e1b7f1a..cb7411b9d33 100644
--- a/apps/files_external/l10n/pt_PT.json
+++ b/apps/files_external/l10n/pt_PT.json
@@ -52,7 +52,6 @@
"(group)" : "(grupo)",
"Saved" : "Guardado",
"<b>Note:</b> " : "<b>Aviso:</b> ",
- " and " : "e",
"<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>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<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>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.",
diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js
index 35eec150d01..62947003445 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(группа)",
"Saved" : "Сохранено",
"<b>Note:</b> " : "<b>Примечание:</b> ",
- " and " : "и",
+ "and" : "и",
"<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>Примечание:</b> Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.",
"<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>Примечание:</b> Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.",
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index 85b9bf38e4c..09fc6830d2a 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -52,7 +52,7 @@
"(group)" : "(группа)",
"Saved" : "Сохранено",
"<b>Note:</b> " : "<b>Примечание:</b> ",
- " and " : "и",
+ "and" : "и",
"<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>Примечание:</b> Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.",
"<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>Примечание:</b> Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.",
diff --git a/apps/files_external/l10n/sk_SK.js b/apps/files_external/l10n/sk_SK.js
index 636953c42ea..2a83a6d2330 100644
--- a/apps/files_external/l10n/sk_SK.js
+++ b/apps/files_external/l10n/sk_SK.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(skupina)",
"Saved" : "Uložené",
"<b>Note:</b> " : "<b>Poznámka:</b> ",
- " and " : "a",
"<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>Poznámka:</b> cURL podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
"<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>Poznámka:</b> FTP podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" nie je nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
diff --git a/apps/files_external/l10n/sk_SK.json b/apps/files_external/l10n/sk_SK.json
index 5d2ca0a95a0..ee47ebc7808 100644
--- a/apps/files_external/l10n/sk_SK.json
+++ b/apps/files_external/l10n/sk_SK.json
@@ -52,7 +52,6 @@
"(group)" : "(skupina)",
"Saved" : "Uložené",
"<b>Note:</b> " : "<b>Poznámka:</b> ",
- " and " : "a",
"<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>Poznámka:</b> cURL podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
"<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>Poznámka:</b> FTP podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" nie je nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.",
diff --git a/apps/files_external/l10n/sl.js b/apps/files_external/l10n/sl.js
index 690fd9ae322..c0b76c43015 100644
--- a/apps/files_external/l10n/sl.js
+++ b/apps/files_external/l10n/sl.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(skupina)",
"Saved" : "Shranjeno",
"<b>Note:</b> " : "<b>Opomba:</b> ",
- " and " : "in",
+ "and" : "in",
"<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>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<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>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
diff --git a/apps/files_external/l10n/sl.json b/apps/files_external/l10n/sl.json
index c92e9a310d8..a30b31a67f7 100644
--- a/apps/files_external/l10n/sl.json
+++ b/apps/files_external/l10n/sl.json
@@ -52,7 +52,7 @@
"(group)" : "(skupina)",
"Saved" : "Shranjeno",
"<b>Note:</b> " : "<b>Opomba:</b> ",
- " and " : "in",
+ "and" : "in",
"<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>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<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>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js
index cb12208c49a..3127293488a 100644
--- a/apps/files_external/l10n/sv.js
+++ b/apps/files_external/l10n/sv.js
@@ -48,7 +48,6 @@ OC.L10N.register(
"System" : "System",
"Saved" : "Sparad",
"<b>Note:</b> " : "<b> OBS: </ b>",
- " and " : "och",
"<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> OBS: </ b> cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
"<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> OBS: </ b> Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json
index 12b9f36fd5d..a549ae33680 100644
--- a/apps/files_external/l10n/sv.json
+++ b/apps/files_external/l10n/sv.json
@@ -46,7 +46,6 @@
"System" : "System",
"Saved" : "Sparad",
"<b>Note:</b> " : "<b> OBS: </ b>",
- " and " : "och",
"<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> OBS: </ b> cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
"<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> OBS: </ b> Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.",
diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js
index cbe240b5818..74061e4e99b 100644
--- a/apps/files_external/l10n/tr.js
+++ b/apps/files_external/l10n/tr.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(grup)",
"Saved" : "Kaydedildi",
"<b>Note:</b> " : "<b>Not:</b> ",
- " and " : "ve",
+ "and" : "ve",
"<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>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<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>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json
index 669608cca27..4c5c5d1a16c 100644
--- a/apps/files_external/l10n/tr.json
+++ b/apps/files_external/l10n/tr.json
@@ -52,7 +52,7 @@
"(group)" : "(grup)",
"Saved" : "Kaydedildi",
"<b>Note:</b> " : "<b>Not:</b> ",
- " and " : "ve",
+ "and" : "ve",
"<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>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<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>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index 7cf8533fd24..9d6548ab320 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"(group)" : "(група)",
"Saved" : "Збереженно",
"<b>Note:</b> " : "<b>Примітка:</b>",
- " and " : "та",
"<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>Примітка:</b> Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<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>Примітка:</b> Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index 8ebccaf5c1c..d47a45bbaf4 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -52,7 +52,6 @@
"(group)" : "(група)",
"Saved" : "Збереженно",
"<b>Note:</b> " : "<b>Примітка:</b>",
- " and " : "та",
"<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>Примітка:</b> Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<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>Примітка:</b> Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
diff --git a/apps/files_external/l10n/zh_CN.js b/apps/files_external/l10n/zh_CN.js
index 8c71da68db7..2b6f673e759 100644
--- a/apps/files_external/l10n/zh_CN.js
+++ b/apps/files_external/l10n/zh_CN.js
@@ -34,7 +34,6 @@ OC.L10N.register(
"System" : "系统",
"Saved" : "已保存",
"<b>Note:</b> " : "<b>注意:</b>",
- " and " : "和",
"You don't have any external storages" : "您没有外部存储",
"Name" : "名称",
"Storage type" : "存储类型",
diff --git a/apps/files_external/l10n/zh_CN.json b/apps/files_external/l10n/zh_CN.json
index ba2ca93be86..a910b475d78 100644
--- a/apps/files_external/l10n/zh_CN.json
+++ b/apps/files_external/l10n/zh_CN.json
@@ -32,7 +32,6 @@
"System" : "系统",
"Saved" : "已保存",
"<b>Note:</b> " : "<b>注意:</b>",
- " and " : "和",
"You don't have any external storages" : "您没有外部存储",
"Name" : "名称",
"Storage type" : "存储类型",
diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js
index a1f2d8a226d..f77bf964932 100644
--- a/apps/files_external/l10n/zh_TW.js
+++ b/apps/files_external/l10n/zh_TW.js
@@ -25,7 +25,6 @@ OC.L10N.register(
"System" : "系統",
"Saved" : "已儲存",
"<b>Note:</b> " : "<b>警告:</b> ",
- " and " : "與",
"<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>警告:</b> PHP 並未啓用 Curl 的支援,因此無法掛載 %s 。請洽您的系統管理員將其安裝並啓用。",
"<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>警告</b>:PHP 並未啓用 FTP 的支援,因此無法掛載 %s,請洽您的系統管理員將其安裝並啓用。",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>警告</b>並未安裝 \"%s\",因此無法掛載 %s。請洽您的系統管理員將其安裝並啓用。",
diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json
index 03a20a3215e..25eb370a33a 100644
--- a/apps/files_external/l10n/zh_TW.json
+++ b/apps/files_external/l10n/zh_TW.json
@@ -23,7 +23,6 @@
"System" : "系統",
"Saved" : "已儲存",
"<b>Note:</b> " : "<b>警告:</b> ",
- " and " : "與",
"<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>警告:</b> PHP 並未啓用 Curl 的支援,因此無法掛載 %s 。請洽您的系統管理員將其安裝並啓用。",
"<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>警告</b>:PHP 並未啓用 FTP 的支援,因此無法掛載 %s,請洽您的系統管理員將其安裝並啓用。",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>警告</b>並未安裝 \"%s\",因此無法掛載 %s。請洽您的系統管理員將其安裝並啓用。",
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 9400bbdedc0..5742b8f47e2 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -103,22 +103,6 @@ class OC_Mount_Config {
* @param array $data
*/
public static function initMountPointsHook($data) {
- $mountPoints = self::getAbsoluteMountPoints($data['user']);
- $loader = \OC\Files\Filesystem::getLoader();
- $manager = \OC\Files\Filesystem::getMountManager();
- foreach ($mountPoints as $mountPoint => $options) {
- if (isset($options['options']['objectstore'])) {
- $objectClass = $options['options']['objectstore']['class'];
- $options['options']['objectstore'] = new $objectClass($options['options']['objectstore']);
- }
- if (isset($options['personal']) && $options['personal']) {
- $mount = new \OCA\Files_External\PersonalMount($options['class'], $mountPoint, $options['options'], $loader);
- } else{
- $mount = new \OC\Files\Mount\Mount($options['class'], $mountPoint, $options['options'], $loader);
- }
- $manager->addMount($mount);
- }
-
if ($data['user']) {
$user = \OC::$server->getUserManager()->get($data['user']);
if (!$user) {
@@ -660,12 +644,7 @@ class OC_Mount_Config {
$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
$file = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
}
- $options = 0;
- if (defined('JSON_PRETTY_PRINT')) {
- // only for PHP >= 5.4
- $options = JSON_PRETTY_PRINT;
- }
- $content = json_encode($data, $options);
+ $content = json_encode($data, JSON_PRETTY_PRINT);
@file_put_contents($file, $content);
@chmod($file, 0640);
}
@@ -729,7 +708,7 @@ class OC_Mount_Config {
$backends = '';
for ($i = 0; $i < $dependencyGroupCount; $i++) {
if ($i > 0 && $i === $dependencyGroupCount - 1) {
- $backends .= $l->t(' and ');
+ $backends .= ' '.$l->t('and').' ';
} elseif ($i > 0) {
$backends .= ', ';
}
diff --git a/apps/files_external/lib/config/configadapter.php b/apps/files_external/lib/config/configadapter.php
new file mode 100644
index 00000000000..6294e27a774
--- /dev/null
+++ b/apps/files_external/lib/config/configadapter.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files_External\Config;
+
+use OC\Files\Mount\MountPoint;
+use OCP\Files\Storage\IStorageFactory;
+use OCA\Files_External\PersonalMount;
+use OCP\Files\Config\IMountProvider;
+use OCP\IUser;
+
+/**
+ * Make the old files_external config work with the new public mount config api
+ */
+class ConfigAdapter implements IMountProvider {
+ /**
+ * Get all mountpoints applicable for the user
+ *
+ * @param \OCP\IUser $user
+ * @param \OCP\Files\Storage\IStorageFactory $loader
+ * @return \OCP\Files\Mount\IMountPoint[]
+ */
+ public function getMountsForUser(IUser $user, IStorageFactory $loader) {
+ $mountPoints = \OC_Mount_Config::getAbsoluteMountPoints($user->getUID());
+ $mounts = array();
+ foreach ($mountPoints as $mountPoint => $options) {
+ if (isset($options['options']['objectstore'])) {
+ $objectClass = $options['options']['objectstore']['class'];
+ $options['options']['objectstore'] = new $objectClass($options['options']['objectstore']);
+ }
+ if (isset($options['personal']) && $options['personal']) {
+ $mounts[] = new PersonalMount($options['class'], $mountPoint, $options['options'], $loader);
+ } else {
+ $mounts[] = new MountPoint($options['class'], $mountPoint, $options['options'], $loader);
+ }
+ }
+ return $mounts;
+ }
+}
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php
index c414e34fad4..bd9bdce2a67 100644
--- a/apps/files_external/lib/google.php
+++ b/apps/files_external/lib/google.php
@@ -370,10 +370,22 @@ class Google extends \OC\Files\Storage\Common {
return false;
}
}
+ // We need to get the object for the existing file with the same
+ // name (if there is one) before we do the patch. If oldfile
+ // exists and is a directory we have to delete it before we
+ // do the rename too.
+ $oldfile = $this->getDriveFile($path2);
+ if ($oldfile && $this->is_dir($path2)) {
+ $this->rmdir($path2);
+ $oldfile = false;
+ }
$result = $this->service->files->patch($file->getId(), $file);
if ($result) {
$this->setDriveFile($path1, false);
$this->setDriveFile($path2, $result);
+ if ($oldfile) {
+ $this->service->files->delete($oldfile->getId());
+ }
}
return (bool)$result;
} else {
diff --git a/apps/files_external/lib/personalmount.php b/apps/files_external/lib/personalmount.php
index 708128d644a..0c741179139 100644
--- a/apps/files_external/lib/personalmount.php
+++ b/apps/files_external/lib/personalmount.php
@@ -8,13 +8,13 @@
namespace OCA\Files_External;
-use OC\Files\Mount\Mount;
+use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
/**
* Person mount points can be moved by the user
*/
-class PersonalMount extends Mount implements MoveableMount {
+class PersonalMount extends MountPoint implements MoveableMount {
/**
* Move the mount point to $target
*
diff --git a/apps/files_external/lib/smb_oc.php b/apps/files_external/lib/smb_oc.php
index e6f3aaf4052..a7c93d97fd1 100644
--- a/apps/files_external/lib/smb_oc.php
+++ b/apps/files_external/lib/smb_oc.php
@@ -13,12 +13,16 @@ require_once __DIR__ . '/../3rdparty/smb4php/smb.php';
class SMB_OC extends \OC\Files\Storage\SMB {
private $username_as_share;
+ /**
+ * @param array $params
+ * @throws \Exception
+ */
public function __construct($params) {
if (isset($params['host']) && \OC::$server->getSession()->exists('smb-credentials')) {
$host=$params['host'];
$this->username_as_share = ($params['username_as_share'] === 'true');
- $params_auth = \OC::$server->getSession()->get('smb-credentials');
+ $params_auth = json_decode(\OC::$server->getCrypto()->decrypt(\OC::$server->getSession()->get('smb-credentials')), true);
$user = \OC::$server->getSession()->get('loginname');
$password = $params_auth['password'];
@@ -44,14 +48,35 @@ class SMB_OC extends \OC\Files\Storage\SMB {
}
}
- public static function login( $params ) {
- \OC::$server->getSession()->set('smb-credentials', $params);
+
+ /**
+ * Intercepts the user credentials on login and stores them
+ * encrypted inside the session if SMB_OC storage is enabled.
+ * @param array $params
+ */
+ public static function login($params) {
+ $mountpoints = \OC_Mount_Config::getAbsoluteMountPoints($params['uid']);
+ $mountpointClasses = array();
+ foreach($mountpoints as $mountpoint) {
+ $mountpointClasses[$mountpoint['class']] = true;
+ }
+ if(isset($mountpointClasses['\OC\Files\Storage\SMB_OC'])) {
+ \OC::$server->getSession()->set('smb-credentials', \OC::$server->getCrypto()->encrypt(json_encode($params)));
+ }
}
+ /**
+ * @param string $path
+ * @return boolean
+ */
public function isSharable($path) {
return false;
}
+ /**
+ * @param bool $isPersonal
+ * @return bool
+ */
public function test($isPersonal = true) {
if ($isPersonal) {
if ($this->stat('')) {
diff --git a/apps/files_external/tests/js/mountsfilelistSpec.js b/apps/files_external/tests/js/mountsfilelistSpec.js
index b599df77aac..50603081b6a 100644
--- a/apps/files_external/tests/js/mountsfilelistSpec.js
+++ b/apps/files_external/tests/js/mountsfilelistSpec.js
@@ -9,8 +9,7 @@
*/
describe('OCA.External.FileList tests', function() {
- var testFiles, alertStub, notificationStub, fileList, fileActions;
- var oldFileListPrototype;
+ var testFiles, alertStub, notificationStub, fileList;
beforeEach(function() {
alertStub = sinon.stub(OC.dialogs, 'alert');
@@ -49,14 +48,11 @@ describe('OCA.External.FileList tests', function() {
'<div id="emptycontent">Empty content message</div>' +
'</div>'
);
- fileActions = new OCA.Files.FileActions();
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
testFiles = undefined;
fileList.destroy();
fileList = undefined;
- fileActions = undefined;
notificationStub.restore();
alertStub.restore();
diff --git a/apps/files_sharing/lib/api.php b/apps/files_sharing/api/local.php
index 8556036f118..d9291c29f61 100644
--- a/apps/files_sharing/lib/api.php
+++ b/apps/files_sharing/api/local.php
@@ -1,6 +1,6 @@
<?php
/**
- * ownCloud
+ * ownCloud - OCS API for local shares
*
* @author Bjoern Schiessle
* @copyright 2013 Bjoern Schiessle schiessle@owncloud.com
@@ -20,9 +20,9 @@
*
*/
-namespace OCA\Files\Share;
+namespace OCA\Files_Sharing\API;
-class Api {
+class Local {
/**
* get all shares
diff --git a/apps/files_sharing/api/server2server.php b/apps/files_sharing/api/server2server.php
new file mode 100644
index 00000000000..2949e2dd09c
--- /dev/null
+++ b/apps/files_sharing/api/server2server.php
@@ -0,0 +1,224 @@
+<?php
+/**
+ * ownCloud - OCS API for server-to-server shares
+ *
+ * @copyright (C) 2014 ownCloud, Inc.
+ *
+ * @author Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files_Sharing\API;
+
+class Server2Server {
+
+ /**
+ * create a new share
+ *
+ * @param array $params
+ * @return \OC_OCS_Result
+ */
+ public function createShare($params) {
+
+ if (!$this->isS2SEnabled(true)) {
+ return \OC_OCS_Result(null, 503, 'Server does not support server-to-server sharing');
+ }
+
+ $remote = isset($_POST['remote']) ? $_POST['remote'] : null;
+ $token = isset($_POST['token']) ? $_POST['token'] : null;
+ $name = isset($_POST['name']) ? $_POST['name'] : null;
+ $owner = isset($_POST['owner']) ? $_POST['owner'] : null;
+ $shareWith = isset($_POST['shareWith']) ? $_POST['shareWith'] : null;
+ $remoteId = isset($_POST['remote_id']) ? (int)$_POST['remote_id'] : null;
+
+ if ($remote && $token && $name && $owner && $remoteId && $shareWith) {
+
+ if(!\OCP\Util::isValidFileName($name)) {
+ return new \OC_OCS_Result(null, 400, 'The mountpoint name contains invalid characters.');
+ }
+
+ if (!\OCP\User::userExists($shareWith)) {
+ return new \OC_OCS_Result(null, 400, 'User does not exists');
+ }
+
+ \OC_Util::setupFS($shareWith);
+
+ $mountPoint = \OC\Files\Filesystem::normalizePath('/' . $name);
+ $name = \OCP\Files::buildNotExistingFileName('/', $name);
+
+ try {
+ \OCA\Files_Sharing\Helper::addServer2ServerShare($remote, $token, $name, $mountPoint, $owner, $shareWith, '', $remoteId);
+
+ \OC::$server->getActivityManager()->publishActivity(
+ 'files_sharing', \OCA\Files_Sharing\Activity::SUBJECT_REMOTE_SHARE_RECEIVED, array($owner), '', array(),
+ '', '', $shareWith, \OCA\Files_Sharing\Activity::TYPE_REMOTE_SHARE, \OCA\Files_Sharing\Activity::PRIORITY_LOW);
+
+ return new \OC_OCS_Result();
+ } catch (\Exception $e) {
+ return new \OC_OCS_Result(null, 500, 'server can not add remote share, ' . $e->getMessage());
+ }
+ }
+
+ return new \OC_OCS_Result(null, 400, 'server can not add remote share, missing parameter');
+ }
+
+ /**
+ * accept server-to-server share
+ *
+ * @param array $params
+ * @return \OC_OCS_Result
+ */
+ public function acceptShare($params) {
+
+ if (!$this->isS2SEnabled()) {
+ return \OC_OCS_Result(null, 503, 'Server does not support server-to-server sharing');
+ }
+
+ $id = $params['id'];
+ $token = isset($_POST['token']) ? $_POST['token'] : null;
+ $share = self::getShare($id, $token);
+
+ if ($share) {
+ list($file, $link) = self::getFile($share['uid_owner'], $share['file_source']);
+
+ \OC::$server->getActivityManager()->publishActivity(
+ 'files_sharing', \OCA\Files_Sharing\Activity::SUBJECT_REMOTE_SHARE_ACCEPTED, array($share['share_with'], basename($file)), '', array(),
+ $file, $link, $share['uid_owner'], \OCA\Files_Sharing\Activity::TYPE_REMOTE_SHARE, \OCA\Files_Sharing\Activity::PRIORITY_LOW);
+ }
+
+ return new \OC_OCS_Result();
+ }
+
+ /**
+ * decline server-to-server share
+ *
+ * @param array $params
+ * @return \OC_OCS_Result
+ */
+ public function declineShare($params) {
+
+ if (!$this->isS2SEnabled()) {
+ return \OC_OCS_Result(null, 503, 'Server does not support server-to-server sharing');
+ }
+
+ $id = $params['id'];
+ $token = isset($_POST['token']) ? $_POST['token'] : null;
+
+ $share = $this->getShare($id, $token);
+
+ if ($share) {
+ // userId must be set to the user who unshares
+ \OCP\Share::unshare($share['item_type'], $share['item_source'], $share['share_type'], null, $share['uid_owner']);
+
+ list($file, $link) = $this->getFile($share['uid_owner'], $share['file_source']);
+
+ \OC::$server->getActivityManager()->publishActivity(
+ 'files_sharing', \OCA\Files_Sharing\Activity::SUBJECT_REMOTE_SHARE_DECLINED, array($share['share_with'], basename($file)), '', array(),
+ $file, $link, $share['uid_owner'], \OCA\Files_Sharing\Activity::TYPE_REMOTE_SHARE, \OCA\Files_Sharing\Activity::PRIORITY_LOW);
+ }
+
+ return new \OC_OCS_Result();
+ }
+
+ /**
+ * remove server-to-server share if it was unshared by the owner
+ *
+ * @param array $params
+ * @return \OC_OCS_Result
+ */
+ public function unshare($params) {
+
+ if (!$this->isS2SEnabled()) {
+ return \OC_OCS_Result(null, 503, 'Server does not support server-to-server sharing');
+ }
+
+ $id = $params['id'];
+ $token = isset($_POST['token']) ? $_POST['token'] : null;
+
+ $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share_external` WHERE `remote_id` = ? AND `share_token` = ?');
+ $query->execute(array($id, $token));
+ $share = $query->fetchRow();
+
+ if ($token && $id && !empty($share)) {
+
+ $owner = $share['owner'] . '@' . $share['remote'];
+ $mountpoint = $share['mountpoint'];
+ $user = $share['user'];
+
+ $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*share_external` WHERE `remote_id` = ? AND `share_token` = ?');
+ $query->execute(array($id, $token));
+
+ \OC::$server->getActivityManager()->publishActivity(
+ 'files_sharing', \OCA\Files_Sharing\Activity::SUBJECT_REMOTE_SHARE_DECLINED, array($owner, $mountpoint), '', array(),
+ '', '', $user, \OCA\Files_Sharing\Activity::TYPE_REMOTE_SHARE, \OCA\Files_Sharing\Activity::PRIORITY_MEDIUM);
+ }
+
+ return new \OC_OCS_Result();
+ }
+
+ /**
+ * get share
+ *
+ * @param int $id
+ * @param string $token
+ * @return array
+ */
+ private function getShare($id, $token) {
+ $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `id` = ? AND `token` = ? AND `share_type` = ?');
+ $query->execute(array($id, $token, \OCP\Share::SHARE_TYPE_REMOTE));
+ $share = $query->fetchRow();
+
+ return $share;
+ }
+
+ /**
+ * get file
+ *
+ * @param string $user
+ * @param int $fileSource
+ * @return array with internal path of the file and a absolute link to it
+ */
+ private function getFile($user, $fileSource) {
+ \OC_Util::setupFS($user);
+
+ $file = \OC\Files\Filesystem::getPath($fileSource);
+ $args = \OC\Files\Filesystem::is_dir($file) ? array('dir' => $file) : array('dir' => dirname($file), 'scrollto' => $file);
+ $link = \OCP\Util::linkToAbsolute('files', 'index.php', $args);
+
+ return array($file, $link);
+
+ }
+
+ /**
+ * check if server-to-server sharing is enabled
+ *
+ * @param bool $incoming
+ * @return bool
+ */
+ private function isS2SEnabled($incoming = false) {
+
+ $result = \OCP\App::isEnabled('files_sharing');
+
+ if ($incoming) {
+ $result = $result && \OCA\Files_Sharing\Helper::isIncomingServer2serverShareEnabled();
+ } else {
+ $result = $result && \OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled();
+ }
+
+ return $result;
+ }
+
+}
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index a01f8d98c7d..36d148dce96 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -8,7 +8,6 @@ OC::$CLASSPATH['OC\Files\Cache\Shared_Cache'] = 'files_sharing/lib/cache.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Permissions'] = 'files_sharing/lib/permissions.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Updater'] = 'files_sharing/lib/updater.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Watcher'] = 'files_sharing/lib/watcher.php';
-OC::$CLASSPATH['OCA\Files\Share\Api'] = 'files_sharing/lib/api.php';
OC::$CLASSPATH['OCA\Files\Share\Maintainer'] = 'files_sharing/lib/maintainer.php';
OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
@@ -28,6 +27,10 @@ OCP\Util::addScript('files_sharing', 'external');
OC_FileProxy::register(new OCA\Files\Share\Proxy());
+\OC::$server->getActivityManager()->registerExtension(function() {
+ return new \OCA\Files_Sharing\Activity();
+});
+
$config = \OC::$server->getConfig();
if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
@@ -52,14 +55,17 @@ if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
"name" => $l->t('Shared with others')
)
);
- \OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'sharinglinks',
- "appname" => 'files_sharing',
- "script" => 'list.php',
- "order" => 20,
- "name" => $l->t('Shared by link')
- )
- );
+ // Check if sharing by link is enabled
+ if ($config->getAppValue('core', 'shareapi_allow_links', 'yes') === 'yes') {
+ \OCA\Files\App::getNavigationManager()->add(
+ array(
+ "id" => 'sharinglinks',
+ "appname" => 'files_sharing',
+ "script" => 'list.php',
+ "order" => 20,
+ "name" => $l->t('Shared by link')
+ )
+ );
+ }
}
}
diff --git a/apps/files_sharing/appinfo/database.xml b/apps/files_sharing/appinfo/database.xml
index 73d64c527b7..38718ab0773 100644
--- a/apps/files_sharing/appinfo/database.xml
+++ b/apps/files_sharing/appinfo/database.xml
@@ -23,6 +23,12 @@
<comments>Url of the remove owncloud instance</comments>
</field>
<field>
+ <name>remote_id</name>
+ <type>integer</type>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+ <field>
<name>share_token</name>
<type>text</type>
<notnull>true</notnull>
@@ -32,7 +38,7 @@
<field>
<name>password</name>
<type>text</type>
- <notnull>true</notnull>
+ <notnull>false</notnull>
<length>64</length>
<comments>Optional password for the public share</comments>
</field>
@@ -71,6 +77,13 @@
<length>32</length>
<comments>md5 hash of the mountpoint</comments>
</field>
+ <field>
+ <name>accepted</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
<index>
<name>sh_external_user</name>
<field>
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index 68f33d94995..41bdf554fc5 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -22,25 +22,25 @@ $this->create('sharing_external_test_remote', '/testremote')
OC_API::register('get',
'/apps/files_sharing/api/v1/shares',
- array('\OCA\Files\Share\Api', 'getAllShares'),
+ array('\OCA\Files_Sharing\API\Local', 'getAllShares'),
'files_sharing');
OC_API::register('post',
'/apps/files_sharing/api/v1/shares',
- array('\OCA\Files\Share\Api', 'createShare'),
+ array('\OCA\Files_Sharing\API\Local', 'createShare'),
'files_sharing');
OC_API::register('get',
'/apps/files_sharing/api/v1/shares/{id}',
- array('\OCA\Files\Share\Api', 'getShare'),
+ array('\OCA\Files_Sharing\API\Local', 'getShare'),
'files_sharing');
OC_API::register('put',
'/apps/files_sharing/api/v1/shares/{id}',
- array('\OCA\Files\Share\Api', 'updateShare'),
+ array('\OCA\Files_Sharing\API\Local', 'updateShare'),
'files_sharing');
OC_API::register('delete',
'/apps/files_sharing/api/v1/shares/{id}',
- array('\OCA\Files\Share\Api', 'deleteShare'),
+ array('\OCA\Files_Sharing\API\Local', 'deleteShare'),
'files_sharing');
diff --git a/apps/files_sharing/appinfo/version b/apps/files_sharing/appinfo/version
index be14282b7ff..7d8568351b4 100644
--- a/apps/files_sharing/appinfo/version
+++ b/apps/files_sharing/appinfo/version
@@ -1 +1 @@
-0.5.3
+0.5.4
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index 1314304c567..ff6997ab12f 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -30,6 +30,7 @@ OCA.Sharing.App = {
this._inFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.self',
scrollContainer: $('#app-content'),
sharedWithUser: true,
fileActions: this._createFileActions()
@@ -49,6 +50,7 @@ OCA.Sharing.App = {
this._outFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.others',
scrollContainer: $('#app-content'),
sharedWithUser: false,
fileActions: this._createFileActions()
@@ -68,6 +70,7 @@ OCA.Sharing.App = {
this._linkFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.link',
scrollContainer: $('#app-content'),
linksOnly: true,
fileActions: this._createFileActions()
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 0627ed6ab54..2ddcd84d4c1 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -53,6 +53,7 @@ OCA.Sharing.PublicApp = {
this.fileList = new OCA.Files.FileList(
$el,
{
+ id: 'files.public',
scrollContainer: $(window),
dragOptions: dragOptions,
folderDropOptions: folderDropOptions,
@@ -61,6 +62,9 @@ OCA.Sharing.PublicApp = {
);
this.files = OCA.Files.Files;
this.files.initialize();
+ // TODO: move to PublicFileList.initialize() once
+ // the code was split into a separate class
+ OC.Plugins.attach('OCA.Sharing.PublicFileList', this.fileList);
}
var mimetype = $('#mimetype').val();
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index 8474c66d4b8..bbd107e070e 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -17,46 +17,47 @@
*/
OCA.Sharing.Util = {
/**
- * Initialize the sharing app overrides of the default
- * file list.
+ * Initialize the sharing plugin.
*
* Registers the "Share" file action and adds additional
* DOM attributes for the sharing file info.
*
- * @param {OCA.Files.FileActions} fileActions file actions to extend
+ * @param {OCA.Files.FileList} fileList file list to be extended
*/
- initialize: function(fileActions) {
- if (OCA.Files.FileList) {
- var oldCreateRow = OCA.Files.FileList.prototype._createRow;
- OCA.Files.FileList.prototype._createRow = function(fileData) {
- var tr = oldCreateRow.apply(this, arguments);
- var sharePermissions = fileData.permissions;
- if (fileData.mountType && fileData.mountType === "external-root"){
- // for external storages we cant use the permissions of the mountpoint
- // instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
- sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
- }
- if (fileData.type === 'file') {
- // files can't be shared with delete permissions
- sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;
- }
- tr.attr('data-share-permissions', sharePermissions);
- if (fileData.shareOwner) {
- tr.attr('data-share-owner', fileData.shareOwner);
- // user should always be able to rename a mount point
- if (fileData.isShareMountPoint) {
- tr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);
- }
- }
- if (fileData.recipientsDisplayName) {
- tr.attr('data-share-recipients', fileData.recipientsDisplayName);
- }
- return tr;
- };
+ attach: function(fileList) {
+ if (fileList.id === 'trashbin') {
+ return;
}
+ var fileActions = fileList.fileActions;
+ var oldCreateRow = fileList._createRow;
+ fileList._createRow = function(fileData) {
+ var tr = oldCreateRow.apply(this, arguments);
+ var sharePermissions = fileData.permissions;
+ if (fileData.mountType && fileData.mountType === "external-root"){
+ // for external storages we cant use the permissions of the mountpoint
+ // instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
+ sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
+ }
+ if (fileData.type === 'file') {
+ // files can't be shared with delete permissions
+ sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;
+ }
+ tr.attr('data-share-permissions', sharePermissions);
+ if (fileData.shareOwner) {
+ tr.attr('data-share-owner', fileData.shareOwner);
+ // user should always be able to rename a mount point
+ if (fileData.isShareMountPoint) {
+ tr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);
+ }
+ }
+ if (fileData.recipientsDisplayName) {
+ tr.attr('data-share-recipients', fileData.recipientsDisplayName);
+ }
+ return tr;
+ };
// use delegate to catch the case with multiple file lists
- $('#content').delegate('#fileList', 'fileActionsReady', function(ev){
+ fileList.$el.on('fileActionsReady', function(ev){
var fileList = ev.fileList;
var $files = ev.$files;
@@ -198,12 +199,5 @@
};
})();
-$(document).ready(function() {
- // FIXME: HACK: do not init when running unit tests, need a better way
- if (!window.TESTING) {
- if (!_.isUndefined(OC.Share) && !_.isUndefined(OCA.Files)) {
- OCA.Sharing.Util.initialize(OCA.Files.fileActions);
- }
- }
-});
+OC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util);
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index 7a7c24993c0..2c7d6c7d43a 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -38,6 +38,7 @@
_sharedWithUser: false,
_linksOnly: false,
_clientSideSort: true,
+ _allowSelection: false,
/**
* @private
@@ -55,6 +56,7 @@
if (options && options.linksOnly) {
this._linksOnly = true;
}
+ OC.Plugins.attach('OCA.Sharing.FileList', this);
},
_renderRow: function() {
diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js
index 6b2c05b4dfb..bace06b0c41 100644
--- a/apps/files_sharing/l10n/cs_CZ.js
+++ b/apps/files_sharing/l10n/cs_CZ.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Nebyla nalezena instalace ownCloud na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
"Shared by" : "Sdílí",
+ "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
+ "You received a new remote share from %s" : "Obdrželi jste nové vzdálené sdílení z %s",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
"Password" : "Heslo",
diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json
index 276887c770f..3071cd251d3 100644
--- a/apps/files_sharing/l10n/cs_CZ.json
+++ b/apps/files_sharing/l10n/cs_CZ.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Nebyla nalezena instalace ownCloud na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
"Shared by" : "Sdílí",
+ "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
+ "You received a new remote share from %s" : "Obdrželi jste nové vzdálené sdílení z %s",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
"Password" : "Heslo",
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index de8c6102993..76ab4a877f7 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Der blev ikke fundet en ownCloud-installation på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-URL",
"Shared by" : "Delt af",
+ "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
+ "You received a new remote share from %s" : "Du modtog en ny ekstern deling fra %s",
"This share is password-protected" : "Delingen er beskyttet af kodeord",
"The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.",
"Password" : "Kodeord",
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 996d45436c6..316c66f5d35 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Der blev ikke fundet en ownCloud-installation på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-URL",
"Shared by" : "Delt af",
+ "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
+ "You received a new remote share from %s" : "Du modtog en ny ekstern deling fra %s",
"This share is password-protected" : "Delingen er beskyttet af kodeord",
"The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.",
"Password" : "Kodeord",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index c3160792e1c..81ebd86723d 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Shared by" : "Geteilt von ",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Du hast eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 62a74cf445b..ceae453aa66 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Shared by" : "Geteilt von ",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Du hast eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index e50a15dd29e..ec97bcba393 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Shared by" : "Geteilt von",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Sie haben eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 129769939e5..2dd35e35310 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Shared by" : "Geteilt von",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Sie haben eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 07cc91c6621..c5dfd1a7674 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "No ownCloud installation found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Shared by" : "Shared by",
+ "A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
+ "You received a new remote share from %s" : "You received a new remote share from %s",
"This share is password-protected" : "This share is password-protected",
"The password is wrong. Try again." : "The password is wrong. Try again.",
"Password" : "Password",
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index f0e6f5b5bed..a145d68425c 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "No ownCloud installation found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Shared by" : "Shared by",
+ "A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
+ "You received a new remote share from %s" : "You received a new remote share from %s",
"This share is password-protected" : "This share is password-protected",
"The password is wrong. Try again." : "The password is wrong. Try again.",
"Password" : "Password",
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 922c52aeaa0..d7bfe45928f 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "No se encontró una instalación de ownCloud en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválido",
"Shared by" : "Compartido por",
+ "A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
"Password" : "Contraseña",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 8339a435be0..d7d3331ab22 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -17,6 +17,7 @@
"No ownCloud installation found at {remote}" : "No se encontró una instalación de ownCloud en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválido",
"Shared by" : "Compartido por",
+ "A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
"Password" : "Contraseña",
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index bb02376e115..ad455736d86 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "ownCloud-asennusta ei löytynyt kohteesta {remote}",
"Invalid ownCloud url" : "Virheellinen ownCloud-osoite",
"Shared by" : "Jakanut",
+ "A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio jaettiin <strong>toiselta palvelimelta</strong>",
+ "You received a new remote share from %s" : "Vastaanotit uuden etäjaon käyttäjältä %s",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
"The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.",
"Password" : "Salasana",
diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json
index 84b681252dc..83423ae1bcd 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "ownCloud-asennusta ei löytynyt kohteesta {remote}",
"Invalid ownCloud url" : "Virheellinen ownCloud-osoite",
"Shared by" : "Jakanut",
+ "A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio jaettiin <strong>toiselta palvelimelta</strong>",
+ "You received a new remote share from %s" : "Vastaanotit uuden etäjaon käyttäjältä %s",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
"The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.",
"Password" : "Salasana",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 98f1a46627d..734f1091f75 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud invalide",
"Shared by" : "Partagé par",
+ "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
+ "You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
"The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.",
"Password" : "Mot de passe",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index c7145f92e98..5fbdc5da72b 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud invalide",
"Shared by" : "Partagé par",
+ "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
+ "You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
"The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.",
"Password" : "Mot de passe",
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index c0626abb222..42bb76958ec 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "{remote} にはownCloudがインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
"Shared by" : "共有者:",
+ "A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
+ "You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
"This share is password-protected" : "この共有はパスワードで保護されています",
"The password is wrong. Try again." : "パスワードが間違っています。再試行してください。",
"Password" : "パスワード",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 1a199b9e6dc..87128114d7c 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "{remote} にはownCloudがインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
"Shared by" : "共有者:",
+ "A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
+ "You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
"This share is password-protected" : "この共有はパスワードで保護されています",
"The password is wrong. Try again." : "パスワードが間違っています。再試行してください。",
"Password" : "パスワード",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index e997a1167f4..e566b2618b2 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Shared by" : "Gedeeld door",
+ "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
+ "You received a new remote share from %s" : "U ontving een nieuwe externe share van %s",
"This share is password-protected" : "Deze share is met een wachtwoord beveiligd",
"The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.",
"Password" : "Wachtwoord",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 9d6fd9c37ca..a386c43fe9c 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Shared by" : "Gedeeld door",
+ "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
+ "You received a new remote share from %s" : "U ontving een nieuwe externe share van %s",
"This share is password-protected" : "Deze share is met een wachtwoord beveiligd",
"The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.",
"Password" : "Wachtwoord",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 57d2018282c..d7cb4df4dbe 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Nenhuma instalação ownCloud encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
"Shared by" : "Compartilhado por",
+ "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
+ "You received a new remote share from %s" : "Você recebeu um novo compartilhamento remoto de %s",
"This share is password-protected" : "Este compartilhamento esta protegido por senha",
"The password is wrong. Try again." : "Senha incorreta. Tente novamente.",
"Password" : "Senha",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 1587aca9832..73be570ebd0 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Nenhuma instalação ownCloud encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
"Shared by" : "Compartilhado por",
+ "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
+ "You received a new remote share from %s" : "Você recebeu um novo compartilhamento remoto de %s",
"This share is password-protected" : "Este compartilhamento esta protegido por senha",
"The password is wrong. Try again." : "Senha incorreta. Tente novamente.",
"Password" : "Senha",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index f8a73755cd1..ad639cc5bcc 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Не найдено ownCloud на {remote}",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
"Shared by" : "Опубликовано",
+ "A file or folder was shared from <strong>another server</strong>" : "Файл или папка, опубликованная на <strong>другом сервере</strong>",
+ "You received a new remote share from %s" : "Вы получили новую публикацию от %s",
"This share is password-protected" : "Для доступа к информации необходимо ввести пароль",
"The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.",
"Password" : "Пароль",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index ab20e0c3e92..21607bc8163 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Не найдено ownCloud на {remote}",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
"Shared by" : "Опубликовано",
+ "A file or folder was shared from <strong>another server</strong>" : "Файл или папка, опубликованная на <strong>другом сервере</strong>",
+ "You received a new remote share from %s" : "Вы получили новую публикацию от %s",
"This share is password-protected" : "Для доступа к информации необходимо ввести пароль",
"The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.",
"Password" : "Пароль",
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 7bbeefc9622..1b0082f6c1f 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -36,6 +36,6 @@ OC.L10N.register(
"Direct link" : "Doğrudan bağlantı",
"Server-to-Server Sharing" : "Sunucu-Sunucu Paylaşımı",
"Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver",
- "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunucularda paylaşım almalarına izin ver"
+ "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index f91ab02288b..b9b4e46569e 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -34,6 +34,6 @@
"Direct link" : "Doğrudan bağlantı",
"Server-to-Server Sharing" : "Sunucu-Sunucu Paylaşımı",
"Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver",
- "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunucularda paylaşım almalarına izin ver"
+ "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/lib/activity.php b/apps/files_sharing/lib/activity.php
new file mode 100644
index 00000000000..979df1c1da6
--- /dev/null
+++ b/apps/files_sharing/lib/activity.php
@@ -0,0 +1,196 @@
+<?php
+/**
+ * ownCloud - publish activities
+ *
+ * @copyright (c) 2014, ownCloud Inc.
+ *
+ * @author Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace OCA\Files_Sharing;
+
+class Activity implements \OCP\Activity\IExtension {
+
+ const TYPE_REMOTE_SHARE = 'remote_share';
+ const SUBJECT_REMOTE_SHARE_RECEIVED = 'remote_share_received';
+ const SUBJECT_REMOTE_SHARE_ACCEPTED = 'remote_share_accepted';
+ const SUBJECT_REMOTE_SHARE_DECLINED = 'remote_share_declined';
+ const SUBJECT_REMOTE_SHARE_UNSHARED = 'remote_share_unshared';
+
+ /**
+ * The extension can return an array of additional notification types.
+ * If no additional types are to be added false is to be returned
+ *
+ * @param string $languageCode
+ * @return array|false
+ */
+ public function getNotificationTypes($languageCode) {
+ $l = \OC::$server->getL10N('files_sharing', $languageCode);
+ return array(self::TYPE_REMOTE_SHARE => $l->t('A file or folder was shared from <strong>another server</strong>'));
+ }
+
+ /**
+ * The extension can filter the types based on the filter if required.
+ * In case no filter is to be applied false is to be returned unchanged.
+ *
+ * @param array $types
+ * @param string $filter
+ * @return array|false
+ */
+ public function filterNotificationTypes($types, $filter) {
+ return $types;
+ }
+
+ /**
+ * For a given method additional types to be displayed in the settings can be returned.
+ * In case no additional types are to be added false is to be returned.
+ *
+ * @param string $method
+ * @return array|false
+ */
+ public function getDefaultTypes($method) {
+ if ($method === 'stream') {
+ return array(self::TYPE_REMOTE_SHARE);
+ }
+
+ return false;
+ }
+
+ /**
+ * The extension can translate a given message to the requested languages.
+ * If no translation is available false is to be returned.
+ *
+ * @param string $app
+ * @param string $text
+ * @param array $params
+ * @param boolean $stripPath
+ * @param boolean $highlightParams
+ * @param string $languageCode
+ * @return string|false
+ */
+ public function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode) {
+
+ $l = \OC::$server->getL10N('files_sharing', $languageCode);
+
+ if (!$text) {
+ return '';
+ }
+
+ if ($app === 'files_sharing') {
+ switch ($text) {
+ case self::SUBJECT_REMOTE_SHARE_RECEIVED:
+ return $l->t('You received a new remote share from %s', $params)->__toString();
+ case self::SUBJECT_REMOTE_SHARE_ACCEPTED:
+ return $l->t('%1$s accepted remote share %2$s', $params)->__toString();
+ case self::SUBJECT_REMOTE_SHARE_DECLINED:
+ return $l->t('%1$s declined remote share %2$s', $params)->__toString();
+ case self::SUBJECT_REMOTE_SHARE_UNSHARED:
+ return $l->t('%1$s unshared %2$s', $params)->__toString();
+ }
+ }
+ }
+
+ /**
+ * The extension can define the type of parameters for translation
+ *
+ * Currently known types are:
+ * * file => will strip away the path of the file and add a tooltip with it
+ * * username => will add the avatar of the user
+ *
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ public function getSpecialParameterList($app, $text) {
+ if ($app === 'files_sharing') {
+ switch ($text) {
+ case self::SUBJECT_REMOTE_SHARE_RECEIVED:
+ return array(
+ 0 => '',// We can not use 'username' since the user is in a different ownCloud
+ );
+ case self::SUBJECT_REMOTE_SHARE_ACCEPTED:
+ case self::SUBJECT_REMOTE_SHARE_DECLINED:
+ case self::SUBJECT_REMOTE_SHARE_UNSHARED:
+ return array(
+ 0 => '',// We can not use 'username' since the user is in a different ownCloud
+ 1 => 'file',
+ );
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * A string naming the css class for the icon to be used can be returned.
+ * If no icon is known for the given type false is to be returned.
+ *
+ * @param string $type
+ * @return string|false
+ */
+ public function getTypeIcon($type) {
+ return 'icon-share';
+ }
+
+ /**
+ * The extension can define the parameter grouping by returning the index as integer.
+ * In case no grouping is required false is to be returned.
+ *
+ * @param array $activity
+ * @return integer|false
+ */
+ public function getGroupParameter($activity) {
+ return false;
+ }
+
+ /**
+ * The extension can define additional navigation entries. The array returned has to contain two keys 'top'
+ * and 'apps' which hold arrays with the relevant entries.
+ * If no further entries are to be added false is no be returned.
+ *
+ * @return array|false
+ */
+ public function getNavigation() {
+ return false;
+ }
+
+ /**
+ * The extension can check if a customer filter (given by a query string like filter=abc) is valid or not.
+ *
+ * @param string $filterValue
+ * @return boolean
+ */
+ public function isFilterValid($filterValue) {
+ return false;
+ }
+
+ /**
+ * For a given filter the extension can specify the sql query conditions including parameters for that query.
+ * In case the extension does not know the filter false is to be returned.
+ * The query condition and the parameters are to be returned as array with two elements.
+ * E.g. return array('`app` = ? and `message` like ?', array('mail', 'ownCloud%'));
+ *
+ * @param string $filter
+ * @return array|false
+ */
+ public function getQueryForFilter($filter) {
+ if ($filter === 'shares') {
+ return array('`app` = ? and `type` = ?', array('files_sharing', self::TYPE_REMOTE_SHARE));
+ }
+ return false;
+ }
+
+}
diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php
index 270ed704bbd..e3bee145876 100644
--- a/apps/files_sharing/lib/cache.php
+++ b/apps/files_sharing/lib/cache.php
@@ -89,16 +89,18 @@ class Shared_Cache extends Cache {
$cache = $this->getSourceCache($file);
if ($cache) {
$data = $cache->get($this->files[$file]);
- $data['displayname_owner'] = \OC_User::getDisplayName($this->storage->getSharedFrom());
- $data['path'] = $file;
- if ($file === '') {
- $data['is_share_mount_point'] = true;
- }
- $data['uid_owner'] = $this->storage->getOwner($file);
- if (isset($data['permissions'])) {
- $data['permissions'] &= $this->storage->getPermissions($file);
- } else {
- $data['permissions'] = $this->storage->getPermissions($file);
+ if ($data) {
+ $data['displayname_owner'] = \OC_User::getDisplayName($this->storage->getSharedFrom());
+ $data['path'] = $file;
+ if ($file === '') {
+ $data['is_share_mount_point'] = true;
+ }
+ $data['uid_owner'] = $this->storage->getOwner($file);
+ if (isset($data['permissions'])) {
+ $data['permissions'] &= $this->storage->getPermissions($file);
+ } else {
+ $data['permissions'] = $this->storage->getPermissions($file);
+ }
}
return $data;
}
@@ -343,6 +345,46 @@ class Shared_Cache extends Cache {
}
/**
+ * search for files by tag
+ *
+ * @param string|int $tag tag to search for
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ // TODO: inject this
+ $tagger = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $result = array();
+ $exploreDirs = array('');
+ // FIXME: this is so wrong and unefficient, need to replace with actual DB queries
+ while (count($exploreDirs) > 0) {
+ $dir = array_pop($exploreDirs);
+ $files = $this->getFolderContents($dir);
+ // no results?
+ if (!$files) {
+ // maybe it's a single shared file
+ $file = $this->get('');
+ $tags = $tagger->getTagsForObjects(array((int)$file['fileid']));
+ if (!empty($tags) && in_array($tag, current($tags))) {
+ $result[] = $file;
+ }
+ continue;
+ }
+ foreach ($files as $file) {
+ if ($file['mimetype'] === 'httpd/unix-directory') {
+ $exploreDirs[] = ltrim($dir . '/' . $file['name'], '/');
+ } else {
+ $tags = $tagger->getTagsForObjects(array((int)$file['fileid']));
+ if (!empty($tags) && in_array($tag, current($tags))) {
+ $result[] = $file;
+ }
+ }
+ }
+ }
+ return $result;
+ }
+
+ /**
* get the size of a folder and set it in the cache
*
* @param string $path
diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php
index 8176302a86a..b52e1a5044e 100644
--- a/apps/files_sharing/lib/external/manager.php
+++ b/apps/files_sharing/lib/external/manager.php
@@ -24,7 +24,7 @@ class Manager {
private $mountManager;
/**
- * @var \OC\Files\Storage\Loader
+ * @var \OC\Files\Storage\StorageFactory
*/
private $storageLoader;
@@ -37,10 +37,10 @@ class Manager {
* @param \OCP\IDBConnection $connection
* @param \OC\Files\Mount\Manager $mountManager
* @param \OC\User\Session $userSession
- * @param \OC\Files\Storage\Loader $storageLoader
+ * @param \OC\Files\Storage\StorageFactory $storageLoader
*/
public function __construct(\OCP\IDBConnection $connection, \OC\Files\Mount\Manager $mountManager,
- \OC\Files\Storage\Loader $storageLoader, \OC\User\Session $userSession) {
+ \OC\Files\Storage\StorageFactory $storageLoader, \OC\User\Session $userSession) {
$this->connection = $connection;
$this->mountManager = $mountManager;
$this->userSession = $userSession;
@@ -50,14 +50,8 @@ class Manager {
public function addShare($remote, $token, $password, $name, $owner) {
$user = $this->userSession->getUser();
if ($user) {
- $query = $this->connection->prepare('
- INSERT INTO `*PREFIX*share_external`
- (`remote`, `share_token`, `password`, `name`, `owner`, `user`, `mountpoint`, `mountpoint_hash`)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
- ');
$mountPoint = Filesystem::normalizePath('/' . $name);
- $hash = md5($mountPoint);
- $query->execute(array($remote, $token, $password, $name, $owner, $user->getUID(), $mountPoint, $hash));
+ \OCA\Files_Sharing\Helper::addServer2ServerShare($remote, $token, $name, $mountPoint, $owner, $user->getUID(), $password, -1, true);
$options = array(
'remote' => $remote,
@@ -81,9 +75,9 @@ class Manager {
$query = $this->connection->prepare('
SELECT `remote`, `share_token`, `password`, `mountpoint`, `owner`
FROM `*PREFIX*share_external`
- WHERE `user` = ?
+ WHERE `user` = ? AND `accepted` = ?
');
- $query->execute(array($user->getUID()));
+ $query->execute(array($user->getUID(), 1));
while ($row = $query->fetch()) {
$row['manager'] = $this;
diff --git a/apps/files_sharing/lib/external/mount.php b/apps/files_sharing/lib/external/mount.php
index e564dded69a..6fd9882cb2a 100644
--- a/apps/files_sharing/lib/external/mount.php
+++ b/apps/files_sharing/lib/external/mount.php
@@ -8,9 +8,10 @@
namespace OCA\Files_Sharing\External;
+use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
-class Mount extends \OC\Files\Mount\Mount implements MoveableMount {
+class Mount extends MountPoint implements MoveableMount {
/**
* @var \OCA\Files_Sharing\External\Manager
@@ -22,7 +23,7 @@ class Mount extends \OC\Files\Mount\Mount implements MoveableMount {
* @param string $mountpoint
* @param array $options
* @param \OCA\Files_Sharing\External\Manager $manager
- * @param \OC\Files\Storage\Loader $loader
+ * @param \OC\Files\Storage\StorageFactory $loader
*/
public function __construct($storage, $mountpoint, $options, $manager, $loader = null) {
parent::__construct($storage, $mountpoint, $options, $loader);
diff --git a/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php
index f7204a8db8f..c83debe952f 100644
--- a/apps/files_sharing/lib/helper.php
+++ b/apps/files_sharing/lib/helper.php
@@ -21,6 +21,30 @@ class Helper {
}
/**
+ * add server-to-server share to database
+ *
+ * @param string $remote
+ * @param string $token
+ * @param string $name
+ * @param string $mountPoint
+ * @param string $owner
+ * @param string $user
+ * @param string $password
+ * @param int $remoteId
+ * @param bool $accepted
+ */
+ public static function addServer2ServerShare($remote, $token, $name, $mountPoint, $owner, $user, $password='', $remoteId=-1, $accepted = false) {
+ $accepted = $accepted ? 1 : 0;
+ $query = \OCP\DB::prepare('
+ INSERT INTO `*PREFIX*share_external`
+ (`remote`, `share_token`, `password`, `name`, `owner`, `user`, `mountpoint`, `mountpoint_hash`, `accepted`, `remote_id`)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ ');
+ $hash = md5($mountPoint);
+ $query->execute(array($remote, $token, $password, $name, $owner, $user, $mountPoint, $hash, $accepted, $remoteId));
+ }
+
+ /**
* Sets up the filesystem and user for public sharing
* @param string $token string share token
* @param string $relativePath optional path relative to the share
diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php
index a93ecfb3b1b..d16dbf89ccf 100644
--- a/apps/files_sharing/lib/sharedmount.php
+++ b/apps/files_sharing/lib/sharedmount.php
@@ -8,13 +8,13 @@
namespace OCA\Files_Sharing;
-use OC\Files\Mount\Mount;
+use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
/**
* Shared mount points can be moved by the user
*/
-class SharedMount extends Mount implements MoveableMount {
+class SharedMount extends MountPoint implements MoveableMount {
/**
* @var \OC\Files\Storage\Shared $storage
*/
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index 1259197423b..dd6de15010f 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -76,7 +76,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2;
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertTrue($result->succeeded());
$data = $result->getData();
@@ -93,7 +93,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['path'] = $this->folder;
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
// check if API call was successful
$this->assertTrue($result->succeeded());
@@ -129,7 +129,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertFalse($result->succeeded());
@@ -138,7 +138,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$_POST['password'] = '';
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertFalse($result->succeeded());
// share with password should succeed
@@ -146,7 +146,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$_POST['password'] = 'foo';
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertTrue($result->succeeded());
$data = $result->getData();
@@ -157,7 +157,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['password'] = 'bar';
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertTrue($result->succeeded());
// removing password should fail
@@ -166,7 +166,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['password'] = '';
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertFalse($result->succeeded());
// cleanup
@@ -187,7 +187,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2;
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertTrue($result->succeeded());
$data = $result->getData();
@@ -213,7 +213,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2;
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertTrue($result->succeeded());
$data = $result->getData();
@@ -238,7 +238,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2;
$_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER;
- $result = Share\Api::createShare(array());
+ $result = \OCA\Files_Sharing\API\Local::createShare(array());
$this->assertFalse($result->succeeded());
@@ -259,7 +259,7 @@ class Test_Files_Sharing_Api extends TestCase {
\OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -286,7 +286,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = $this->filename;
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -323,7 +323,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = $this->filename;
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -333,7 +333,7 @@ class Test_Files_Sharing_Api extends TestCase {
// now also ask for the reshares
$_GET['reshares'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -378,7 +378,7 @@ class Test_Files_Sharing_Api extends TestCase {
// call getShare() with share ID
$params = array('id' => $share['id']);
- $result = Share\Api::getShare($params);
+ $result = \OCA\Files_Sharing\API\Local::getShare($params);
$this->assertTrue($result->succeeded());
@@ -413,7 +413,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = $this->folder;
$_GET['subfiles'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -470,7 +470,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = $value['query'];
$_GET['subfiles'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -521,7 +521,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = '/';
$_GET['subfiles'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -583,7 +583,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = '/';
$_GET['subfiles'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -652,7 +652,7 @@ class Test_Files_Sharing_Api extends TestCase {
$expectedPath1 = $this->subfolder;
$_GET['path'] = $expectedPath1;
- $result1 = Share\Api::getAllShares(array());
+ $result1 = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result1->succeeded());
@@ -664,7 +664,7 @@ class Test_Files_Sharing_Api extends TestCase {
$expectedPath2 = $this->folder . $this->subfolder;
$_GET['path'] = $expectedPath2;
- $result2 = Share\Api::getAllShares(array());
+ $result2 = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result2->succeeded());
@@ -734,7 +734,7 @@ class Test_Files_Sharing_Api extends TestCase {
$_GET['path'] = '/';
$_GET['subfiles'] = 'true';
- $result = Share\Api::getAllShares(array());
+ $result = \OCA\Files_Sharing\API\Local::getAllShares(array());
$this->assertTrue($result->succeeded());
@@ -771,7 +771,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params = array('id' => 0);
- $result = Share\Api::getShare($params);
+ $result = \OCA\Files_Sharing\API\Local::getShare($params);
$this->assertEquals(404, $result->getStatusCode());
$meta = $result->getMeta();
@@ -831,7 +831,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['permissions'] = 1;
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$meta = $result->getMeta();
$this->assertTrue($result->succeeded(), $meta['message']);
@@ -859,7 +859,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['password'] = 'foo';
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertTrue($result->succeeded());
@@ -919,7 +919,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['publicUpload'] = 'true';
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertTrue($result->succeeded());
@@ -977,7 +977,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['expireDate'] = $dateWithinRange->format('Y-m-d');
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertTrue($result->succeeded());
@@ -995,7 +995,7 @@ class Test_Files_Sharing_Api extends TestCase {
$params['_put'] = array();
$params['_put']['expireDate'] = $dateOutOfRange->format('Y-m-d');
- $result = Share\Api::updateShare($params);
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
$this->assertFalse($result->succeeded());
@@ -1033,7 +1033,7 @@ class Test_Files_Sharing_Api extends TestCase {
$this->assertEquals(2, count($items));
foreach ($items as $item) {
- $result = Share\Api::deleteShare(array('id' => $item['id']));
+ $result = \OCA\Files_Sharing\API\Local::deleteShare(array('id' => $item['id']));
$this->assertTrue($result->succeeded());
}
@@ -1072,7 +1072,7 @@ class Test_Files_Sharing_Api extends TestCase {
$this->assertEquals(1, count($items));
$item = reset($items);
- $result3 = Share\Api::deleteShare(array('id' => $item['id']));
+ $result3 = \OCA\Files_Sharing\API\Local::deleteShare(array('id' => $item['id']));
$this->assertTrue($result3->succeeded());
diff --git a/apps/files_sharing/tests/cache.php b/apps/files_sharing/tests/cache.php
index aec1983bad3..b60bba73db8 100644
--- a/apps/files_sharing/tests/cache.php
+++ b/apps/files_sharing/tests/cache.php
@@ -204,6 +204,40 @@ class Test_Files_Sharing_Cache extends TestCase {
$this->verifyFiles($check, $results);
}
+ /**
+ * Test searching by tag
+ */
+ function testSearchByTag() {
+ $userId = \OC::$server->getUserSession()->getUser()->getUId();
+ $id1 = $this->sharedCache->get('bar.txt')['fileid'];
+ $id2 = $this->sharedCache->get('subdir/another too.txt')['fileid'];
+ $id3 = $this->sharedCache->get('subdir/not a text file.xml')['fileid'];
+ $id4 = $this->sharedCache->get('subdir/another.txt')['fileid'];
+ $tagManager = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $tagManager->tagAs($id1, 'tag1');
+ $tagManager->tagAs($id1, 'tag2');
+ $tagManager->tagAs($id2, 'tag1');
+ $tagManager->tagAs($id3, 'tag1');
+ $tagManager->tagAs($id4, 'tag2');
+ $results = $this->sharedStorage->getCache()->searchByTag('tag1', $userId);
+ $check = array(
+ array(
+ 'name' => 'bar.txt',
+ 'path' => 'bar.txt'
+ ),
+ array(
+ 'name' => 'another too.txt',
+ 'path' => 'subdir/another too.txt'
+ ),
+ array(
+ 'name' => 'not a text file.xml',
+ 'path' => 'subdir/not a text file.xml'
+ ),
+ );
+ $this->verifyFiles($check, $results);
+ $tagManager->delete(array('tag1', 'tag2'));
+ }
+
function testGetFolderContentsInRoot() {
$results = $this->user2View->getDirectoryContent('/');
diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
index 2cf5dc47b63..e5b5de314d7 100644
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ b/apps/files_sharing/tests/js/shareSpec.js
@@ -9,7 +9,6 @@
*/
describe('OCA.Sharing.Util tests', function() {
- var oldFileListPrototype;
var fileList;
var testFiles;
@@ -24,10 +23,6 @@ describe('OCA.Sharing.Util tests', function() {
}
beforeEach(function() {
- // back up prototype, as it will be extended by
- // the sharing code
- oldFileListPrototype = _.extend({}, OCA.Files.FileList.prototype);
-
var $content = $('<div id="content"></div>');
$('#testArea').append($content);
// dummy file list
@@ -41,12 +36,12 @@ describe('OCA.Sharing.Util tests', function() {
$('#content').append($div);
var fileActions = new OCA.Files.FileActions();
- OCA.Sharing.Util.initialize(fileActions);
fileList = new OCA.Files.FileList(
$div, {
fileActions : fileActions
}
);
+ OCA.Sharing.Util.attach(fileList);
testFiles = [{
id: 1,
@@ -67,7 +62,6 @@ describe('OCA.Sharing.Util tests', function() {
};
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
delete OCA.Sharing.sharesLoaded;
delete OC.Share.droppedDown;
fileList.destroy();
@@ -105,7 +99,7 @@ describe('OCA.Sharing.Util tests', function() {
$action = $tr.find('.action-share');
expect($action.hasClass('permanent')).toEqual(false);
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows simple share text with share icon', function() {
@@ -125,7 +119,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows simple share text with public icon when shared with link', function() {
@@ -146,7 +140,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared');
expect(OC.basename($action.find('img').attr('src'))).toEqual('public.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-public.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-public.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows owner name when owner is available', function() {
@@ -167,7 +161,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('User One');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
});
it('shows recipients when recipients are available', function() {
var $action, $tr;
@@ -187,7 +181,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared with User One, User Two');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows static share text when file shared with user that has no share permission', function() {
@@ -209,7 +203,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text().trim()).toEqual('User One');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
});
diff --git a/apps/files_sharing/tests/js/sharedfilelistSpec.js b/apps/files_sharing/tests/js/sharedfilelistSpec.js
index dc6931af6e8..7fdc6345e38 100644
--- a/apps/files_sharing/tests/js/sharedfilelistSpec.js
+++ b/apps/files_sharing/tests/js/sharedfilelistSpec.js
@@ -9,8 +9,7 @@
*/
describe('OCA.Sharing.FileList tests', function() {
- var testFiles, alertStub, notificationStub, fileList, fileActions;
- var oldFileListPrototype;
+ var testFiles, alertStub, notificationStub, fileList;
beforeEach(function() {
alertStub = sinon.stub(OC.dialogs, 'alert');
@@ -46,18 +45,11 @@ describe('OCA.Sharing.FileList tests', function() {
'<div id="emptycontent">Empty content message</div>' +
'</div>'
);
- // back up prototype, as it will be extended by
- // the sharing code
- oldFileListPrototype = _.extend({}, OCA.Files.FileList.prototype);
- fileActions = new OCA.Files.FileActions();
- OCA.Sharing.Util.initialize(fileActions);
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
testFiles = undefined;
fileList.destroy();
fileList = undefined;
- fileActions = undefined;
notificationStub.restore();
alertStub.restore();
@@ -72,6 +64,7 @@ describe('OCA.Sharing.FileList tests', function() {
sharedWithUser: true
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -193,6 +186,7 @@ describe('OCA.Sharing.FileList tests', function() {
sharedWithUser: false
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -433,6 +427,7 @@ describe('OCA.Sharing.FileList tests', function() {
linksOnly: true
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -575,11 +570,8 @@ describe('OCA.Sharing.FileList tests', function() {
'</div>');
$('#content').append($div);
- fileList = new OCA.Files.FileList(
- $div, {
- fileActions: fileActions
- }
- );
+ fileList = new OCA.Files.FileList($div);
+ OCA.Sharing.Util.attach(fileList);
});
it('external storage root folder', function () {
diff --git a/apps/files_sharing/tests/server2server.php b/apps/files_sharing/tests/server2server.php
new file mode 100644
index 00000000000..7aec0c4951f
--- /dev/null
+++ b/apps/files_sharing/tests/server2server.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * ownCloud - test server-to-server OCS API
+ *
+ * @copyright (c) ownCloud, Inc.
+ *
+ * @author Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+use OCA\Files_Sharing\Tests\TestCase;
+
+/**
+ * Class Test_Files_Sharing_Api
+ */
+class Test_Files_Sharing_S2S_OCS_API extends TestCase {
+
+ const TEST_FOLDER_NAME = '/folder_share_api_test';
+
+ private $s2s;
+
+ protected function setUp() {
+ parent::setUp();
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+ \OCP\Share::registerBackend('test', 'Test_Share_Backend');
+
+ $this->s2s = new \OCA\Files_Sharing\API\Server2Server();
+ }
+
+ protected function tearDown() {
+ $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*share_external`');
+ $query->execute();
+
+ parent::tearDown();
+ }
+
+ /**
+ * @medium
+ */
+ function testCreateShare() {
+ // simulate a post request
+ $_POST['remote'] = 'localhost';
+ $_POST['token'] = 'token';
+ $_POST['name'] = 'name';
+ $_POST['owner'] = 'owner';
+ $_POST['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
+ $_POST['remote_id'] = 1;
+
+ $result = $this->s2s->createShare(null);
+
+ $this->assertTrue($result->succeeded());
+
+ $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share_external` WHERE `remote_id` = ?');
+ $result = $query->execute(array('1'));
+ $data = $result->fetchRow();
+
+ $this->assertSame('localhost', $data['remote']);
+ $this->assertSame('token', $data['share_token']);
+ $this->assertSame('/name', $data['name']);
+ $this->assertSame('owner', $data['owner']);
+ $this->assertSame(self::TEST_FILES_SHARING_API_USER2, $data['user']);
+ $this->assertSame(1, (int)$data['remote_id']);
+ $this->assertSame(0, (int)$data['accepted']);
+ }
+
+
+ function testDeclineShare() {
+ $dummy = \OCP\DB::prepare('
+ INSERT INTO `*PREFIX*share`
+ (`share_type`, `uid_owner`, `item_type`, `item_source`, `item_target`, `file_source`, `file_target`, `permissions`, `stime`, `token`)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ ');
+ $dummy->execute(array(\OCP\Share::SHARE_TYPE_REMOTE, self::TEST_FILES_SHARING_API_USER1, 'test', '1', '/1', '1', '/test.txt', '1', time(), 'token'));
+
+ $verify = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`');
+ $result = $verify->execute();
+ $data = $result->fetchAll();
+ $this->assertSame(1, count($data));
+
+ $_POST['token'] = 'token';
+ $this->s2s->declineShare(array('id' => $data[0]['id']));
+
+ $verify = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`');
+ $result = $verify->execute();
+ $data = $result->fetchAll();
+ $this->assertEmpty($data);
+ }
+}
diff --git a/apps/files_trashbin/js/app.js b/apps/files_trashbin/js/app.js
index a9727542bad..72d9f4a6771 100644
--- a/apps/files_trashbin/js/app.js
+++ b/apps/files_trashbin/js/app.js
@@ -57,21 +57,34 @@ OCA.Trashbin.App = {
);
}, t('files_trashbin', 'Restore'));
- fileActions.register('all', 'Delete', OC.PERMISSION_READ, function() {
- return OC.imagePath('core', 'actions/delete');
- }, function(filename, context) {
- var fileList = context.fileList;
- $('.tipsy').remove();
- var tr = fileList.findFileEl(filename);
- var deleteAction = tr.children("td.date").children(".action.delete");
- deleteAction.removeClass('icon-delete').addClass('icon-loading-small');
- fileList.disableActions();
- $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'), {
- files: JSON.stringify([filename]),
- dir: fileList.getCurrentDirectory()
- },
- _.bind(fileList._removeCallback, fileList)
- );
+ fileActions.registerAction({
+ name: 'Delete',
+ displayName: '',
+ mime: 'all',
+ permissions: OC.PERMISSION_READ,
+ icon: function() {
+ return OC.imagePath('core', 'actions/delete');
+ },
+ render: function(actionSpec, isDefault, context) {
+ var $actionLink = fileActions._makeActionLink(actionSpec, context);
+ $actionLink.attr('original-title', t('files', 'Delete permanently'));
+ context.$file.find('td:last').append($actionLink);
+ return $actionLink;
+ },
+ actionHandler: function(filename, context) {
+ var fileList = context.fileList;
+ $('.tipsy').remove();
+ var tr = fileList.findFileEl(filename);
+ var deleteAction = tr.children("td.date").children(".action.delete");
+ deleteAction.removeClass('icon-delete').addClass('icon-loading-small');
+ fileList.disableActions();
+ $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'), {
+ files: JSON.stringify([filename]),
+ dir: fileList.getCurrentDirectory()
+ },
+ _.bind(fileList._removeCallback, fileList)
+ );
+ }
});
return fileActions;
}
diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js
index a3631a2d0fe..71b63721897 100644
--- a/apps/files_trashbin/js/filelist.js
+++ b/apps/files_trashbin/js/filelist.js
@@ -64,6 +64,7 @@
return parts;
};
+ OC.Plugins.attach('OCA.Trashbin.FileList', this);
return result;
},
@@ -268,6 +269,10 @@
updateStorageStatistics: function() {
// no op because the trashbin doesn't have
// storage info like free space / used space
+ },
+
+ isSelectedDeletable: function() {
+ return true;
}
});
diff --git a/apps/files_trashbin/l10n/ar.js b/apps/files_trashbin/l10n/ar.js
index 549cac51433..9b7bc835e60 100644
--- a/apps/files_trashbin/l10n/ar.js
+++ b/apps/files_trashbin/l10n/ar.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "تعذّر استرجاع %s ",
"Deleted files" : "حذف الملفات",
"Restore" : "استعيد",
+ "Delete permanently" : "حذف بشكل دائم",
"Error" : "خطأ",
"restored" : "تمت الاستعادة",
"Nothing in here. Your trash bin is empty!" : "لا يوجد شيء هنا. سلة المهملات خاليه.",
diff --git a/apps/files_trashbin/l10n/ar.json b/apps/files_trashbin/l10n/ar.json
index 2c34afb3781..6387483851c 100644
--- a/apps/files_trashbin/l10n/ar.json
+++ b/apps/files_trashbin/l10n/ar.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "تعذّر استرجاع %s ",
"Deleted files" : "حذف الملفات",
"Restore" : "استعيد",
+ "Delete permanently" : "حذف بشكل دائم",
"Error" : "خطأ",
"restored" : "تمت الاستعادة",
"Nothing in here. Your trash bin is empty!" : "لا يوجد شيء هنا. سلة المهملات خاليه.",
diff --git a/apps/files_trashbin/l10n/ast.js b/apps/files_trashbin/l10n/ast.js
index 647602bf46b..a79b96568b0 100644
--- a/apps/files_trashbin/l10n/ast.js
+++ b/apps/files_trashbin/l10n/ast.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nun pudo restaurase %s",
"Deleted files" : "Ficheros desaniciaos",
"Restore" : "Restaurar",
+ "Delete permanently" : "Desaniciar dafechu",
"Error" : "Fallu",
"restored" : "recuperóse",
"Nothing in here. Your trash bin is empty!" : "Nun hai un res equí. La papelera ta balera!",
diff --git a/apps/files_trashbin/l10n/ast.json b/apps/files_trashbin/l10n/ast.json
index 9530d37871e..a17a3e30c37 100644
--- a/apps/files_trashbin/l10n/ast.json
+++ b/apps/files_trashbin/l10n/ast.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nun pudo restaurase %s",
"Deleted files" : "Ficheros desaniciaos",
"Restore" : "Restaurar",
+ "Delete permanently" : "Desaniciar dafechu",
"Error" : "Fallu",
"restored" : "recuperóse",
"Nothing in here. Your trash bin is empty!" : "Nun hai un res equí. La papelera ta balera!",
diff --git a/apps/files_trashbin/l10n/bg_BG.js b/apps/files_trashbin/l10n/bg_BG.js
index f910190faf1..d1eaa8b2260 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 permanently" : "Изтрий завинаги",
"Error" : "Грешка",
"restored" : "възстановено",
"Nothing in here. Your trash bin is empty!" : "Няма нищо. Кошчето е празно!",
diff --git a/apps/files_trashbin/l10n/bg_BG.json b/apps/files_trashbin/l10n/bg_BG.json
index 1d8cb72dc2a..aa287e0c212 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 permanently" : "Изтрий завинаги",
"Error" : "Грешка",
"restored" : "възстановено",
"Nothing in here. Your trash bin is empty!" : "Няма нищо. Кошчето е празно!",
diff --git a/apps/files_trashbin/l10n/bn_IN.js b/apps/files_trashbin/l10n/bn_IN.js
index eacbbbc76d6..5696acfc0f7 100644
--- a/apps/files_trashbin/l10n/bn_IN.js
+++ b/apps/files_trashbin/l10n/bn_IN.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s পুনরুদ্ধার করা যায়নি",
"Deleted files" : "ফাইলস মুছে ফেলা হয়েছে",
"Restore" : "পুনরুদ্ধার",
+ "Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Error" : "ভুল",
"restored" : "পুনরুদ্ধার করা হয়েছে",
"Nothing in here. Your trash bin is empty!" : "কিছুই নেই এখানে।আপনার ট্র্যাশ বিন খালি!",
diff --git a/apps/files_trashbin/l10n/bn_IN.json b/apps/files_trashbin/l10n/bn_IN.json
index 74a8ca13388..562e85f41f4 100644
--- a/apps/files_trashbin/l10n/bn_IN.json
+++ b/apps/files_trashbin/l10n/bn_IN.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s পুনরুদ্ধার করা যায়নি",
"Deleted files" : "ফাইলস মুছে ফেলা হয়েছে",
"Restore" : "পুনরুদ্ধার",
+ "Delete permanently" : "স্থায়ীভাবে মুছে দিন",
"Error" : "ভুল",
"restored" : "পুনরুদ্ধার করা হয়েছে",
"Nothing in here. Your trash bin is empty!" : "কিছুই নেই এখানে।আপনার ট্র্যাশ বিন খালি!",
diff --git a/apps/files_trashbin/l10n/ca.js b/apps/files_trashbin/l10n/ca.js
index 7a31c5c2d9d..3a1a5432fc8 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 permanently" : "Esborra permanentment",
"Error" : "Error",
"restored" : "restaurat",
"Nothing in here. Your trash bin is empty!" : "La paperera està buida!",
diff --git a/apps/files_trashbin/l10n/ca.json b/apps/files_trashbin/l10n/ca.json
index 586b14d0c57..123514c65ce 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 permanently" : "Esborra permanentment",
"Error" : "Error",
"restored" : "restaurat",
"Nothing in here. Your trash bin is empty!" : "La paperera està buida!",
diff --git a/apps/files_trashbin/l10n/cs_CZ.js b/apps/files_trashbin/l10n/cs_CZ.js
index 3f8ddfc2235..a150c90289e 100644
--- a/apps/files_trashbin/l10n/cs_CZ.js
+++ b/apps/files_trashbin/l10n/cs_CZ.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nelze obnovit %s",
"Deleted files" : "Odstraněné soubory",
"Restore" : "Obnovit",
+ "Delete permanently" : "Trvale odstranit",
"Error" : "Chyba",
"restored" : "obnoveno",
"Nothing in here. Your trash bin is empty!" : "Žádný obsah. Váš koš je prázdný.",
diff --git a/apps/files_trashbin/l10n/cs_CZ.json b/apps/files_trashbin/l10n/cs_CZ.json
index 628ab047ba8..09a6daa2308 100644
--- a/apps/files_trashbin/l10n/cs_CZ.json
+++ b/apps/files_trashbin/l10n/cs_CZ.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nelze obnovit %s",
"Deleted files" : "Odstraněné soubory",
"Restore" : "Obnovit",
+ "Delete permanently" : "Trvale odstranit",
"Error" : "Chyba",
"restored" : "obnoveno",
"Nothing in here. Your trash bin is empty!" : "Žádný obsah. Váš koš je prázdný.",
diff --git a/apps/files_trashbin/l10n/cy_GB.js b/apps/files_trashbin/l10n/cy_GB.js
index d5ccb0f7415..77366ecbf4a 100644
--- a/apps/files_trashbin/l10n/cy_GB.js
+++ b/apps/files_trashbin/l10n/cy_GB.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Methwyd adfer %s",
"Deleted files" : "Ffeiliau ddilewyd",
"Restore" : "Adfer",
+ "Delete permanently" : "Dileu'n barhaol",
"Error" : "Gwall",
"Nothing in here. Your trash bin is empty!" : "Does dim byd yma. Mae eich bin sbwriel yn wag!",
"Name" : "Enw",
diff --git a/apps/files_trashbin/l10n/cy_GB.json b/apps/files_trashbin/l10n/cy_GB.json
index d82ea580325..f880543c7bf 100644
--- a/apps/files_trashbin/l10n/cy_GB.json
+++ b/apps/files_trashbin/l10n/cy_GB.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Methwyd adfer %s",
"Deleted files" : "Ffeiliau ddilewyd",
"Restore" : "Adfer",
+ "Delete permanently" : "Dileu'n barhaol",
"Error" : "Gwall",
"Nothing in here. Your trash bin is empty!" : "Does dim byd yma. Mae eich bin sbwriel yn wag!",
"Name" : "Enw",
diff --git a/apps/files_trashbin/l10n/da.js b/apps/files_trashbin/l10n/da.js
index 2d24f3749f6..268c6bb56cf 100644
--- a/apps/files_trashbin/l10n/da.js
+++ b/apps/files_trashbin/l10n/da.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Kunne ikke gendanne %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gendan",
+ "Delete permanently" : "Slet permanent",
"Error" : "Fejl",
"restored" : "Gendannet",
"Nothing in here. Your trash bin is empty!" : "Intet at se her. Din papirkurv er tom!",
diff --git a/apps/files_trashbin/l10n/da.json b/apps/files_trashbin/l10n/da.json
index 4fbed5049a9..91098d1ab32 100644
--- a/apps/files_trashbin/l10n/da.json
+++ b/apps/files_trashbin/l10n/da.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Kunne ikke gendanne %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gendan",
+ "Delete permanently" : "Slet permanent",
"Error" : "Fejl",
"restored" : "Gendannet",
"Nothing in here. Your trash bin is empty!" : "Intet at se her. Din papirkurv er tom!",
diff --git a/apps/files_trashbin/l10n/de.js b/apps/files_trashbin/l10n/de.js
index 85274258143..afc2d46857a 100644
--- a/apps/files_trashbin/l10n/de.js
+++ b/apps/files_trashbin/l10n/de.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
"restored" : "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" : "Nichts zu löschen, der Papierkorb ist leer!",
diff --git a/apps/files_trashbin/l10n/de.json b/apps/files_trashbin/l10n/de.json
index 16e3cb2ae79..a40d257bba0 100644
--- a/apps/files_trashbin/l10n/de.json
+++ b/apps/files_trashbin/l10n/de.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
"restored" : "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" : "Nichts zu löschen, der Papierkorb ist leer!",
diff --git a/apps/files_trashbin/l10n/de_DE.js b/apps/files_trashbin/l10n/de_DE.js
index 70a428d4c93..03e4658f83e 100644
--- a/apps/files_trashbin/l10n/de_DE.js
+++ b/apps/files_trashbin/l10n/de_DE.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
"restored" : "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" : "Nichts zu löschen, Ihr Papierkorb ist leer!",
diff --git a/apps/files_trashbin/l10n/de_DE.json b/apps/files_trashbin/l10n/de_DE.json
index 497b6c35d55..b0542332b85 100644
--- a/apps/files_trashbin/l10n/de_DE.json
+++ b/apps/files_trashbin/l10n/de_DE.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Konnte %s nicht wiederherstellen",
"Deleted files" : "Gelöschte Dateien",
"Restore" : "Wiederherstellen",
+ "Delete permanently" : "Endgültig löschen",
"Error" : "Fehler",
"restored" : "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" : "Nichts zu löschen, Ihr Papierkorb ist leer!",
diff --git a/apps/files_trashbin/l10n/el.js b/apps/files_trashbin/l10n/el.js
index d9902dc8636..4f2ecd0a37c 100644
--- a/apps/files_trashbin/l10n/el.js
+++ b/apps/files_trashbin/l10n/el.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Αδυναμία επαναφοράς %s",
"Deleted files" : "Διεγραμμένα αρχεία",
"Restore" : "Επαναφορά",
+ "Delete permanently" : "Μόνιμη διαγραφή",
"Error" : "Σφάλμα",
"restored" : "επαναφέρθηκαν",
"Nothing in here. Your trash bin is empty!" : "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
diff --git a/apps/files_trashbin/l10n/el.json b/apps/files_trashbin/l10n/el.json
index 0004fd7242d..6a817cb622a 100644
--- a/apps/files_trashbin/l10n/el.json
+++ b/apps/files_trashbin/l10n/el.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Αδυναμία επαναφοράς %s",
"Deleted files" : "Διεγραμμένα αρχεία",
"Restore" : "Επαναφορά",
+ "Delete permanently" : "Μόνιμη διαγραφή",
"Error" : "Σφάλμα",
"restored" : "επαναφέρθηκαν",
"Nothing in here. Your trash bin is empty!" : "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
diff --git a/apps/files_trashbin/l10n/en_GB.js b/apps/files_trashbin/l10n/en_GB.js
index 7bd7a49b301..94ed2fe5d21 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 permanently" : "Delete permanently",
"Error" : "Error",
"restored" : "restored",
"Nothing in here. Your trash bin is empty!" : "Nothing in here. Your recycle bin is empty!",
diff --git a/apps/files_trashbin/l10n/en_GB.json b/apps/files_trashbin/l10n/en_GB.json
index 62603ea26ea..35f11fc8c4a 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 permanently" : "Delete permanently",
"Error" : "Error",
"restored" : "restored",
"Nothing in here. Your trash bin is empty!" : "Nothing in here. Your recycle bin is empty!",
diff --git a/apps/files_trashbin/l10n/eo.js b/apps/files_trashbin/l10n/eo.js
index ad4d45a98e0..b5261356d76 100644
--- a/apps/files_trashbin/l10n/eo.js
+++ b/apps/files_trashbin/l10n/eo.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Ne povis restaŭriĝi %s",
"Deleted files" : "Forigitaj dosieroj",
"Restore" : "Restaŭri",
+ "Delete permanently" : "Forigi por ĉiam",
"Error" : "Eraro",
"restored" : "restaŭrita",
"Nothing in here. Your trash bin is empty!" : "Nenio estas ĉi tie. Via rubujo malplenas!",
diff --git a/apps/files_trashbin/l10n/eo.json b/apps/files_trashbin/l10n/eo.json
index 3faebfb80d6..8b4734ff997 100644
--- a/apps/files_trashbin/l10n/eo.json
+++ b/apps/files_trashbin/l10n/eo.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Ne povis restaŭriĝi %s",
"Deleted files" : "Forigitaj dosieroj",
"Restore" : "Restaŭri",
+ "Delete permanently" : "Forigi por ĉiam",
"Error" : "Eraro",
"restored" : "restaŭrita",
"Nothing in here. Your trash bin is empty!" : "Nenio estas ĉi tie. Via rubujo malplenas!",
diff --git a/apps/files_trashbin/l10n/es.js b/apps/files_trashbin/l10n/es.js
index 2df71c43b31..25a327c41f7 100644
--- a/apps/files_trashbin/l10n/es.js
+++ b/apps/files_trashbin/l10n/es.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada aquí. ¡Tu papelera esta vacía!",
diff --git a/apps/files_trashbin/l10n/es.json b/apps/files_trashbin/l10n/es.json
index b37ab9647c8..e7b6928598d 100644
--- a/apps/files_trashbin/l10n/es.json
+++ b/apps/files_trashbin/l10n/es.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada aquí. ¡Tu papelera esta vacía!",
diff --git a/apps/files_trashbin/l10n/es_AR.js b/apps/files_trashbin/l10n/es_AR.js
index e49dae4688a..7b4fd9afc48 100644
--- a/apps/files_trashbin/l10n/es_AR.js
+++ b/apps/files_trashbin/l10n/es_AR.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "No se pudo restaurar %s",
"Deleted files" : "Archivos borrados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Borrar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada acá. ¡La papelera está vacía!",
diff --git a/apps/files_trashbin/l10n/es_AR.json b/apps/files_trashbin/l10n/es_AR.json
index 793a1e8b172..b17742a5863 100644
--- a/apps/files_trashbin/l10n/es_AR.json
+++ b/apps/files_trashbin/l10n/es_AR.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "No se pudo restaurar %s",
"Deleted files" : "Archivos borrados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Borrar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada acá. ¡La papelera está vacía!",
diff --git a/apps/files_trashbin/l10n/es_MX.js b/apps/files_trashbin/l10n/es_MX.js
index 2df71c43b31..25a327c41f7 100644
--- a/apps/files_trashbin/l10n/es_MX.js
+++ b/apps/files_trashbin/l10n/es_MX.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada aquí. ¡Tu papelera esta vacía!",
diff --git a/apps/files_trashbin/l10n/es_MX.json b/apps/files_trashbin/l10n/es_MX.json
index b37ab9647c8..e7b6928598d 100644
--- a/apps/files_trashbin/l10n/es_MX.json
+++ b/apps/files_trashbin/l10n/es_MX.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "No se puede restaurar %s",
"Deleted files" : "Archivos eliminados",
"Restore" : "Recuperar",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Error",
"restored" : "recuperado",
"Nothing in here. Your trash bin is empty!" : "No hay nada aquí. ¡Tu papelera esta vacía!",
diff --git a/apps/files_trashbin/l10n/et_EE.js b/apps/files_trashbin/l10n/et_EE.js
index 3067589bd9b..f5ebbdc4a62 100644
--- a/apps/files_trashbin/l10n/et_EE.js
+++ b/apps/files_trashbin/l10n/et_EE.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s ei saa taastada",
"Deleted files" : "Kustutatud failid",
"Restore" : "Taasta",
+ "Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
"Nothing in here. Your trash bin is empty!" : "Siin pole midagi. Sinu prügikast on tühi!",
diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json
index 2e6d239f421..b3c2f1a6809 100644
--- a/apps/files_trashbin/l10n/et_EE.json
+++ b/apps/files_trashbin/l10n/et_EE.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s ei saa taastada",
"Deleted files" : "Kustutatud failid",
"Restore" : "Taasta",
+ "Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
"Nothing in here. Your trash bin is empty!" : "Siin pole midagi. Sinu prügikast on tühi!",
diff --git a/apps/files_trashbin/l10n/eu.js b/apps/files_trashbin/l10n/eu.js
index 747175d830c..e6442ad4d6d 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 permanently" : "Ezabatu betirako",
"Error" : "Errorea",
"restored" : "Berrezarrita",
"Nothing in here. Your trash bin is empty!" : "Ez dago ezer ez. Zure zakarrontzia hutsik dago!",
diff --git a/apps/files_trashbin/l10n/eu.json b/apps/files_trashbin/l10n/eu.json
index f86ba4230ab..5733ca6ab68 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 permanently" : "Ezabatu betirako",
"Error" : "Errorea",
"restored" : "Berrezarrita",
"Nothing in here. Your trash bin is empty!" : "Ez dago ezer ez. Zure zakarrontzia hutsik dago!",
diff --git a/apps/files_trashbin/l10n/fa.js b/apps/files_trashbin/l10n/fa.js
index a87d9a5c113..5033d6766a6 100644
--- a/apps/files_trashbin/l10n/fa.js
+++ b/apps/files_trashbin/l10n/fa.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s را نمی توان بازگرداند",
"Deleted files" : "فایل های حذف شده",
"Restore" : "بازیابی",
+ "Delete permanently" : "حذف قطعی",
"Error" : "خطا",
"restored" : "بازیابی شد",
"Nothing in here. Your trash bin is empty!" : "هیچ چیزی اینجا نیست. سطل زباله ی شما خالی است.",
diff --git a/apps/files_trashbin/l10n/fa.json b/apps/files_trashbin/l10n/fa.json
index 94748c98899..73a55b1a86d 100644
--- a/apps/files_trashbin/l10n/fa.json
+++ b/apps/files_trashbin/l10n/fa.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s را نمی توان بازگرداند",
"Deleted files" : "فایل های حذف شده",
"Restore" : "بازیابی",
+ "Delete permanently" : "حذف قطعی",
"Error" : "خطا",
"restored" : "بازیابی شد",
"Nothing in here. Your trash bin is empty!" : "هیچ چیزی اینجا نیست. سطل زباله ی شما خالی است.",
diff --git a/apps/files_trashbin/l10n/fi_FI.js b/apps/files_trashbin/l10n/fi_FI.js
index 1b69bf5c75f..03e20473f2c 100644
--- a/apps/files_trashbin/l10n/fi_FI.js
+++ b/apps/files_trashbin/l10n/fi_FI.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Kohteen %s palautus epäonnistui",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Delete permanently" : "Poista pysyvästi",
"Error" : "Virhe",
"restored" : "palautettu",
"Nothing in here. Your trash bin is empty!" : "Tyhjää täynnä! Roskakorissa ei ole mitään.",
diff --git a/apps/files_trashbin/l10n/fi_FI.json b/apps/files_trashbin/l10n/fi_FI.json
index 25b3d71dced..91fc4028f92 100644
--- a/apps/files_trashbin/l10n/fi_FI.json
+++ b/apps/files_trashbin/l10n/fi_FI.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Kohteen %s palautus epäonnistui",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Delete permanently" : "Poista pysyvästi",
"Error" : "Virhe",
"restored" : "palautettu",
"Nothing in here. Your trash bin is empty!" : "Tyhjää täynnä! Roskakorissa ei ole mitään.",
diff --git a/apps/files_trashbin/l10n/fr.js b/apps/files_trashbin/l10n/fr.js
index ddcdc495de5..f8fea6d35a7 100644
--- a/apps/files_trashbin/l10n/fr.js
+++ b/apps/files_trashbin/l10n/fr.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Impossible de restaurer %s",
"Deleted files" : "Fichiers supprimés",
"Restore" : "Restaurer",
+ "Delete permanently" : "Supprimer de façon définitive",
"Error" : "Erreur",
"restored" : "restauré",
"Nothing in here. Your trash bin is empty!" : "Il n'y a rien ici. Votre corbeille est vide !",
diff --git a/apps/files_trashbin/l10n/fr.json b/apps/files_trashbin/l10n/fr.json
index bc6cda70713..208be4b7be9 100644
--- a/apps/files_trashbin/l10n/fr.json
+++ b/apps/files_trashbin/l10n/fr.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Impossible de restaurer %s",
"Deleted files" : "Fichiers supprimés",
"Restore" : "Restaurer",
+ "Delete permanently" : "Supprimer de façon définitive",
"Error" : "Erreur",
"restored" : "restauré",
"Nothing in here. Your trash bin is empty!" : "Il n'y a rien ici. Votre corbeille est vide !",
diff --git a/apps/files_trashbin/l10n/gl.js b/apps/files_trashbin/l10n/gl.js
index 701c1354dfd..036534aac2d 100644
--- a/apps/files_trashbin/l10n/gl.js
+++ b/apps/files_trashbin/l10n/gl.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Non foi posíbel restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restabelecer",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
"restored" : "restaurado",
"Nothing in here. Your trash bin is empty!" : "Aquí non hai nada. O cesto do lixo está baleiro!",
diff --git a/apps/files_trashbin/l10n/gl.json b/apps/files_trashbin/l10n/gl.json
index 74ac40c4f32..790cfa21506 100644
--- a/apps/files_trashbin/l10n/gl.json
+++ b/apps/files_trashbin/l10n/gl.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Non foi posíbel restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restabelecer",
+ "Delete permanently" : "Eliminar permanentemente",
"Error" : "Erro",
"restored" : "restaurado",
"Nothing in here. Your trash bin is empty!" : "Aquí non hai nada. O cesto do lixo está baleiro!",
diff --git a/apps/files_trashbin/l10n/he.js b/apps/files_trashbin/l10n/he.js
index ea5d131a9e4..0482241e92a 100644
--- a/apps/files_trashbin/l10n/he.js
+++ b/apps/files_trashbin/l10n/he.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "לא ניתן לשחזר את %s",
"Deleted files" : "קבצים שנמחקו",
"Restore" : "שחזור",
+ "Delete permanently" : "מחיקה לצמיתות",
"Error" : "שגיאה",
"restored" : "שוחזר",
"Nothing in here. Your trash bin is empty!" : "אין כאן שום דבר. סל המיחזור שלך ריק!",
diff --git a/apps/files_trashbin/l10n/he.json b/apps/files_trashbin/l10n/he.json
index d0db85c41b9..621c785c17e 100644
--- a/apps/files_trashbin/l10n/he.json
+++ b/apps/files_trashbin/l10n/he.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "לא ניתן לשחזר את %s",
"Deleted files" : "קבצים שנמחקו",
"Restore" : "שחזור",
+ "Delete permanently" : "מחיקה לצמיתות",
"Error" : "שגיאה",
"restored" : "שוחזר",
"Nothing in here. Your trash bin is empty!" : "אין כאן שום דבר. סל המיחזור שלך ריק!",
diff --git a/apps/files_trashbin/l10n/hr.js b/apps/files_trashbin/l10n/hr.js
index e05fde1c8a6..56a26005882 100644
--- a/apps/files_trashbin/l10n/hr.js
+++ b/apps/files_trashbin/l10n/hr.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nije moguće obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovite",
+ "Delete permanently" : "Trajno izbrišite",
"Error" : "Pogreška",
"restored" : "Obnovljeno",
"Nothing in here. Your trash bin is empty!" : "Ovdje nema ničega. Vaša kantica je prazna!",
diff --git a/apps/files_trashbin/l10n/hr.json b/apps/files_trashbin/l10n/hr.json
index 7ce4749b133..f1b5f0bd291 100644
--- a/apps/files_trashbin/l10n/hr.json
+++ b/apps/files_trashbin/l10n/hr.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nije moguće obnoviti %s",
"Deleted files" : "Izbrisane datoteke",
"Restore" : "Obnovite",
+ "Delete permanently" : "Trajno izbrišite",
"Error" : "Pogreška",
"restored" : "Obnovljeno",
"Nothing in here. Your trash bin is empty!" : "Ovdje nema ničega. Vaša kantica je prazna!",
diff --git a/apps/files_trashbin/l10n/hu_HU.js b/apps/files_trashbin/l10n/hu_HU.js
index cd057777275..fc28d0edd37 100644
--- a/apps/files_trashbin/l10n/hu_HU.js
+++ b/apps/files_trashbin/l10n/hu_HU.js
@@ -5,6 +5,7 @@ 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 permanently" : "Végleges törlés",
"Error" : "Hiba",
"restored" : "visszaállítva",
"Nothing in here. Your trash bin is empty!" : "Itt nincs semmi. Az Ön szemetes mappája üres!",
diff --git a/apps/files_trashbin/l10n/hu_HU.json b/apps/files_trashbin/l10n/hu_HU.json
index f989f402328..529b1131c28 100644
--- a/apps/files_trashbin/l10n/hu_HU.json
+++ b/apps/files_trashbin/l10n/hu_HU.json
@@ -3,6 +3,7 @@
"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 permanently" : "Végleges törlés",
"Error" : "Hiba",
"restored" : "visszaállítva",
"Nothing in here. Your trash bin is empty!" : "Itt nincs semmi. Az Ön szemetes mappája üres!",
diff --git a/apps/files_trashbin/l10n/id.js b/apps/files_trashbin/l10n/id.js
index 6e13e455591..77da59b8b5a 100644
--- a/apps/files_trashbin/l10n/id.js
+++ b/apps/files_trashbin/l10n/id.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Berkas yang dihapus",
"Restore" : "Pulihkan",
+ "Delete permanently" : "Hapus secara permanen",
"Error" : "Galat",
"Nothing in here. Your trash bin is empty!" : "Tempat sampah anda kosong!",
"Name" : "Nama",
diff --git a/apps/files_trashbin/l10n/id.json b/apps/files_trashbin/l10n/id.json
index f29df5cd07e..88917093634 100644
--- a/apps/files_trashbin/l10n/id.json
+++ b/apps/files_trashbin/l10n/id.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Tidak dapat memulihkan %s",
"Deleted files" : "Berkas yang dihapus",
"Restore" : "Pulihkan",
+ "Delete permanently" : "Hapus secara permanen",
"Error" : "Galat",
"Nothing in here. Your trash bin is empty!" : "Tempat sampah anda kosong!",
"Name" : "Nama",
diff --git a/apps/files_trashbin/l10n/it.js b/apps/files_trashbin/l10n/it.js
index 5e57848c479..c9db2daa497 100644
--- a/apps/files_trashbin/l10n/it.js
+++ b/apps/files_trashbin/l10n/it.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Impossibile ripristinare %s",
"Deleted files" : "File eliminati",
"Restore" : "Ripristina",
+ "Delete permanently" : "Elimina definitivamente",
"Error" : "Errore",
"restored" : "ripristinati",
"Nothing in here. Your trash bin is empty!" : "Qui non c'è niente. Il tuo cestino è vuoto.",
diff --git a/apps/files_trashbin/l10n/it.json b/apps/files_trashbin/l10n/it.json
index 25efb47a65a..bfd29454f2d 100644
--- a/apps/files_trashbin/l10n/it.json
+++ b/apps/files_trashbin/l10n/it.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Impossibile ripristinare %s",
"Deleted files" : "File eliminati",
"Restore" : "Ripristina",
+ "Delete permanently" : "Elimina definitivamente",
"Error" : "Errore",
"restored" : "ripristinati",
"Nothing in here. Your trash bin is empty!" : "Qui non c'è niente. Il tuo cestino è vuoto.",
diff --git a/apps/files_trashbin/l10n/ja.js b/apps/files_trashbin/l10n/ja.js
index dba8442c5d4..8263cb74b2f 100644
--- a/apps/files_trashbin/l10n/ja.js
+++ b/apps/files_trashbin/l10n/ja.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s を復元できませんでした",
"Deleted files" : "ゴミ箱",
"Restore" : "復元",
+ "Delete permanently" : "完全に削除する",
"Error" : "エラー",
"restored" : "復元済",
"Nothing in here. Your trash bin is empty!" : "ここには何もありません。ゴミ箱は空です!",
diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json
index cd6f6c37e12..b95a8d3c8d1 100644
--- a/apps/files_trashbin/l10n/ja.json
+++ b/apps/files_trashbin/l10n/ja.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s を復元できませんでした",
"Deleted files" : "ゴミ箱",
"Restore" : "復元",
+ "Delete permanently" : "完全に削除する",
"Error" : "エラー",
"restored" : "復元済",
"Nothing in here. Your trash bin is empty!" : "ここには何もありません。ゴミ箱は空です!",
diff --git a/apps/files_trashbin/l10n/ka_GE.js b/apps/files_trashbin/l10n/ka_GE.js
index 49f9fd4b0b0..6238dd4f2d5 100644
--- a/apps/files_trashbin/l10n/ka_GE.js
+++ b/apps/files_trashbin/l10n/ka_GE.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s–ის აღდგენა ვერ მოხერხდა",
"Deleted files" : "წაშლილი ფაილები",
"Restore" : "აღდგენა",
+ "Delete permanently" : "სრულად წაშლა",
"Error" : "შეცდომა",
"Nothing in here. Your trash bin is empty!" : "აქ არაფერი არ არის. სანაგვე ყუთი ცარიელია!",
"Name" : "სახელი",
diff --git a/apps/files_trashbin/l10n/ka_GE.json b/apps/files_trashbin/l10n/ka_GE.json
index 98b165a02dd..f2a5c068a2c 100644
--- a/apps/files_trashbin/l10n/ka_GE.json
+++ b/apps/files_trashbin/l10n/ka_GE.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s–ის აღდგენა ვერ მოხერხდა",
"Deleted files" : "წაშლილი ფაილები",
"Restore" : "აღდგენა",
+ "Delete permanently" : "სრულად წაშლა",
"Error" : "შეცდომა",
"Nothing in here. Your trash bin is empty!" : "აქ არაფერი არ არის. სანაგვე ყუთი ცარიელია!",
"Name" : "სახელი",
diff --git a/apps/files_trashbin/l10n/km.js b/apps/files_trashbin/l10n/km.js
index a5bac8c2bd6..945a3b704de 100644
--- a/apps/files_trashbin/l10n/km.js
+++ b/apps/files_trashbin/l10n/km.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
"Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
"Restore" : "ស្ដារ​មក​វិញ",
+ "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Error" : "កំហុស",
"restored" : "បាន​ស្ដារ​វិញ",
"Nothing in here. Your trash bin is empty!" : "គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ធុង​សំរាម​របស់​អ្នក​គឺ​ទទេ!",
diff --git a/apps/files_trashbin/l10n/km.json b/apps/files_trashbin/l10n/km.json
index bda740966e8..39ba9fada5c 100644
--- a/apps/files_trashbin/l10n/km.json
+++ b/apps/files_trashbin/l10n/km.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
"Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
"Restore" : "ស្ដារ​មក​វិញ",
+ "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
"Error" : "កំហុស",
"restored" : "បាន​ស្ដារ​វិញ",
"Nothing in here. Your trash bin is empty!" : "គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ធុង​សំរាម​របស់​អ្នក​គឺ​ទទេ!",
diff --git a/apps/files_trashbin/l10n/ko.js b/apps/files_trashbin/l10n/ko.js
index 6f3f68cc666..0f6f0f47214 100644
--- a/apps/files_trashbin/l10n/ko.js
+++ b/apps/files_trashbin/l10n/ko.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s을(를) 복원할 수 없습니다",
"Deleted files" : "삭제된 파일",
"Restore" : "복원",
+ "Delete permanently" : "영구히 삭제",
"Error" : "오류",
"restored" : "복원됨",
"Nothing in here. Your trash bin is empty!" : "휴지통이 비어 있습니다!",
diff --git a/apps/files_trashbin/l10n/ko.json b/apps/files_trashbin/l10n/ko.json
index 834c798fb7f..e43f2edfd0e 100644
--- a/apps/files_trashbin/l10n/ko.json
+++ b/apps/files_trashbin/l10n/ko.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s을(를) 복원할 수 없습니다",
"Deleted files" : "삭제된 파일",
"Restore" : "복원",
+ "Delete permanently" : "영구히 삭제",
"Error" : "오류",
"restored" : "복원됨",
"Nothing in here. Your trash bin is empty!" : "휴지통이 비어 있습니다!",
diff --git a/apps/files_trashbin/l10n/lt_LT.js b/apps/files_trashbin/l10n/lt_LT.js
index b7a43703e83..8e6cfafd2cd 100644
--- a/apps/files_trashbin/l10n/lt_LT.js
+++ b/apps/files_trashbin/l10n/lt_LT.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nepavyko atkurti %s",
"Deleted files" : "Ištrinti failai",
"Restore" : "Atstatyti",
+ "Delete permanently" : "Ištrinti negrįžtamai",
"Error" : "Klaida",
"restored" : "atstatyta",
"Nothing in here. Your trash bin is empty!" : "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
diff --git a/apps/files_trashbin/l10n/lt_LT.json b/apps/files_trashbin/l10n/lt_LT.json
index 7c572ddc20d..05a435a3845 100644
--- a/apps/files_trashbin/l10n/lt_LT.json
+++ b/apps/files_trashbin/l10n/lt_LT.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nepavyko atkurti %s",
"Deleted files" : "Ištrinti failai",
"Restore" : "Atstatyti",
+ "Delete permanently" : "Ištrinti negrįžtamai",
"Error" : "Klaida",
"restored" : "atstatyta",
"Nothing in here. Your trash bin is empty!" : "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
diff --git a/apps/files_trashbin/l10n/lv.js b/apps/files_trashbin/l10n/lv.js
index 463be504d54..e5c56baec2b 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 permanently" : "Dzēst pavisam",
"Error" : "Kļūda",
"restored" : "atjaunots",
"Nothing in here. Your trash bin is empty!" : "Šeit nekā nav. Jūsu miskaste ir tukša!",
diff --git a/apps/files_trashbin/l10n/lv.json b/apps/files_trashbin/l10n/lv.json
index ad0e2aa9842..2e4936a22db 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 permanently" : "Dzēst pavisam",
"Error" : "Kļūda",
"restored" : "atjaunots",
"Nothing in here. Your trash bin is empty!" : "Šeit nekā nav. Jūsu miskaste ir tukša!",
diff --git a/apps/files_trashbin/l10n/mk.js b/apps/files_trashbin/l10n/mk.js
index 6d74f64e37c..7a1badfabc7 100644
--- a/apps/files_trashbin/l10n/mk.js
+++ b/apps/files_trashbin/l10n/mk.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Не можеше да се поврати %s",
"Deleted files" : "Избришани датотеки",
"Restore" : "Поврати",
+ "Delete permanently" : "Трајно избришани",
"Error" : "Грешка",
"restored" : "повратени",
"Nothing in here. Your trash bin is empty!" : "Тука нема ништо. Вашата корпа за отпадоци е празна!",
diff --git a/apps/files_trashbin/l10n/mk.json b/apps/files_trashbin/l10n/mk.json
index 45eef9bfd61..cb7469fe181 100644
--- a/apps/files_trashbin/l10n/mk.json
+++ b/apps/files_trashbin/l10n/mk.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Не можеше да се поврати %s",
"Deleted files" : "Избришани датотеки",
"Restore" : "Поврати",
+ "Delete permanently" : "Трајно избришани",
"Error" : "Грешка",
"restored" : "повратени",
"Nothing in here. Your trash bin is empty!" : "Тука нема ништо. Вашата корпа за отпадоци е празна!",
diff --git a/apps/files_trashbin/l10n/nb_NO.js b/apps/files_trashbin/l10n/nb_NO.js
index b5c2821a305..9a5a8c04b4a 100644
--- a/apps/files_trashbin/l10n/nb_NO.js
+++ b/apps/files_trashbin/l10n/nb_NO.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Kunne ikke gjenopprette %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gjenopprett",
+ "Delete permanently" : "Slett permanent",
"Error" : "Feil",
"restored" : "gjenopprettet",
"Nothing in here. Your trash bin is empty!" : "Ingenting her. Søppelkassen din er tom!",
diff --git a/apps/files_trashbin/l10n/nb_NO.json b/apps/files_trashbin/l10n/nb_NO.json
index a671f461155..29e218ffe6e 100644
--- a/apps/files_trashbin/l10n/nb_NO.json
+++ b/apps/files_trashbin/l10n/nb_NO.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Kunne ikke gjenopprette %s",
"Deleted files" : "Slettede filer",
"Restore" : "Gjenopprett",
+ "Delete permanently" : "Slett permanent",
"Error" : "Feil",
"restored" : "gjenopprettet",
"Nothing in here. Your trash bin is empty!" : "Ingenting her. Søppelkassen din er tom!",
diff --git a/apps/files_trashbin/l10n/nl.js b/apps/files_trashbin/l10n/nl.js
index 3bd48a07eff..b465c681f8a 100644
--- a/apps/files_trashbin/l10n/nl.js
+++ b/apps/files_trashbin/l10n/nl.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Kon %s niet herstellen",
"Deleted files" : "Verwijderde bestanden",
"Restore" : "Herstellen",
+ "Delete permanently" : "Definitief verwijderen",
"Error" : "Fout",
"restored" : "hersteld",
"Nothing in here. Your trash bin is empty!" : "Niets te vinden. Uw prullenbak is leeg!",
diff --git a/apps/files_trashbin/l10n/nl.json b/apps/files_trashbin/l10n/nl.json
index 5d4134ed1ce..4bb2f9cc38b 100644
--- a/apps/files_trashbin/l10n/nl.json
+++ b/apps/files_trashbin/l10n/nl.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Kon %s niet herstellen",
"Deleted files" : "Verwijderde bestanden",
"Restore" : "Herstellen",
+ "Delete permanently" : "Definitief verwijderen",
"Error" : "Fout",
"restored" : "hersteld",
"Nothing in here. Your trash bin is empty!" : "Niets te vinden. Uw prullenbak is leeg!",
diff --git a/apps/files_trashbin/l10n/nn_NO.js b/apps/files_trashbin/l10n/nn_NO.js
index 2c42392757d..2b8cdf074c2 100644
--- a/apps/files_trashbin/l10n/nn_NO.js
+++ b/apps/files_trashbin/l10n/nn_NO.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Klarte ikkje gjenoppretta %s",
"Deleted files" : "Sletta filer",
"Restore" : "Gjenopprett",
+ "Delete permanently" : "Slett for godt",
"Error" : "Feil",
"restored" : "gjenoppretta",
"Nothing in here. Your trash bin is empty!" : "Ingenting her. Papirkorga di er tom!",
diff --git a/apps/files_trashbin/l10n/nn_NO.json b/apps/files_trashbin/l10n/nn_NO.json
index f5fe09fa06e..33483807394 100644
--- a/apps/files_trashbin/l10n/nn_NO.json
+++ b/apps/files_trashbin/l10n/nn_NO.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Klarte ikkje gjenoppretta %s",
"Deleted files" : "Sletta filer",
"Restore" : "Gjenopprett",
+ "Delete permanently" : "Slett for godt",
"Error" : "Feil",
"restored" : "gjenoppretta",
"Nothing in here. Your trash bin is empty!" : "Ingenting her. Papirkorga di er tom!",
diff --git a/apps/files_trashbin/l10n/pl.js b/apps/files_trashbin/l10n/pl.js
index 13053c3bae4..1ce30e81254 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 permanently" : "Trwale usuń",
"Error" : "Błąd",
"restored" : "przywrócony",
"Nothing in here. Your trash bin is empty!" : "Nic tu nie ma. Twój kosz jest pusty!",
diff --git a/apps/files_trashbin/l10n/pl.json b/apps/files_trashbin/l10n/pl.json
index edb0a2daafa..23b986d911d 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 permanently" : "Trwale usuń",
"Error" : "Błąd",
"restored" : "przywrócony",
"Nothing in here. Your trash bin is empty!" : "Nic tu nie ma. Twój kosz jest pusty!",
diff --git a/apps/files_trashbin/l10n/pt_BR.js b/apps/files_trashbin/l10n/pt_BR.js
index f1b7e447381..b915b181c3f 100644
--- a/apps/files_trashbin/l10n/pt_BR.js
+++ b/apps/files_trashbin/l10n/pt_BR.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Arquivos apagados",
"Restore" : "Restaurar",
+ "Delete permanently" : "Excluir permanentemente",
"Error" : "Erro",
"restored" : "restaurado",
"Nothing in here. Your trash bin is empty!" : "Nada aqui. Sua lixeira está vazia!",
diff --git a/apps/files_trashbin/l10n/pt_BR.json b/apps/files_trashbin/l10n/pt_BR.json
index 801f91f18bd..6dd20a39a21 100644
--- a/apps/files_trashbin/l10n/pt_BR.json
+++ b/apps/files_trashbin/l10n/pt_BR.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Arquivos apagados",
"Restore" : "Restaurar",
+ "Delete permanently" : "Excluir permanentemente",
"Error" : "Erro",
"restored" : "restaurado",
"Nothing in here. Your trash bin is empty!" : "Nada aqui. Sua lixeira está vazia!",
diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js
index 303c8ad8c37..b631913c60a 100644
--- a/apps/files_trashbin/l10n/pt_PT.js
+++ b/apps/files_trashbin/l10n/pt_PT.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restaurar",
+ "Delete permanently" : "Apagar Para Sempre",
"Error" : "Erro",
"restored" : "Restaurado",
"Nothing in here. Your trash bin is empty!" : "Não existe nada aqui. O seu caixote de lixo está vazio!",
diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json
index 431c381074a..2cb149a1ef9 100644
--- a/apps/files_trashbin/l10n/pt_PT.json
+++ b/apps/files_trashbin/l10n/pt_PT.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Não foi possível restaurar %s",
"Deleted files" : "Ficheiros eliminados",
"Restore" : "Restaurar",
+ "Delete permanently" : "Apagar Para Sempre",
"Error" : "Erro",
"restored" : "Restaurado",
"Nothing in here. Your trash bin is empty!" : "Não existe nada aqui. O seu caixote de lixo está vazio!",
diff --git a/apps/files_trashbin/l10n/ro.js b/apps/files_trashbin/l10n/ro.js
index c0ba5741695..0feb1e8e721 100644
--- a/apps/files_trashbin/l10n/ro.js
+++ b/apps/files_trashbin/l10n/ro.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
+ "Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
"Name" : "Nume",
"Delete" : "Șterge"
diff --git a/apps/files_trashbin/l10n/ro.json b/apps/files_trashbin/l10n/ro.json
index d0c02197e46..758dc748460 100644
--- a/apps/files_trashbin/l10n/ro.json
+++ b/apps/files_trashbin/l10n/ro.json
@@ -1,6 +1,7 @@
{ "translations": {
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
+ "Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
"Name" : "Nume",
"Delete" : "Șterge"
diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js
index dbb2df1f704..8b7d15d0c20 100644
--- a/apps/files_trashbin/l10n/ru.js
+++ b/apps/files_trashbin/l10n/ru.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s не может быть восстановлен",
"Deleted files" : "Удалённые файлы",
"Restore" : "Восстановить",
+ "Delete permanently" : "Удалить окончательно",
"Error" : "Ошибка",
"restored" : "восстановлен",
"Nothing in here. Your trash bin is empty!" : "Здесь ничего нет. Ваша корзина пуста!",
diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json
index 3e67045967d..a1c6390719a 100644
--- a/apps/files_trashbin/l10n/ru.json
+++ b/apps/files_trashbin/l10n/ru.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s не может быть восстановлен",
"Deleted files" : "Удалённые файлы",
"Restore" : "Восстановить",
+ "Delete permanently" : "Удалить окончательно",
"Error" : "Ошибка",
"restored" : "восстановлен",
"Nothing in here. Your trash bin is empty!" : "Здесь ничего нет. Ваша корзина пуста!",
diff --git a/apps/files_trashbin/l10n/sk_SK.js b/apps/files_trashbin/l10n/sk_SK.js
index 9069b4ea509..e01e00994ba 100644
--- a/apps/files_trashbin/l10n/sk_SK.js
+++ b/apps/files_trashbin/l10n/sk_SK.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nemožno obnoviť %s",
"Deleted files" : "Zmazané súbory",
"Restore" : "Obnoviť",
+ "Delete permanently" : "Zmazať trvalo",
"Error" : "Chyba",
"restored" : "obnovené",
"Nothing in here. Your trash bin is empty!" : "Žiadny obsah. Kôš je prázdny!",
diff --git a/apps/files_trashbin/l10n/sk_SK.json b/apps/files_trashbin/l10n/sk_SK.json
index e3b95e1d591..391d68c256a 100644
--- a/apps/files_trashbin/l10n/sk_SK.json
+++ b/apps/files_trashbin/l10n/sk_SK.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nemožno obnoviť %s",
"Deleted files" : "Zmazané súbory",
"Restore" : "Obnoviť",
+ "Delete permanently" : "Zmazať trvalo",
"Error" : "Chyba",
"restored" : "obnovené",
"Nothing in here. Your trash bin is empty!" : "Žiadny obsah. Kôš je prázdny!",
diff --git a/apps/files_trashbin/l10n/sl.js b/apps/files_trashbin/l10n/sl.js
index 60cecde1cb8..5ce1c88fa01 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 permanently" : "Izbriši dokončno",
"Error" : "Napaka",
"restored" : "obnovljeno",
"Nothing in here. Your trash bin is empty!" : "Mapa smeti je prazna.",
diff --git a/apps/files_trashbin/l10n/sl.json b/apps/files_trashbin/l10n/sl.json
index 0431bb30997..64a7330f04f 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 permanently" : "Izbriši dokončno",
"Error" : "Napaka",
"restored" : "obnovljeno",
"Nothing in here. Your trash bin is empty!" : "Mapa smeti je prazna.",
diff --git a/apps/files_trashbin/l10n/sq.js b/apps/files_trashbin/l10n/sq.js
index 6c4e2b4461f..159a1ca38ad 100644
--- a/apps/files_trashbin/l10n/sq.js
+++ b/apps/files_trashbin/l10n/sq.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Nuk munda ta rivendos %s",
"Deleted files" : "Skedarë të fshirë ",
"Restore" : "Rivendos",
+ "Delete permanently" : "Fshi përfundimisht",
"Error" : "Veprim i gabuar",
"restored" : "rivendosur",
"Nothing in here. Your trash bin is empty!" : "Këtu nuk ka asgjë. Koshi juaj është bosh!",
diff --git a/apps/files_trashbin/l10n/sq.json b/apps/files_trashbin/l10n/sq.json
index fc766582d5f..7f687ef404c 100644
--- a/apps/files_trashbin/l10n/sq.json
+++ b/apps/files_trashbin/l10n/sq.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Nuk munda ta rivendos %s",
"Deleted files" : "Skedarë të fshirë ",
"Restore" : "Rivendos",
+ "Delete permanently" : "Fshi përfundimisht",
"Error" : "Veprim i gabuar",
"restored" : "rivendosur",
"Nothing in here. Your trash bin is empty!" : "Këtu nuk ka asgjë. Koshi juaj është bosh!",
diff --git a/apps/files_trashbin/l10n/sr.js b/apps/files_trashbin/l10n/sr.js
index fdaae6185ad..5fcfd7932a9 100644
--- a/apps/files_trashbin/l10n/sr.js
+++ b/apps/files_trashbin/l10n/sr.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Deleted files" : "Обрисане датотеке",
"Restore" : "Врати",
+ "Delete permanently" : "Обриши за стално",
"Error" : "Грешка",
"Nothing in here. Your trash bin is empty!" : "Овде нема ништа. Корпа за отпатке је празна.",
"Name" : "Име",
diff --git a/apps/files_trashbin/l10n/sr.json b/apps/files_trashbin/l10n/sr.json
index d4d8c91bf17..355d39d72dd 100644
--- a/apps/files_trashbin/l10n/sr.json
+++ b/apps/files_trashbin/l10n/sr.json
@@ -1,6 +1,7 @@
{ "translations": {
"Deleted files" : "Обрисане датотеке",
"Restore" : "Врати",
+ "Delete permanently" : "Обриши за стално",
"Error" : "Грешка",
"Nothing in here. Your trash bin is empty!" : "Овде нема ништа. Корпа за отпатке је празна.",
"Name" : "Име",
diff --git a/apps/files_trashbin/l10n/sv.js b/apps/files_trashbin/l10n/sv.js
index eb7ad2dcd41..3f1527e2386 100644
--- a/apps/files_trashbin/l10n/sv.js
+++ b/apps/files_trashbin/l10n/sv.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Kunde inte återställa %s",
"Deleted files" : "Raderade filer",
"Restore" : "Återskapa",
+ "Delete permanently" : "Radera permanent",
"Error" : "Fel",
"restored" : "återställd",
"Nothing in here. Your trash bin is empty!" : "Ingenting här. Din papperskorg är tom!",
diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json
index 114b5f7738b..a570b0f9451 100644
--- a/apps/files_trashbin/l10n/sv.json
+++ b/apps/files_trashbin/l10n/sv.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Kunde inte återställa %s",
"Deleted files" : "Raderade filer",
"Restore" : "Återskapa",
+ "Delete permanently" : "Radera permanent",
"Error" : "Fel",
"restored" : "återställd",
"Nothing in here. Your trash bin is empty!" : "Ingenting här. Din papperskorg är tom!",
diff --git a/apps/files_trashbin/l10n/te.js b/apps/files_trashbin/l10n/te.js
index 505aced8869..e851ec86421 100644
--- a/apps/files_trashbin/l10n/te.js
+++ b/apps/files_trashbin/l10n/te.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"files_trashbin",
{
+ "Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
"Name" : "పేరు",
"Delete" : "తొలగించు"
diff --git a/apps/files_trashbin/l10n/te.json b/apps/files_trashbin/l10n/te.json
index 37f365e370d..4df06631a0c 100644
--- a/apps/files_trashbin/l10n/te.json
+++ b/apps/files_trashbin/l10n/te.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Delete permanently" : "శాశ్వతంగా తొలగించు",
"Error" : "పొరపాటు",
"Name" : "పేరు",
"Delete" : "తొలగించు"
diff --git a/apps/files_trashbin/l10n/tr.js b/apps/files_trashbin/l10n/tr.js
index f8e8b4daff1..6ea646661a3 100644
--- a/apps/files_trashbin/l10n/tr.js
+++ b/apps/files_trashbin/l10n/tr.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "%s geri yüklenemedi",
"Deleted files" : "Silinmiş dosyalar",
"Restore" : "Geri yükle",
+ "Delete permanently" : "Kalıcı olarak sil",
"Error" : "Hata",
"restored" : "geri yüklendi",
"Nothing in here. Your trash bin is empty!" : "Burada hiçbir şey yok. Çöp kutunuz tamamen boş!",
diff --git a/apps/files_trashbin/l10n/tr.json b/apps/files_trashbin/l10n/tr.json
index d000f31a743..303545883ec 100644
--- a/apps/files_trashbin/l10n/tr.json
+++ b/apps/files_trashbin/l10n/tr.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "%s geri yüklenemedi",
"Deleted files" : "Silinmiş dosyalar",
"Restore" : "Geri yükle",
+ "Delete permanently" : "Kalıcı olarak sil",
"Error" : "Hata",
"restored" : "geri yüklendi",
"Nothing in here. Your trash bin is empty!" : "Burada hiçbir şey yok. Çöp kutunuz tamamen boş!",
diff --git a/apps/files_trashbin/l10n/ug.js b/apps/files_trashbin/l10n/ug.js
index e67cbf85809..602dcc8ed96 100644
--- a/apps/files_trashbin/l10n/ug.js
+++ b/apps/files_trashbin/l10n/ug.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_trashbin",
{
"Deleted files" : "ئۆچۈرۈلگەن ھۆججەتلەر",
+ "Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Error" : "خاتالىق",
"Nothing in here. Your trash bin is empty!" : "بۇ جايدا ھېچنېمە يوق. Your trash bin is empty!",
"Name" : "ئاتى",
diff --git a/apps/files_trashbin/l10n/ug.json b/apps/files_trashbin/l10n/ug.json
index 8ed6b5cdd80..ffa5244f825 100644
--- a/apps/files_trashbin/l10n/ug.json
+++ b/apps/files_trashbin/l10n/ug.json
@@ -1,5 +1,6 @@
{ "translations": {
"Deleted files" : "ئۆچۈرۈلگەن ھۆججەتلەر",
+ "Delete permanently" : "مەڭگۈلۈك ئۆچۈر",
"Error" : "خاتالىق",
"Nothing in here. Your trash bin is empty!" : "بۇ جايدا ھېچنېمە يوق. Your trash bin is empty!",
"Name" : "ئاتى",
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index 0d778f21ad9..0801d1aaea0 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "Неможливо відновити %s",
"Deleted files" : "Видалені файли",
"Restore" : "Відновити",
+ "Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
"restored" : "відновлено",
"Nothing in here. Your trash bin is empty!" : "Нічого немає. Ваший кошик для сміття пустий!",
diff --git a/apps/files_trashbin/l10n/uk.json b/apps/files_trashbin/l10n/uk.json
index 77e9b53896c..429d1d61904 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "Неможливо відновити %s",
"Deleted files" : "Видалені файли",
"Restore" : "Відновити",
+ "Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
"restored" : "відновлено",
"Nothing in here. Your trash bin is empty!" : "Нічого немає. Ваший кошик для сміття пустий!",
diff --git a/apps/files_trashbin/l10n/vi.js b/apps/files_trashbin/l10n/vi.js
index 113fae4c2da..cbf9f4a5966 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 permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
"Nothing in here. Your trash bin is empty!" : "Không có gì ở đây. Thùng rác của bạn rỗng!",
diff --git a/apps/files_trashbin/l10n/vi.json b/apps/files_trashbin/l10n/vi.json
index 7323889de6f..83cb13bfcd0 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 permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
"Nothing in here. Your trash bin is empty!" : "Không có gì ở đây. Thùng rác của bạn rỗng!",
diff --git a/apps/files_trashbin/l10n/zh_CN.js b/apps/files_trashbin/l10n/zh_CN.js
index 6c421ab55b9..98f94d8938f 100644
--- a/apps/files_trashbin/l10n/zh_CN.js
+++ b/apps/files_trashbin/l10n/zh_CN.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "无法恢复%s",
"Deleted files" : "已删除文件",
"Restore" : "恢复",
+ "Delete permanently" : "永久删除",
"Error" : "错误",
"restored" : "已恢复",
"Nothing in here. Your trash bin is empty!" : "这里没有东西. 你的回收站是空的!",
diff --git a/apps/files_trashbin/l10n/zh_CN.json b/apps/files_trashbin/l10n/zh_CN.json
index 88665113d1b..67d4b1cffb0 100644
--- a/apps/files_trashbin/l10n/zh_CN.json
+++ b/apps/files_trashbin/l10n/zh_CN.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "无法恢复%s",
"Deleted files" : "已删除文件",
"Restore" : "恢复",
+ "Delete permanently" : "永久删除",
"Error" : "错误",
"restored" : "已恢复",
"Nothing in here. Your trash bin is empty!" : "这里没有东西. 你的回收站是空的!",
diff --git a/apps/files_trashbin/l10n/zh_TW.js b/apps/files_trashbin/l10n/zh_TW.js
index 9a0ff0bdb8f..457611075ac 100644
--- a/apps/files_trashbin/l10n/zh_TW.js
+++ b/apps/files_trashbin/l10n/zh_TW.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Couldn't restore %s" : "無法還原 %s",
"Deleted files" : "回收桶",
"Restore" : "還原",
+ "Delete permanently" : "永久刪除",
"Error" : "錯誤",
"restored" : "已還原",
"Nothing in here. Your trash bin is empty!" : "您的回收桶是空的!",
diff --git a/apps/files_trashbin/l10n/zh_TW.json b/apps/files_trashbin/l10n/zh_TW.json
index 61d7daaf1f4..a3007f2dae7 100644
--- a/apps/files_trashbin/l10n/zh_TW.json
+++ b/apps/files_trashbin/l10n/zh_TW.json
@@ -3,6 +3,7 @@
"Couldn't restore %s" : "無法還原 %s",
"Deleted files" : "回收桶",
"Restore" : "還原",
+ "Delete permanently" : "永久刪除",
"Error" : "錯誤",
"restored" : "已還原",
"Nothing in here. Your trash bin is empty!" : "您的回收桶是空的!",
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 661fc271dfc..1e8f31dbd2a 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -274,7 +274,7 @@ class Trashbin {
return 0;
}
- $util = new \OCA\Encryption\Util($rootView, $user);
+ $util = new \OCA\Files_Encryption\Util($rootView, $user);
$baseDir = '/files_encryption/';
if (!$util->isSystemWideMountPoint($ownerPath)) {
@@ -448,7 +448,7 @@ class Trashbin {
return false;
}
- $util = new \OCA\Encryption\Util($rootView, $user);
+ $util = new \OCA\Files_Encryption\Util($rootView, $user);
$baseDir = '/files_encryption/';
if (!$util->isSystemWideMountPoint($ownerPath)) {
@@ -621,11 +621,13 @@ class Trashbin {
* @return int available free space for trash bin
*/
private static function calculateFreeSpace($trashbinSize, $user) {
+ $config = \OC::$server->getConfig();
+
$softQuota = true;
- $quota = \OC_Preferences::getValue($user, 'files', 'quota');
+ $quota = $config->getUserValue($user, 'files', 'quota', null);
$view = new \OC\Files\View('/' . $user);
if ($quota === null || $quota === 'default') {
- $quota = \OC::$server->getAppConfig()->getValue('files', 'default_quota');
+ $quota = $config->getAppValue('files', 'default_quota', null);
}
if ($quota === null || $quota === 'none') {
$quota = \OC\Files\Filesystem::free_space('/');
diff --git a/apps/files_versions/lib/storage.php b/apps/files_versions/lib/storage.php
index 82e0ecc3e2f..3d30ada863a 100644
--- a/apps/files_versions/lib/storage.php
+++ b/apps/files_versions/lib/storage.php
@@ -479,15 +479,16 @@ class Storage {
* Erase a file's versions which exceed the set quota
*/
private static function expire($filename, $versionsSize = null, $offset = 0) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ $config = \OC::$server->getConfig();
+ if($config->getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
list($uid, $filename) = self::getUidAndFilename($filename);
$versionsFileview = new \OC\Files\View('/'.$uid.'/files_versions');
// get available disk space for user
$softQuota = true;
- $quota = \OC_Preferences::getValue($uid, 'files', 'quota');
+ $quota = $config->getUserValue($uid, 'files', 'quota', null);
if ( $quota === null || $quota === 'default') {
- $quota = \OC::$server->getAppConfig()->getValue('files', 'default_quota');
+ $quota = $config->getAppValue('files', 'default_quota', null);
}
if ( $quota === null || $quota === 'none' ) {
$quota = \OC\Files\Filesystem::free_space('/');
diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js
index 6494fbb5142..b139c5b3fb4 100644
--- a/apps/user_ldap/l10n/ja.js
+++ b/apps/user_ldap/l10n/ja.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Confirm Deletion" : "削除の確認",
"_%s group found_::_%s groups found_" : ["%s グループが見つかりました"],
"_%s user found_::_%s users found_" : ["%s ユーザーが見つかりました"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "ユーザー表示名の属性を検出できませんでした。詳細設定で対応する属性を指定してください。",
"Could not find the desired feature" : "望ましい機能は見つかりませんでした",
"Invalid Host" : "無効なホスト",
"Server" : "サーバー",
diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json
index 2e714112f19..25ad7f73bd8 100644
--- a/apps/user_ldap/l10n/ja.json
+++ b/apps/user_ldap/l10n/ja.json
@@ -31,6 +31,7 @@
"Confirm Deletion" : "削除の確認",
"_%s group found_::_%s groups found_" : ["%s グループが見つかりました"],
"_%s user found_::_%s users found_" : ["%s ユーザーが見つかりました"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "ユーザー表示名の属性を検出できませんでした。詳細設定で対応する属性を指定してください。",
"Could not find the desired feature" : "望ましい機能は見つかりませんでした",
"Invalid Host" : "無効なホスト",
"Server" : "サーバー",
diff --git a/apps/user_ldap/l10n/sl.js b/apps/user_ldap/l10n/sl.js
index 1437afcf5ba..04ea48e11ec 100644
--- a/apps/user_ldap/l10n/sl.js
+++ b/apps/user_ldap/l10n/sl.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Confirm Deletion" : "Potrdi brisanje",
"_%s group found_::_%s groups found_" : ["%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"],
"_%s user found_::_%s users found_" : ["%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Ni mogoče prebrati atributa prikaznega imena. Določiti ga je treba ročno med nastavitvami LDAP.",
"Could not find the desired feature" : "Želene zmožnosti ni mogoče najti",
"Invalid Host" : "Neveljaven gostitelj",
"Server" : "Strežnik",
diff --git a/apps/user_ldap/l10n/sl.json b/apps/user_ldap/l10n/sl.json
index 56bf65210c3..ef7bdd1ce32 100644
--- a/apps/user_ldap/l10n/sl.json
+++ b/apps/user_ldap/l10n/sl.json
@@ -31,6 +31,7 @@
"Confirm Deletion" : "Potrdi brisanje",
"_%s group found_::_%s groups found_" : ["%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"],
"_%s user found_::_%s users found_" : ["%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Ni mogoče prebrati atributa prikaznega imena. Določiti ga je treba ročno med nastavitvami LDAP.",
"Could not find the desired feature" : "Želene zmožnosti ni mogoče najti",
"Invalid Host" : "Neveljaven gostitelj",
"Server" : "Strežnik",
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index 5a4d324fba2..76747be70cf 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -1085,12 +1085,18 @@ class Access extends LDAPUtility implements user\IUserTools {
/**
* escapes (user provided) parts for LDAP filter
* @param string $input, the provided value
+ * @param bool $allowAsterisk wether in * at the beginning should be preserved
* @return string the escaped string
*/
- public function escapeFilterPart($input) {
+ public function escapeFilterPart($input, $allowAsterisk = false) {
+ $asterisk = '';
+ if($allowAsterisk && strlen($input) > 0 && $input[0] === '*') {
+ $asterisk = '*';
+ $input = mb_substr($input, 1, null, 'UTF-8');
+ }
$search = array('*', '\\', '(', ')');
$replace = array('\\*', '\\\\', '\\(', '\\)');
- return str_replace($search, $replace, $input);
+ return $asterisk . str_replace($search, $replace, $input);
}
/**
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 38c32cbda4a..52278082312 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -93,7 +93,7 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
* Get a list of all users.
*/
public function getUsers($search = '', $limit = 10, $offset = 0) {
- $search = $this->access->escapeFilterPart($search);
+ $search = $this->access->escapeFilterPart($search, true);
$cachekey = 'getUsers-'.$search.'-'.$limit.'-'.$offset;
//check if users are cached, if so return
diff --git a/autotest.sh b/autotest.sh
index 83a20699d01..7bb4c80cb9b 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -227,7 +227,11 @@ if [ -z "$1" ]
execute_tests $DBCONFIG
done
else
- execute_tests "$1" "$2" "$3"
+ FILENAME="$2"
+ if [ ! -z "$2" ] && [ ! -f "tests/$FILENAME" ]; then
+ FILENAME="../$FILENAME"
+ fi
+ execute_tests "$1" "$FILENAME" "$3"
fi
cd "$BASEDIR"
diff --git a/build/README.TXT b/build/README.TXT
deleted file mode 100644
index 128571058d8..00000000000
--- a/build/README.TXT
+++ /dev/null
@@ -1,28 +0,0 @@
-How to setup build.xml on your local machine?
-
-1.) Install ant
- e.g. apt-get install ant
-
-2.) Install jslint
- Get the latest distribution from http://code.google.com/p/jslint4java/ and
- place jslint4java-*.jar in your home under .ant/lib/
-
-3.) Install PHP qa tools
- Run as root:
- pear config-set auto_discover 1
- pear install pear.phpqatools.org/phpqatools pear.netpirates.net/phpDox
-
- Alternative:
- pear install pear.phpunit.de/phploc
- pear install pear.phpunit.de/phpcpd
- pear install pear.phpmd.org/PHP_PMD
- pear install pear.pdepend.org/PHP_Depend
- pear install pear.php.org/PHP_CodeSniffer
- pear install PHP_CodeSniffer
- pear install pear.phpqatools.org/PHP_CodeBrowser
-
-
-How to call this ant script?
- ant -f build/build.xml -Dbasedir=.
-
-
diff --git a/build/build.xml b/build/build.xml
index 265beb4bccf..c8c5c4efffc 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -1,31 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project name="ownCloud" default="build" xmlns:jsl="antlib:com.googlecode.jslint4java">
+<project name="ownCloud" default="build">
<!-- the target 'build' can be used by developers for command line builds -->
- <target name="build" depends="prepare,lint,jslint,phploc,pdepend,phpmd,phpcs,phpcpd,phpdoc,phpunit"/>
-
- <!-- the target 'build-ci' is used within our Jenkins CI-server http://ci.tmit.eu -->
- <target name="build-ci" depends="prepare,lint,jslint-ci,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpdoc,phpunit,phpcb-ci"/>
-
- <!-- the target 'build-pullrequests' is used within our Jenkins CI-server for pull request analysis -->
- <target name="build-pullrequests" depends="prepare,lint,jslint-ci"/>
-
- <target name="clean" description="Cleanup build artifacts">
- <delete dir="${basedir}/build/api"/>
- <delete dir="${basedir}/build/code-browser"/>
- <delete dir="${basedir}/build/coverage"/>
- <delete dir="${basedir}/build/logs"/>
- <delete dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="prepare" depends="clean"
- description="Prepare for build">
- <mkdir dir="${basedir}/build/api"/>
- <mkdir dir="${basedir}/build/code-browser"/>
- <mkdir dir="${basedir}/build/coverage"/>
- <mkdir dir="${basedir}/build/logs"/>
- <mkdir dir="${basedir}/build/pdepend"/>
- </target>
+ <target name="build" depends="lint"/>
<!-- php syntax analysis -->
<target name="lint">
@@ -61,135 +38,4 @@
</fail>
</target>
-
- <!-- javascript lint -->
- <target name="jslint-ci" description="Run the JSLint tool on JS files">
- <jsl:jslint options="white,sloppy,vars,bitwise,eqeq,browser" haltOnFailure="false">
- <jsl:predef>
-jQuery,$$,OC,$,oc_webroot,oc_appswebroots,oc_current_user,t,Files,FileList,FileActions,localStorage,OCCategories,EventSource,OCdialog,SVGSupport,dragOptions,dragOptions,folderDropOptions,formatDate,humanFileSize,procesSelection,relative_modified_date,scanFiles,simpleFileSize,simpleSize
-</jsl:predef>
- <!-- jsl:formatter type="plain" / -->
- <jsl:formatter type="xml" destfile="build/logs/jslint.xml" />
- <fileset dir="${basedir}" includes="**/*.js" excludes="**/*.min.js,**/3rdparty/**" />
- </jsl:jslint>
- </target>
-
- <target name="jslint" description="Run the JSLint tool on JS files">
- <jsl:jslint options="white,sloppy,vars,bitwise,eqeq,browser" haltOnFailure="false">
- <jsl:predef>
-jQuery,$$,OC,$,oc_webroot,oc_appswebroots,oc_current_user,t,Files,FileList,FileActions,localStorage,OCCategories,EventSource,OCdialog,SVGSupport,dragOptions,dragOptions,folderDropOptions,formatDate,humanFileSize,procesSelection,relative_modified_date,scanFiles,simpleFileSize,simpleSize
-</jsl:predef>
- <jsl:formatter type="plain" />
- <fileset dir="${basedir}" includes="**/*.js" excludes="**/*.min.js,**/3rdparty/**" />
- </jsl:jslint>
- </target>
-
- <target name="phploc" description="Measure project size using PHPLOC">
- <exec executable="phploc">
- <arg value="--log-csv" />
- <arg value="${basedir}/build/logs/phploc.csv" />
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <target name="pdepend"
- description="Calculate software metrics using PHP_Depend">
- <exec executable="pdepend">
- <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
- <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
- <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
- <arg value="--ignore=${basedir}/3rdparty/"/>
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <target name="phpmd-ci"
- description="Perform project mess detection using PHPMD creating a log file for the continuous integration server">
- <exec executable="phpmd">
- <arg path="${basedir}" />
- <arg value="xml" />
- <arg value="${basedir}/build/phpmd.xml" />
- <arg value="--reportfile" />
- <arg value="${basedir}/build/logs/pmd.xml" />
- <arg value="--exclude" />
- <arg value="${basedir}/3rdparty/" />
- </exec>
- </target>
-
- <target name="phpmd"
- description="Perform project mess detection using PHPMD creating a log file for the continuous integration server">
- <exec executable="phpmd">
- <arg path="${basedir}" />
- <arg value="xml" />
- <arg value="${basedir}/build/phpmd.xml" />
- <arg value="--exclude" />
- <arg value="${basedir}/3rdparty/" />
- </exec>
- </target>
-
- <target name="phpcs-ci"
- description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server">
- <exec executable="phpcs" >
- <arg value="-p" />
- <arg value="-v" />
- <arg value="--tab-width=4" />
- <arg value="--report=checkstyle" />
- <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
- <arg value="--standard=${basedir}/build/phpcs.xml" />
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <target name="phpcs"
- description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server">
- <exec executable="phpcs" >
- <arg value="-p" />
- <arg value="-v" />
- <arg value="--tab-width=4" />
- <arg value="--standard=${basedir}/build/phpcs.xml" />
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
- <exec executable="phpcpd">
- <arg value="--exclude" />
- <arg value="${basedir}/3rdparty/" />
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <target name="phpcpd-ci" description="Find duplicate code using PHPCPD">
- <exec executable="phpcpd">
- <arg value="--log-pmd" />
- <arg value="${basedir}/build/logs/pmd-cpd.xml" />
- <arg value="--exclude" />
- <arg value="${basedir}/3rdparty/" />
- <arg path="${basedir}" />
- </exec>
- </target>
-
- <!-- No idea if we need this within this build file. This is part of the release which is not contained within this script. -->
- <target name="phpdoc"
- description="Generate API documentation using PHPDocumentor">
- <!-- exec executable="phpdox"/ -->
- </target>
-
- <!-- currently we use autotest.sh for executing the unit tests against 3 different database setups -->
- <target name="phpunit" description="Run unit tests with PHPUnit">
- <echo message="TODO: phpunit goes here"/>
- <!-- exec executable="phpunit" failonerror="true"/ -->
- </target>
-
- <target name="phpcb-ci"
- description="Aggregate tool output with PHP_CodeBrowser">
- <exec executable="phpcb">
- <arg value="--log" />
- <arg path="${basedir}/build/logs" />
- <arg value="--source" />
- <arg path="${basedir}" />
- <arg value="--output" />
- <arg path="${basedir}/build/code-browser" />
- </exec>
- </target>
</project>
diff --git a/build/phpcs.xml b/build/phpcs.xml
deleted file mode 100644
index d2909955ed2..00000000000
--- a/build/phpcs.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="PHP_CodeSniffer">
- <description>The coding standard for PHP_CodeSniffer itself.</description>
- <exclude-pattern>*/Tests/*</exclude-pattern>
- <exclude-pattern>*/lib/MDB2/*</exclude-pattern>
- <exclude-pattern>*/3rdparty/*</exclude-pattern>
- <exclude-pattern>*.min.*</exclude-pattern>
- <exclude-pattern>*/l10n/*</exclude-pattern>
- <exclude-pattern>*/files_texteditor/js/aceeditor/*</exclude-pattern>
- <exclude-pattern>*/files_pdfviewer/js/pdfjs/*</exclude-pattern>
- <exclude-pattern>*/files_odfviewer/src/*</exclude-pattern>
- <exclude-pattern>*/files_svgedit/svg-edit/*</exclude-pattern>
- <exclude-pattern>*jquery-ui-*.css</exclude-pattern>
- <extensions>php</extensions>
-
- <!-- Include the whole PEAR standard -->
- <rule ref="PEAR">
- <exclude name="PEAR.Commenting.FileComment.InvalidAuthors" />
- <exclude name="PEAR.Commenting.FileComment.TagIndent" />
- <exclude name="PEAR.Commenting.FileComment.MissingVersion" />
- <exclude name="PEAR.Commenting.FileComment.MissingTag" />
- <exclude name="PEAR.Commenting.ClassComment.TagIndent" />
- <!-- exclude name="PEAR.WhiteSpace.ScopeIndent.Incorrect" /-->
- <exclude name="PEAR.Commenting.ClassComment.WrongTagOrder" />
- <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" />
- <exclude name="PEAR.Functions.FunctionCallSignature.SpaceBeforeOpenBracket" />
- <exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" />
- <exclude name="Generic.ControlStructures.InlineControlStructure.Discouraged" />
- <exclude name="PEAR.Commenting.FunctionComment.ParameterCommentsNotAligned" />
- <exclude name="PEAR.Commenting.FunctionComment.MissingParamTag" />
- <exclude name="PEAR.ControlStructures.ControlSignature" />
-
- <!-- ident and alignment stuff -->
- <!-- exclude name="PEAR.ControlStructures.MultiLineCondition.Alignment" />
- <exclude name="PEAR.WhiteSpace.ScopeClosingBrace.BreakIdent" / -->
-
- <!-- allow curly on classes and functions -->
- <exclude name="PEAR.Functions.FunctionDeclaration.BraceOnSameLine" />
- <exclude name="PEAR.Classes.ClassDeclaration.OpenBraceNewLine" />
-
- <exclude name="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore" />
- <exclude name="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore" />
- <exclude name="PEAR.WhiteSpace.ScopeIndent"/>
- </rule>
-
- <rule ref="Zend.Files.ClosingTag" />
-
- <rule ref="Generic.WhiteSpace.ScopeIndent">
- <properties>
- <property name="indent" value="4"/>
- </properties>
- </rule>
-
- <rule ref="Generic.Files.LineLength">
- <properties>
- <property name="lineLimit" value="120"/>
- <property name="absoluteLineLimit" value="160"/>
- </properties>
- </rule>
-
- <!-- Include most of the Squiz standard -->
- <!-- rule ref="Squiz">
- <exclude name="Squiz.Classes.ClassFileName"/>
- <exclude name="Squiz.Classes.ValidClassName"/>
- <exclude name="Squiz.Commenting.ClassComment"/>
- <exclude name="Squiz.Commenting.FileComment"/>
- <exclude name="Squiz.Commenting.FunctionComment"/>
- <exclude name="Squiz.Commenting.VariableComment"/>
- <exclude name="Squiz.ControlStructures.SwitchDeclaration"/>
- <exclude name="Squiz.Files.FileExtension"/>
- <exclude name="Squiz.NamingConventions.ConstantCase"/>
- <exclude name="Squiz.Operators.ComparisonOperatorUsage"/>
-</rule -->
-
- <!-- We allow variables to be used inside double quoted strings -->
- <!-- rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar">
- <severity>0</severity>
- </rule -->
-
-</ruleset>
diff --git a/build/phpmd.xml b/build/phpmd.xml
deleted file mode 100644
index 3935a5b74b5..00000000000
--- a/build/phpmd.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
- <ruleset name="My first PHPMD rule set" xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" xsi:noNamespaceSchemaLocation=" http://pmd.sf.net/ruleset_xml_schema.xsd">
- <description> My custom rule set that checks my code... </description>
- <!-- Import the entire unused code rule set -->
- <rule ref="rulesets/unusedcode.xml" />
-
- <!-- Import the entire cyclomatic complexity rule -->
- <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
-</ruleset>
diff --git a/core/ajax/update.php b/core/ajax/update.php
index 419992c9891..5a9288a6381 100644
--- a/core/ajax/update.php
+++ b/core/ajax/update.php
@@ -9,7 +9,11 @@ if (OC::checkUpgrade(false)) {
$l = new \OC_L10N('core');
$eventSource = \OC::$server->createEventSource();
- $updater = new \OC\Updater(\OC_Log::$object);
+ $updater = new \OC\Updater(
+ \OC::$server->getHTTPHelper(),
+ \OC::$server->getAppConfig(),
+ \OC_Log::$object
+ );
$updater->listen('\OC\Updater', 'maintenanceStart', function () use ($eventSource, $l) {
$eventSource->send('success', (string)$l->t('Turned on maintenance mode'));
});
diff --git a/core/command/upgrade.php b/core/command/upgrade.php
index aaeb63a3124..6e5ac1c5c9a 100644
--- a/core/command/upgrade.php
+++ b/core/command/upgrade.php
@@ -84,7 +84,7 @@ class Upgrade extends Command {
if(\OC::checkUpgrade(false)) {
$self = $this;
- $updater = new Updater();
+ $updater = new Updater(\OC::$server->getHTTPHelper(), \OC::$server->getAppConfig());
$updater->setSimulateStepEnabled($simulateStepEnabled);
$updater->setUpdateStepEnabled($updateStepEnabled);
diff --git a/core/css/styles.css b/core/css/styles.css
index 2859399b59e..7badfca6c16 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -362,9 +362,15 @@ input[type="submit"].enabled {
#body-login .update h2 {
font-size: 20px;
+ line-height: 130%;
margin-bottom: 30px;
}
+#body-login .update a {
+ color: #fff;
+ border-bottom: 1px solid #aaa;
+}
+
#body-login .infogroup {
margin-bottom: 15px;
}
diff --git a/core/js/js.js b/core/js/js.js
index eb2f10b51f0..cc3a548de28 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -499,6 +499,87 @@ var OC={
};
/**
+ * @namespace OC.Plugins
+ */
+OC.Plugins = {
+ /**
+ * @type Array.<OC.Plugin>
+ */
+ _plugins: {},
+
+ /**
+ * Register plugin
+ *
+ * @param {String} targetName app name / class name to hook into
+ * @param {OC.Plugin} plugin
+ */
+ register: function(targetName, plugin) {
+ var plugins = this._plugins[targetName];
+ if (!plugins) {
+ plugins = this._plugins[targetName] = [];
+ }
+ plugins.push(plugin);
+ },
+
+ /**
+ * Returns all plugin registered to the given target
+ * name / app name / class name.
+ *
+ * @param {String} targetName app name / class name to hook into
+ * @return {Array.<OC.Plugin>} array of plugins
+ */
+ getPlugins: function(targetName) {
+ return this._plugins[targetName] || [];
+ },
+
+ /**
+ * Call attach() on all plugins registered to the given target name.
+ *
+ * @param {String} targetName app name / class name
+ * @param {Object} object to be extended
+ * @param {Object} [options] options
+ */
+ attach: function(targetName, targetObject, options) {
+ var plugins = this.getPlugins(targetName);
+ for (var i = 0; i < plugins.length; i++) {
+ if (plugins[i].attach) {
+ plugins[i].attach(targetObject, options);
+ }
+ }
+ },
+
+ /**
+ * Call detach() on all plugins registered to the given target name.
+ *
+ * @param {String} targetName app name / class name
+ * @param {Object} object to be extended
+ * @param {Object} [options] options
+ */
+ detach: function(targetName, targetObject, options) {
+ var plugins = this.getPlugins(targetName);
+ for (var i = 0; i < plugins.length; i++) {
+ if (plugins[i].detach) {
+ plugins[i].detach(targetObject, options);
+ }
+ }
+ },
+
+ /**
+ * Plugin
+ *
+ * @todo make this a real class in the future
+ * @typedef {Object} OC.Plugin
+ *
+ * @property {String} name plugin name
+ * @property {Function} attach function that will be called when the
+ * plugin is attached
+ * @property {Function} [detach] function that will be called when the
+ * plugin is detached
+ */
+
+};
+
+/**
* @namespace OC.search
*/
OC.search.customResults={};
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 9e5afea1a6f..0c046d8ef0e 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -363,56 +363,69 @@ var OCdialogs = {
return canvas.toDataURL("image/png", 0.7);
};
- var addConflict = function(conflicts, original, replacement) {
+ var addConflict = function($conflicts, original, replacement) {
- var conflict = conflicts.find('.template').clone().removeClass('template').addClass('conflict');
+ var $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict');
+ var $originalDiv = $conflict.find('.original');
+ var $replacementDiv = $conflict.find('.replacement');
- conflict.data('data',data);
+ $conflict.data('data',data);
- conflict.find('.filename').text(original.name);
- conflict.find('.original .size').text(humanFileSize(original.size));
- conflict.find('.original .mtime').text(formatDate(original.mtime));
+ $conflict.find('.filename').text(original.name);
+ $originalDiv.find('.size').text(humanFileSize(original.size));
+ $originalDiv.find('.mtime').text(formatDate(original.mtime));
// ie sucks
if (replacement.size && replacement.lastModifiedDate) {
- conflict.find('.replacement .size').text(humanFileSize(replacement.size));
- conflict.find('.replacement .mtime').text(formatDate(replacement.lastModifiedDate));
+ $replacementDiv.find('.size').text(humanFileSize(replacement.size));
+ $replacementDiv.find('.mtime').text(formatDate(replacement.lastModifiedDate));
}
var path = original.directory + '/' +original.name;
Files.lazyLoadPreview(path, original.mimetype, function(previewpath){
- conflict.find('.original .icon').css('background-image','url('+previewpath+')');
+ $originalDiv.find('.icon').css('background-image','url('+previewpath+')');
}, 96, 96, original.etag);
getCroppedPreview(replacement).then(
function(path){
- conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ $replacementDiv.find('.icon').css('background-image','url(' + path + ')');
}, function(){
Files.getMimeIcon(replacement.type,function(path){
- conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ $replacementDiv.find('.icon').css('background-image','url(' + path + ')');
});
}
);
- conflicts.append(conflict);
+ $conflicts.append($conflict);
//set more recent mtime bold
// ie sucks
if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() > original.mtime) {
- conflict.find('.replacement .mtime').css('font-weight', 'bold');
+ $replacementDiv.find('.mtime').css('font-weight', 'bold');
} else if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() < original.mtime) {
- conflict.find('.original .mtime').css('font-weight', 'bold');
+ $originalDiv.find('.mtime').css('font-weight', 'bold');
} else {
//TODO add to same mtime collection?
}
// set bigger size bold
if (replacement.size && replacement.size > original.size) {
- conflict.find('.replacement .size').css('font-weight', 'bold');
+ $replacementDiv.find('.size').css('font-weight', 'bold');
} else if (replacement.size && replacement.size < original.size) {
- conflict.find('.original .size').css('font-weight', 'bold');
+ $originalDiv.find('.size').css('font-weight', 'bold');
} else {
//TODO add to same size collection?
}
//TODO show skip action for files with same size and mtime in bottom row
+ // always keep readonly files
+
+ if (original.status === 'readonly') {
+ $originalDiv
+ .addClass('readonly')
+ .find('input[type="checkbox"]')
+ .prop('checked', true)
+ .prop('disabled', true);
+ $originalDiv.find('.message')
+ .text(t('core','read-only'))
+ }
};
//var selection = controller.getSelection(data.originalFiles);
//if (selection.defaultAction) {
@@ -423,8 +436,8 @@ var OCdialogs = {
if (this._fileexistsshown) {
// add conflict
- var conflicts = $(dialogId+ ' .conflicts');
- addConflict(conflicts, original, replacement);
+ var $conflicts = $(dialogId+ ' .conflicts');
+ addConflict($conflicts, original, replacement);
var count = $(dialogId+ ' .conflict').length;
var title = n('core',
@@ -456,8 +469,8 @@ var OCdialogs = {
});
$('body').append($dlg);
- var conflicts = $($dlg).find('.conflicts');
- addConflict(conflicts, original, replacement);
+ var $conflicts = $dlg.find('.conflicts');
+ addConflict($conflicts, original, replacement);
var buttonlist = [{
text: t('core', 'Cancel'),
@@ -496,20 +509,20 @@ var OCdialogs = {
//add checkbox toggling actions
$(dialogId).find('.allnewfiles').on('click', function() {
- var checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
- checkboxes.prop('checked', $(this).prop('checked'));
+ var $checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
+ $checkboxes.prop('checked', $(this).prop('checked'));
});
$(dialogId).find('.allexistingfiles').on('click', function() {
- var checkboxes = $(dialogId).find('.conflict .original input[type="checkbox"]');
- checkboxes.prop('checked', $(this).prop('checked'));
+ var $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type="checkbox"]');
+ $checkboxes.prop('checked', $(this).prop('checked'));
});
- $(dialogId).find('.conflicts').on('click', '.replacement,.original', function() {
- var checkbox = $(this).find('input[type="checkbox"]');
- checkbox.prop('checked', !checkbox.prop('checked'));
+ $(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {
+ var $checkbox = $(this).find('input[type="checkbox"]');
+ $checkbox.prop('checked', !$checkbox.prop('checked'));
});
- $(dialogId).find('.conflicts').on('click', 'input[type="checkbox"]', function() {
- var checkbox = $(this);
- checkbox.prop('checked', !checkbox.prop('checked'));
+ $(dialogId).find('.conflicts').on('click', '.replacement input[type="checkbox"],.original:not(.readonly) input[type="checkbox"]', function() {
+ var $checkbox = $(this);
+ $checkbox.prop('checked', !checkbox.prop('checked'));
});
//update counters
diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js
index f351c1b451a..db5365c124d 100644
--- a/core/js/setupchecks.js
+++ b/core/js/setupchecks.js
@@ -49,11 +49,16 @@
var afterCall = function(data, statusText, xhr) {
var messages = [];
if (xhr.status === 200 && data) {
- if (!data.serverhasinternetconnection) {
+ if (!data.serverHasInternetConnection) {
messages.push(
t('core', 'This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features.')
);
}
+ if(!data.dataDirectoryProtected) {
+ messages.push(
+ t('core', 'Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.')
+ );
+ }
} else {
messages.push(t('core', 'Error occurred while checking server setup'));
}
diff --git a/core/js/share.js b/core/js/share.js
index b856363d157..bcb604feaa3 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -131,7 +131,7 @@ OC.Share={
}
for(i = 0; i < files.length; i++) {
if ($(files[i]).closest('tr').data('type') === 'dir') {
- $(files[i]).css('background-image', 'url('+shareFolder+')');
+ $(files[i]).find('.thumbnail').css('background-image', 'url('+shareFolder+')');
}
}
}
@@ -238,10 +238,10 @@ OC.Share={
else {
shareFolderIcon = OC.imagePath('core', 'filetypes/folder-shared');
}
- $tr.children('.filename').css('background-image', 'url(' + shareFolderIcon + ')');
+ $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');
} else if (type === 'dir') {
shareFolderIcon = OC.imagePath('core', 'filetypes/folder');
- $tr.children('.filename').css('background-image', 'url(' + shareFolderIcon + ')');
+ $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');
}
// update share action text / icon
if (hasShares || owner) {
@@ -410,10 +410,14 @@ OC.Share={
html += '<label for="sharingDialogAllowPublicUpload">' + t('core', 'Allow Public Upload') + '</label>';
html += '</div>';
}
- html += '</div><form id="emailPrivateLink" >';
- html += '<input id="email" style="display:none; width:62%;" value="" placeholder="'+t('core', 'Email link to person')+'" type="text" />';
- html += '<input id="emailButton" style="display:none;" type="submit" value="'+t('core', 'Send')+'" />';
- html += '</form>';
+ html += '</div>';
+ var mailPublicNotificationEnabled = $('input:hidden[name=mailPublicNotificationEnabled]').val();
+ if (mailPublicNotificationEnabled === 'yes') {
+ html += '<form id="emailPrivateLink">';
+ html += '<input id="email" style="display:none; width:62%;" value="" placeholder="'+t('core', 'Email link to person')+'" type="text" />';
+ html += '<input id="emailButton" style="display:none;" type="submit" value="'+t('core', 'Send')+'" />';
+ html += '</form>';
+ }
}
html += '<div id="expiration">';
@@ -520,7 +524,7 @@ OC.Share={
.append( insert )
.appendTo( ul );
};
- if (link && linksAllowed) {
+ if (link && linksAllowed && $('#email').length != 0) {
$('#email').autocomplete({
minLength: 1,
source: function (search, response) {
diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js
index 4111b6763d9..59c2a99645f 100644
--- a/core/js/tests/specHelper.js
+++ b/core/js/tests/specHelper.js
@@ -120,6 +120,9 @@ window.isPhantom = /phantom/i.test(navigator.userAgent);
if (!OC.TestUtil) {
OC.TestUtil = TestUtil;
}
+
+ // reset plugins
+ OC.Plugins._plugins = [];
});
afterEach(function() {
diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
index 2c5c22905b0..08395f4d4c2 100644
--- a/core/js/tests/specs/coreSpec.js
+++ b/core/js/tests/specs/coreSpec.js
@@ -655,5 +655,36 @@ describe('Core base tests', function() {
]);
});
});
+ describe('Plugins', function() {
+ var plugin;
+
+ beforeEach(function() {
+ plugin = {
+ name: 'Some name',
+ attach: function(obj) {
+ obj.attached = true;
+ },
+
+ detach: function(obj) {
+ obj.attached = false;
+ }
+ };
+ OC.Plugins.register('OC.Test.SomeName', plugin);
+ });
+ it('attach plugin to object', function() {
+ var obj = {something: true};
+ OC.Plugins.attach('OC.Test.SomeName', obj);
+ expect(obj.attached).toEqual(true);
+ OC.Plugins.detach('OC.Test.SomeName', obj);
+ expect(obj.attached).toEqual(false);
+ });
+ it('only call handler for target name', function() {
+ var obj = {something: true};
+ OC.Plugins.attach('OC.Test.SomeOtherName', obj);
+ expect(obj.attached).not.toBeDefined();
+ OC.Plugins.detach('OC.Test.SomeOtherName', obj);
+ expect(obj.attached).not.toBeDefined();
+ });
+ });
});
diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js
index e712ea58bc2..4859ba782d2 100644
--- a/core/js/tests/specs/shareSpec.js
+++ b/core/js/tests/specs/shareSpec.js
@@ -31,6 +31,7 @@ describe('OC.Share tests', function() {
$('#testArea').append($('<div id="shareContainer"></div>'));
// horrible parameters
$('#testArea').append('<input id="allowShareWithLink" type="hidden" value="yes">');
+ $('#testArea').append('<input id="mailPublicNotificationEnabled" name="mailPublicNotificationEnabled" type="hidden" value="yes">');
$container = $('#shareContainer');
/* jshint camelcase:false */
oldAppConfig = _.extend({}, oc_appconfig.core);
@@ -362,6 +363,16 @@ describe('OC.Share tests', function() {
$('#dropdown [name=expirationCheckbox]').click();
expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true);
});
+ it('displayes email form when sending emails is enabled', function() {
+ $('input[name=mailPublicNotificationEnabled]').val('yes');
+ showDropDown();
+ expect($('#emailPrivateLink').length).toEqual(1);
+ });
+ it('not renders email form when sending emails is disabled', function() {
+ $('input[name=mailPublicNotificationEnabled]').val('no');
+ showDropDown();
+ expect($('#emailPrivateLink').length).toEqual(0);
+ });
it('sets picker minDate to today and no maxDate by default', function() {
showDropDown();
$('#dropdown [name=linkCheckbox]').click();
@@ -498,7 +509,7 @@ describe('OC.Share tests', function() {
beforeEach(function() {
tipsyStub = sinon.stub($.fn, 'tipsy');
- $file = $('<tr><td class="filename">File name</td></tr>');
+ $file = $('<tr><td class="filename"><div class="thumbnail"></div><span class="name">File name</span></td></tr>');
$file.find('.filename').append(
'<span class="fileactions">' +
'<a href="#" class="action action-share" data-action="Share">' +
@@ -570,7 +581,7 @@ describe('OC.Share tests', function() {
describe('displaying the folder icon', function() {
function checkIcon(expectedImage) {
- var imageUrl = OC.TestUtil.getImageUrl($file.find('.filename'));
+ var imageUrl = OC.TestUtil.getImageUrl($file.find('.filename .thumbnail'));
expectedIcon = OC.imagePath('core', expectedImage);
expect(imageUrl).toEqual(expectedIcon);
}
diff --git a/core/js/update.js b/core/js/update.js
index e5ce322df95..4899335f0ec 100644
--- a/core/js/update.js
+++ b/core/js/update.js
@@ -47,9 +47,8 @@
updateEventSource.listen('failure', function(message) {
$('<span>').addClass('error').append(message).append('<br />').appendTo($el);
$('<span>')
- .addClass('error bold')
- .append('<br />')
- .append(t('core', 'The update was unsuccessful.' +
+ .addClass('bold')
+ .append(t('core', 'The update was unsuccessful. ' +
'Please report this issue to the ' +
'<a href="https://github.com/owncloud/core/issues" target="_blank">ownCloud community</a>.'))
.appendTo($el);
diff --git a/core/l10n/ar.js b/core/l10n/ar.js
index c48414bfdfe..acd4c549d63 100644
--- a/core/l10n/ar.js
+++ b/core/l10n/ar.js
@@ -37,6 +37,7 @@ OC.L10N.register(
"Strong password" : "كلمة السر قوية",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "اعدادات خادمك غير صحيحة بشكل تسمح لك بمزامنة ملفاتك وذلك بسبب أن واجهة WebDAV تبدو معطلة",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "هذا الخادم لا يوجد لدية اتصال انترنت. هذا يعني ان بعض الميزات مثل mounting التخزين الخارجي , تنبيهات عن التحديثات او تنزيلات برامج الطرف الثالث3 لا تعمل. الدخول للملفات البعيدة و ارسال تنبيهات البريد الالكتروني ممكن ان لا تعمل ايضا. نحن نقترح بتفعيل اتصال الانترنت لهذا الخادم لتتمكن من الاستفادة من كل الميزات",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
"Shared" : "مشارك",
"Share" : "شارك",
"Error" : "خطأ",
diff --git a/core/l10n/ar.json b/core/l10n/ar.json
index 439a60aec2a..13a3598007a 100644
--- a/core/l10n/ar.json
+++ b/core/l10n/ar.json
@@ -35,6 +35,7 @@
"Strong password" : "كلمة السر قوية",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "اعدادات خادمك غير صحيحة بشكل تسمح لك بمزامنة ملفاتك وذلك بسبب أن واجهة WebDAV تبدو معطلة",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "هذا الخادم لا يوجد لدية اتصال انترنت. هذا يعني ان بعض الميزات مثل mounting التخزين الخارجي , تنبيهات عن التحديثات او تنزيلات برامج الطرف الثالث3 لا تعمل. الدخول للملفات البعيدة و ارسال تنبيهات البريد الالكتروني ممكن ان لا تعمل ايضا. نحن نقترح بتفعيل اتصال الانترنت لهذا الخادم لتتمكن من الاستفادة من كل الميزات",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
"Shared" : "مشارك",
"Share" : "شارك",
"Error" : "خطأ",
diff --git a/core/l10n/ast.js b/core/l10n/ast.js
index 9bf258b0f60..0dd2466a82e 100644
--- a/core/l10n/ast.js
+++ b/core/l10n/ast.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Contraseña mui bona",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "El to sirvidor web entá nun ta configuráu afayadizamente pa permitir la sincronización de ficheros porque la interfaz WebDAV paez tar rota.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Esti sirvidor nun tien conexón a Internet. Esto significa que dalgunes de les carauterístiques nun van funcionar, como'l montaxe d'almacenamiento esternu, les notificaciones sobre anovamientos, la instalación d'aplicaciones de terceros, l'accesu a los ficheros de mou remotu o l'unviu de correos-e de notificación. Suxerimos habilitar una conexón a Internet nesti sirvidor pa esfrutar de toles funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
"Shared" : "Compartíu",
"Shared with {recipients}" : "Compartío con {recipients}",
"Share" : "Compartir",
@@ -110,7 +111,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Anovando {productName} a la versión {version}, esto pue llevar un tiempu.",
"Please reload the page." : "Por favor, recarga la páxina",
- "The update was unsuccessful." : "L'anovamientu nun foi esitosu.",
"The update was successful. Redirecting you to ownCloud now." : "L'anovamientu fízose con ésitu. Redirixiendo agora al to ownCloud.",
"Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l token ye inválidu",
"Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Por favor, asegurate que'l to nome d'usuariu seya correutu",
diff --git a/core/l10n/ast.json b/core/l10n/ast.json
index 8422c2948ee..6d3bfbe9835 100644
--- a/core/l10n/ast.json
+++ b/core/l10n/ast.json
@@ -62,6 +62,7 @@
"Strong password" : "Contraseña mui bona",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "El to sirvidor web entá nun ta configuráu afayadizamente pa permitir la sincronización de ficheros porque la interfaz WebDAV paez tar rota.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Esti sirvidor nun tien conexón a Internet. Esto significa que dalgunes de les carauterístiques nun van funcionar, como'l montaxe d'almacenamiento esternu, les notificaciones sobre anovamientos, la instalación d'aplicaciones de terceros, l'accesu a los ficheros de mou remotu o l'unviu de correos-e de notificación. Suxerimos habilitar una conexón a Internet nesti sirvidor pa esfrutar de toles funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
"Shared" : "Compartíu",
"Shared with {recipients}" : "Compartío con {recipients}",
"Share" : "Compartir",
@@ -108,7 +109,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Anovando {productName} a la versión {version}, esto pue llevar un tiempu.",
"Please reload the page." : "Por favor, recarga la páxina",
- "The update was unsuccessful." : "L'anovamientu nun foi esitosu.",
"The update was successful. Redirecting you to ownCloud now." : "L'anovamientu fízose con ésitu. Redirixiendo agora al to ownCloud.",
"Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l token ye inválidu",
"Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Por favor, asegurate que'l to nome d'usuariu seya correutu",
diff --git a/core/l10n/bg_BG.js b/core/l10n/bg_BG.js
index cf7369129ba..84e2efa6f18 100644
--- a/core/l10n/bg_BG.js
+++ b/core/l10n/bg_BG.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Сигурна парола",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Твоят web сървър все още не е правилно настроен да позволява синхронизация на файлове, защото WebDAV интерфейсът изглежда не работи.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Сървърът няма работеща интернет връзка. Това означава, че някои функции като прикачването на външни дискови устройства, уведомления за обновяване или инсталиране на външни приложения няма да работят. Достъпът на файлове отвън или изпращане на имейли за уведомление вероятно също няма да работят. Препоръчваме да включиш интернет връзката за този сървър ако искаш да използваш всички тези функции.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
"Error occurred while checking server setup" : "Настъпи грешка при проверката на настройките на сървъра.",
"Shared" : "Споделено",
"Shared with {recipients}" : "Споделено с {recipients}.",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["изтегли %n файл","изтегли %n файла"],
"Updating {productName} to version {version}, this may take a while." : "Обновява се {productName} на версия {version}, това може да отнеме време.",
"Please reload the page." : "Моля, презареди страницата.",
- "The update was unsuccessful." : "Обновяването неуспешно.",
"The update was successful. Redirecting you to ownCloud now." : "Обновяването е успешно. Пренасочване към твоя ownCloud сега.",
"Couldn't reset password because the token is invalid" : "Невалиден линк за промяна на паролата.",
"Couldn't send reset email. Please make sure your username is correct." : "Неуспешно изпращане на имейл за възстановяване на паролата. Моля, увери се, че потребителското име е правилно.",
diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json
index 8b6b7e057d2..81714d7fab1 100644
--- a/core/l10n/bg_BG.json
+++ b/core/l10n/bg_BG.json
@@ -62,6 +62,7 @@
"Strong password" : "Сигурна парола",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Твоят web сървър все още не е правилно настроен да позволява синхронизация на файлове, защото WebDAV интерфейсът изглежда не работи.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Сървърът няма работеща интернет връзка. Това означава, че някои функции като прикачването на външни дискови устройства, уведомления за обновяване или инсталиране на външни приложения няма да работят. Достъпът на файлове отвън или изпращане на имейли за уведомление вероятно също няма да работят. Препоръчваме да включиш интернет връзката за този сървър ако искаш да използваш всички тези функции.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
"Error occurred while checking server setup" : "Настъпи грешка при проверката на настройките на сървъра.",
"Shared" : "Споделено",
"Shared with {recipients}" : "Споделено с {recipients}.",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["изтегли %n файл","изтегли %n файла"],
"Updating {productName} to version {version}, this may take a while." : "Обновява се {productName} на версия {version}, това може да отнеме време.",
"Please reload the page." : "Моля, презареди страницата.",
- "The update was unsuccessful." : "Обновяването неуспешно.",
"The update was successful. Redirecting you to ownCloud now." : "Обновяването е успешно. Пренасочване към твоя ownCloud сега.",
"Couldn't reset password because the token is invalid" : "Невалиден линк за промяна на паролата.",
"Couldn't send reset email. Please make sure your username is correct." : "Неуспешно изпращане на имейл за възстановяване на паролата. Моля, увери се, че потребителското име е правилно.",
diff --git a/core/l10n/ca.js b/core/l10n/ca.js
index edec2f989f6..63dc0ab430a 100644
--- a/core/l10n/ca.js
+++ b/core/l10n/ca.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Contrasenya forta",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Aquest servidor no té cap connexió a internet que funcioni. Això significa que algunes de les característiques com el muntatge d'emmagatzemament extern, les notificacions quant a actualitzacions o la instal·lació d'aplicacions de tercers no funcionarà. L'accés remot a fitxers i l'enviament de correus electrònics podria tampoc no funcionar. Us suggerim que habiliteu la connexió a internet per aquest servidor si voleu tenir totes les característiques.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
"Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
"Shared" : "Compartit",
"Shared with {recipients}" : "Compartit amb {recipients}",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Actualitzant {productName} a la versió {version}. Pot trigar una estona.",
"Please reload the page." : "Carregueu la pàgina de nou.",
- "The update was unsuccessful." : "L'actualització no ha tingut èxit.",
"The update was successful. Redirecting you to ownCloud now." : "L'actualització ha estat correcte. Ara us redirigim a ownCloud.",
"Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid",
"Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.",
diff --git a/core/l10n/ca.json b/core/l10n/ca.json
index fea3cdefec2..f4404215b94 100644
--- a/core/l10n/ca.json
+++ b/core/l10n/ca.json
@@ -62,6 +62,7 @@
"Strong password" : "Contrasenya forta",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Aquest servidor no té cap connexió a internet que funcioni. Això significa que algunes de les característiques com el muntatge d'emmagatzemament extern, les notificacions quant a actualitzacions o la instal·lació d'aplicacions de tercers no funcionarà. L'accés remot a fitxers i l'enviament de correus electrònics podria tampoc no funcionar. Us suggerim que habiliteu la connexió a internet per aquest servidor si voleu tenir totes les característiques.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
"Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
"Shared" : "Compartit",
"Shared with {recipients}" : "Compartit amb {recipients}",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Actualitzant {productName} a la versió {version}. Pot trigar una estona.",
"Please reload the page." : "Carregueu la pàgina de nou.",
- "The update was unsuccessful." : "L'actualització no ha tingut èxit.",
"The update was successful. Redirecting you to ownCloud now." : "L'actualització ha estat correcte. Ara us redirigim a ownCloud.",
"Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid",
"Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.",
diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js
index 787b0b10e4a..f56125c74ee 100644
--- a/core/l10n/cs_CZ.js
+++ b/core/l10n/cs_CZ.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
+ "read-only" : "pouze ke čtení",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Silné heslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Váš webový server není správně nastaven pro umožnění synchronizace, rozhraní WebDAV se zdá být rozbité.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server nemá funkční připojení k internetu. Některé moduly jako např. externí úložiště, oznámení o dostupných aktualizacích nebo instalace aplikací třetích stran nebudou fungovat. Přístup k souborům z jiných míst a odesílání oznamovacích e-mailů také nemusí fungovat. Pokud si přejete využívat všech vlastností ownCloud, doporučujeme povolit připojení k internetu tomuto serveru.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
"Error occurred while checking server setup" : "Při ověřování nastavení serveru došlo k chybě",
"Shared" : "Sdílené",
"Shared with {recipients}" : "Sdíleno s {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
"Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.",
"Please reload the page." : "Načtěte stránku znovu, prosím.",
- "The update was unsuccessful." : "Aktualizace nebyla úspěšná.",
+ "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
@@ -128,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Obnovit heslo",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!",
"For the best results, please consider using a GNU/Linux server instead." : "Místo toho zvažte pro nejlepší funkčnost použití GNU/Linux serveru.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32 bitovém PHP prostředí a byl nakonfigurován open_basedir v php.ini. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraňte prosím open_basedir nastavení ve svém php.ini nebo přejděte na 64 bitové PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32 bitovém PHP prostředí a není nainstalováno cURL. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.",
+ "Please install the cURL extension and restart your webserver." : "Nainstalujte prosím cURL rozšíření a restartujte webový server.",
"Personal" : "Osobní",
"Users" : "Uživatelé",
"Apps" : "Aplikace",
diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json
index 8de2fd338c1..a10a587fbf1 100644
--- a/core/l10n/cs_CZ.json
+++ b/core/l10n/cs_CZ.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
+ "read-only" : "pouze ke čtení",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
@@ -62,6 +63,7 @@
"Strong password" : "Silné heslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Váš webový server není správně nastaven pro umožnění synchronizace, rozhraní WebDAV se zdá být rozbité.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server nemá funkční připojení k internetu. Některé moduly jako např. externí úložiště, oznámení o dostupných aktualizacích nebo instalace aplikací třetích stran nebudou fungovat. Přístup k souborům z jiných míst a odesílání oznamovacích e-mailů také nemusí fungovat. Pokud si přejete využívat všech vlastností ownCloud, doporučujeme povolit připojení k internetu tomuto serveru.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
"Error occurred while checking server setup" : "Při ověřování nastavení serveru došlo k chybě",
"Shared" : "Sdílené",
"Shared with {recipients}" : "Sdíleno s {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
"Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.",
"Please reload the page." : "Načtěte stránku znovu, prosím.",
- "The update was unsuccessful." : "Aktualizace nebyla úspěšná.",
+ "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
@@ -126,6 +128,10 @@
"Reset password" : "Obnovit heslo",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!",
"For the best results, please consider using a GNU/Linux server instead." : "Místo toho zvažte pro nejlepší funkčnost použití GNU/Linux serveru.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32 bitovém PHP prostředí a byl nakonfigurován open_basedir v php.ini. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraňte prosím open_basedir nastavení ve svém php.ini nebo přejděte na 64 bitové PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32 bitovém PHP prostředí a není nainstalováno cURL. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.",
+ "Please install the cURL extension and restart your webserver." : "Nainstalujte prosím cURL rozšíření a restartujte webový server.",
"Personal" : "Osobní",
"Users" : "Uživatelé",
"Apps" : "Aplikace",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index ea228ee8b81..ec32e042f21 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Stærkt kodeord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din webserver er endnu ikke sat op til at tillade fil synkronisering fordi WebDAV grænsefladen virker ødelagt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne ownCloud-server har ikke en fungerende forbindelse til internettet. Det betyder, at visse funktioner som montering af eksterne drev, oplysninger om opdatering eller installation af 3.-parts applikationer ikke fungerer. Det vil sandsynligvis heller ikke fungere at tilgå filer fra eksterne drev eller informations-e-mails. Vi opfordrer til at etablere forbindelse til internettet for denne server, såfremt du ønsker samtlige funktioner.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
"Error occurred while checking server setup" : "Der opstod fejl under tjek af serveropsætningen",
"Shared" : "Delt",
"Shared with {recipients}" : "Delt med {recipients}",
@@ -116,7 +117,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"],
"Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.",
"Please reload the page." : "Genindlæs venligst siden",
- "The update was unsuccessful." : "Opdateringen mislykkedes.",
+ "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
"The update was successful. Redirecting you to ownCloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
"Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt",
"Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt",
@@ -128,6 +129,10 @@ OC.L10N.register(
"Reset password" : "Nulstil kodeord",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X understøttes ikke og %s vil ikke virke optimalt på denne platform. Anvend på eget ansvar!",
"For the best results, please consider using a GNU/Linux server instead." : "For de bedste resultater, overvej venligst at bruge en GNU/Linux-server i stedet.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og at open_basedir er blevet konfigureret gennem php.ini. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern venligst indstillingen for open_basedir inde i din php.ini eller skift til 64-bit PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og cURL er ikke installeret. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.",
+ "Please install the cURL extension and restart your webserver." : "Installér venligst cURL-udvidelsen og genstart din webserver.",
"Personal" : "Personligt",
"Users" : "Brugere",
"Apps" : "Apps",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index 021d43e8c7b..af549ac8d30 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -62,6 +62,7 @@
"Strong password" : "Stærkt kodeord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din webserver er endnu ikke sat op til at tillade fil synkronisering fordi WebDAV grænsefladen virker ødelagt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne ownCloud-server har ikke en fungerende forbindelse til internettet. Det betyder, at visse funktioner som montering af eksterne drev, oplysninger om opdatering eller installation af 3.-parts applikationer ikke fungerer. Det vil sandsynligvis heller ikke fungere at tilgå filer fra eksterne drev eller informations-e-mails. Vi opfordrer til at etablere forbindelse til internettet for denne server, såfremt du ønsker samtlige funktioner.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
"Error occurred while checking server setup" : "Der opstod fejl under tjek af serveropsætningen",
"Shared" : "Delt",
"Shared with {recipients}" : "Delt med {recipients}",
@@ -114,7 +115,7 @@
"_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"],
"Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.",
"Please reload the page." : "Genindlæs venligst siden",
- "The update was unsuccessful." : "Opdateringen mislykkedes.",
+ "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
"The update was successful. Redirecting you to ownCloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
"Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt",
"Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt",
@@ -126,6 +127,10 @@
"Reset password" : "Nulstil kodeord",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X understøttes ikke og %s vil ikke virke optimalt på denne platform. Anvend på eget ansvar!",
"For the best results, please consider using a GNU/Linux server instead." : "For de bedste resultater, overvej venligst at bruge en GNU/Linux-server i stedet.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og at open_basedir er blevet konfigureret gennem php.ini. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern venligst indstillingen for open_basedir inde i din php.ini eller skift til 64-bit PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og cURL er ikke installeret. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.",
+ "Please install the cURL extension and restart your webserver." : "Installér venligst cURL-udvidelsen og genstart din webserver.",
"Personal" : "Personligt",
"Users" : "Brugere",
"Apps" : "Apps",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 6b603f3b68a..659c013a7e1 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Starkes Passwort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie z.B. das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen nutzen wollen.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
"Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung",
"Shared" : "Geteilt",
"Shared with {recipients}" : "Geteilt mit {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
"Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.",
"Please reload the page." : "Bitte lade diese Seite neu.",
- "The update was unsuccessful." : "Die Aktualisierung war erfolgreich.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Du wirst nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Stelle sicher, dass Dein Nutzername korrekt ist.",
@@ -128,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Passwort zurücksetzen",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht korrekt funktionieren. Benutzung auf eigenes Risiko!",
"For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entferne die open_basedir - Einstellung in Deiner php.ini oder wechsle zum 64Bit-PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please install the cURL extension and restart your webserver." : "Bitte installiere die cURL-Erweiterung und starte den Webserver neu.",
"Personal" : "Persönlich",
"Users" : "Benutzer",
"Apps" : "Apps",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index c1260e70618..a59a96a3ed3 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -62,6 +63,7 @@
"Strong password" : "Starkes Passwort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie z.B. das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen nutzen wollen.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
"Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung",
"Shared" : "Geteilt",
"Shared with {recipients}" : "Geteilt mit {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
"Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.",
"Please reload the page." : "Bitte lade diese Seite neu.",
- "The update was unsuccessful." : "Die Aktualisierung war erfolgreich.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Du wirst nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Stelle sicher, dass Dein Nutzername korrekt ist.",
@@ -126,6 +128,10 @@
"Reset password" : "Passwort zurücksetzen",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht korrekt funktionieren. Benutzung auf eigenes Risiko!",
"For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entferne die open_basedir - Einstellung in Deiner php.ini oder wechsle zum 64Bit-PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please install the cURL extension and restart your webserver." : "Bitte installiere die cURL-Erweiterung und starte den Webserver neu.",
"Personal" : "Persönlich",
"Users" : "Benutzer",
"Apps" : "Apps",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index aaf21aaf95e..e33ed195d18 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Starkes Passwort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ihr Internetserver ist noch nicht richtig konfiguriert, um Dateisynchronisation zu erlauben, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dieses bedeutet, dass einige Funktionen wie z.B. das Einbinden von externen Speichern, Aktualisierungsbenachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Versenden von E-Mail-Benachrichtigungen funktionieren eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen benutzen wollen.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
"Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung",
"Shared" : "Geteilt",
"Shared with {recipients}" : "Geteilt mit {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
"Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.",
"Please reload the page." : "Bitte laden Sie diese Seite neu.",
- "The update was unsuccessful." : "Die Aktualisierung war erfolgreich.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.",
@@ -128,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Passwort zurücksetzen",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht richtig funktionieren. Benutzung auf eigenes Risiko!",
"For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entfernen Sie die open_basedir - Einstellung in Ihrer php.ini oder wechseln Sie zum 64Bit-PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please install the cURL extension and restart your webserver." : "Bitte installieren Sie die cURL-Erweiterung und starten Sie den Webserver neu.",
"Personal" : "Persönlich",
"Users" : "Benutzer",
"Apps" : "Apps",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 39e3fd53719..9d868677e97 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -62,6 +63,7 @@
"Strong password" : "Starkes Passwort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ihr Internetserver ist noch nicht richtig konfiguriert, um Dateisynchronisation zu erlauben, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dieses bedeutet, dass einige Funktionen wie z.B. das Einbinden von externen Speichern, Aktualisierungsbenachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Versenden von E-Mail-Benachrichtigungen funktionieren eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen benutzen wollen.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
"Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung",
"Shared" : "Geteilt",
"Shared with {recipients}" : "Geteilt mit {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
"Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.",
"Please reload the page." : "Bitte laden Sie diese Seite neu.",
- "The update was unsuccessful." : "Die Aktualisierung war erfolgreich.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.",
@@ -126,6 +128,10 @@
"Reset password" : "Passwort zurücksetzen",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht richtig funktionieren. Benutzung auf eigenes Risiko!",
"For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entfernen Sie die open_basedir - Einstellung in Ihrer php.ini oder wechseln Sie zum 64Bit-PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.",
+ "Please install the cURL extension and restart your webserver." : "Bitte installieren Sie die cURL-Erweiterung und starten Sie den Webserver neu.",
"Personal" : "Persönlich",
"Users" : "Benutzer",
"Apps" : "Apps",
diff --git a/core/l10n/el.js b/core/l10n/el.js
index c41928116ba..9abc954244b 100644
--- a/core/l10n/el.js
+++ b/core/l10n/el.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Δυνατό συνθηματικό",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Αυτός ο διακομιστής δεν έχει ενεργή σύνδεση στο διαδίκτυο. Αυτό σημαίνει ότι κάποιες υπηρεσίες όπως η σύνδεση με εξωτερικούς αποθηκευτικούς χώρους, ειδοποιήσεις περί ενημερώσεων ή η εγκατάσταση 3ων εφαρμογών δεν θα είναι διαθέσιμες. Η πρόσβαση απομακρυσμένων αρχείων και η αποστολή ειδοποιήσεων μέσω ηλεκτρονικού ταχυδρομείου μπορεί επίσης να μην είναι διαθέσιμες. Προτείνουμε να ενεργοποιήσετε την πρόσβαση στο διαδίκτυο για αυτόν το διακομιστή εάν θέλετε να χρησιμοποιήσετε όλες τις υπηρεσίες.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
"Error occurred while checking server setup" : "Παρουσιάστηκε σφάλμα κατά τον έλεγχο της εγκατάστασης με το διακομιστή",
"Shared" : "Κοινόχρηστα",
"Shared with {recipients}" : "Διαμοιράστηκε με {recipients}",
@@ -113,7 +114,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"],
"Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.",
"Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.",
- "The update was unsuccessful." : "Η ενημέρωση δεν ήταν επιτυχής.",
"The update was successful. Redirecting you to ownCloud now." : "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud.",
"Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς κωδικού πρόσβασης καθώς το τεκμήριο είναι άκυρο",
"Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι ορθό.",
diff --git a/core/l10n/el.json b/core/l10n/el.json
index 6b08b8262c8..43823259fc7 100644
--- a/core/l10n/el.json
+++ b/core/l10n/el.json
@@ -62,6 +62,7 @@
"Strong password" : "Δυνατό συνθηματικό",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Αυτός ο διακομιστής δεν έχει ενεργή σύνδεση στο διαδίκτυο. Αυτό σημαίνει ότι κάποιες υπηρεσίες όπως η σύνδεση με εξωτερικούς αποθηκευτικούς χώρους, ειδοποιήσεις περί ενημερώσεων ή η εγκατάσταση 3ων εφαρμογών δεν θα είναι διαθέσιμες. Η πρόσβαση απομακρυσμένων αρχείων και η αποστολή ειδοποιήσεων μέσω ηλεκτρονικού ταχυδρομείου μπορεί επίσης να μην είναι διαθέσιμες. Προτείνουμε να ενεργοποιήσετε την πρόσβαση στο διαδίκτυο για αυτόν το διακομιστή εάν θέλετε να χρησιμοποιήσετε όλες τις υπηρεσίες.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
"Error occurred while checking server setup" : "Παρουσιάστηκε σφάλμα κατά τον έλεγχο της εγκατάστασης με το διακομιστή",
"Shared" : "Κοινόχρηστα",
"Shared with {recipients}" : "Διαμοιράστηκε με {recipients}",
@@ -111,7 +112,6 @@
"_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"],
"Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.",
"Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.",
- "The update was unsuccessful." : "Η ενημέρωση δεν ήταν επιτυχής.",
"The update was successful. Redirecting you to ownCloud now." : "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud.",
"Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς κωδικού πρόσβασης καθώς το τεκμήριο είναι άκυρο",
"Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλ. μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι ορθό.",
diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js
index 27f28c84908..d9927851162 100644
--- a/core/l10n/en_GB.js
+++ b/core/l10n/en_GB.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Error loading file picker template: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Error loading message template: {error}",
+ "read-only" : "read-only",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} file conflict","{count} file conflicts"],
"One file conflict" : "One file conflict",
"New Files" : "New Files",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Strong password",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Your web server is not yet properly setup to allow files synchronisation because the WebDAV interface seems to be broken.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "This server has no working internet connection. This means that some of the features such as mounting external storage, notifications about updates, or installation of 3rd party apps won't work. Accessing files remotely and sending notification emails might also not work. We suggest enabling an internet connection for this server if you want to have all the features.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
"Error occurred while checking server setup" : "Error occurred whilst checking server setup",
"Shared" : "Shared",
"Shared with {recipients}" : "Shared with {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["download %n file","download %n files"],
"Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.",
"Please reload the page." : "Please reload the page.",
- "The update was unsuccessful." : "The update was unsuccessful.",
+ "The update was unsuccessful. " : "The update was unsuccessful. ",
"The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.",
"Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid",
"Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.",
@@ -128,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Reset password",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! ",
"For the best results, please consider using a GNU/Linux server instead." : "For the best results, please consider using a GNU/Linux server instead.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged.",
+ "Please install the cURL extension and restart your webserver." : "Please install the cURL extension and restart your webserver.",
"Personal" : "Personal",
"Users" : "Users",
"Apps" : "Apps",
diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json
index c4daf4bbb97..2e9362f3240 100644
--- a/core/l10n/en_GB.json
+++ b/core/l10n/en_GB.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Error loading file picker template: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Error loading message template: {error}",
+ "read-only" : "read-only",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} file conflict","{count} file conflicts"],
"One file conflict" : "One file conflict",
"New Files" : "New Files",
@@ -62,6 +63,7 @@
"Strong password" : "Strong password",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Your web server is not yet properly setup to allow files synchronisation because the WebDAV interface seems to be broken.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "This server has no working internet connection. This means that some of the features such as mounting external storage, notifications about updates, or installation of 3rd party apps won't work. Accessing files remotely and sending notification emails might also not work. We suggest enabling an internet connection for this server if you want to have all the features.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
"Error occurred while checking server setup" : "Error occurred whilst checking server setup",
"Shared" : "Shared",
"Shared with {recipients}" : "Shared with {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["download %n file","download %n files"],
"Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.",
"Please reload the page." : "Please reload the page.",
- "The update was unsuccessful." : "The update was unsuccessful.",
+ "The update was unsuccessful. " : "The update was unsuccessful. ",
"The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.",
"Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid",
"Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.",
@@ -126,6 +128,10 @@
"Reset password" : "Reset password",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! ",
"For the best results, please consider using a GNU/Linux server instead." : "For the best results, please consider using a GNU/Linux server instead.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged.",
+ "Please install the cURL extension and restart your webserver." : "Please install the cURL extension and restart your webserver.",
"Personal" : "Personal",
"Users" : "Users",
"Apps" : "Apps",
diff --git a/core/l10n/es.js b/core/l10n/es.js
index be1bb9ffe72..867381309b0 100644
--- a/core/l10n/es.js
+++ b/core/l10n/es.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Contraseña muy buena",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir la sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor no tiene conexión a Internet. Esto significa que algunas de las características no funcionarán, como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones, la instalación de aplicaciones de terceros, el acceso a los archivos de forma remota o el envío de correos electrónicos de notificación. Sugerimos habilitar una conexión a Internet en este servidor para disfrutar de todas las funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Error occurred while checking server setup" : "Ha ocurrido un error la revisar la configuración del servidor",
"Shared" : "Compartido",
"Shared with {recipients}" : "Compartido con {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["descarga %n ficheros","descarga %n ficheros"],
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.",
"Please reload the page." : "Recargue/Actualice la página",
- "The update was unsuccessful." : "Falló la actualización",
"The update was successful. Redirecting you to ownCloud now." : "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.",
"Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es nulo.",
"Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar la reiniciación de su correo electrónico. Por favor, asegúrese de que su nombre de usuario es el correcto.",
diff --git a/core/l10n/es.json b/core/l10n/es.json
index 742703e87c9..4fbd2086e34 100644
--- a/core/l10n/es.json
+++ b/core/l10n/es.json
@@ -62,6 +62,7 @@
"Strong password" : "Contraseña muy buena",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir la sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor no tiene conexión a Internet. Esto significa que algunas de las características no funcionarán, como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones, la instalación de aplicaciones de terceros, el acceso a los archivos de forma remota o el envío de correos electrónicos de notificación. Sugerimos habilitar una conexión a Internet en este servidor para disfrutar de todas las funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Error occurred while checking server setup" : "Ha ocurrido un error la revisar la configuración del servidor",
"Shared" : "Compartido",
"Shared with {recipients}" : "Compartido con {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["descarga %n ficheros","descarga %n ficheros"],
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.",
"Please reload the page." : "Recargue/Actualice la página",
- "The update was unsuccessful." : "Falló la actualización",
"The update was successful. Redirecting you to ownCloud now." : "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.",
"Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es nulo.",
"Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar la reiniciación de su correo electrónico. Por favor, asegúrese de que su nombre de usuario es el correcto.",
diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js
index fae6284acf7..bfd76a6e283 100644
--- a/core/l10n/es_AR.js
+++ b/core/l10n/es_AR.js
@@ -54,6 +54,7 @@ OC.L10N.register(
"Strong password" : "Contraseña fuerte.",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "El servidor no posee una conexión a Internet activa. Esto significa que algunas características como el montaje de un almacenamiento externo, las notificaciones acerca de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. El acceso a archivos de forma remota y el envío de correos con notificaciones es posible que tampoco funcionen. Sugerimos habilitar la conexión a Internet para este servidor si deseas tener todas estas características.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
"Shared" : "Compartido",
"Share" : "Compartir",
"Error" : "Error",
diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json
index c5649a1630a..4456e6b0c56 100644
--- a/core/l10n/es_AR.json
+++ b/core/l10n/es_AR.json
@@ -52,6 +52,7 @@
"Strong password" : "Contraseña fuerte.",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "El servidor no posee una conexión a Internet activa. Esto significa que algunas características como el montaje de un almacenamiento externo, las notificaciones acerca de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. El acceso a archivos de forma remota y el envío de correos con notificaciones es posible que tampoco funcionen. Sugerimos habilitar la conexión a Internet para este servidor si deseas tener todas estas características.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
"Shared" : "Compartido",
"Share" : "Compartir",
"Error" : "Error",
diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js
index 66fc3efb9a6..2af86979be6 100644
--- a/core/l10n/es_MX.js
+++ b/core/l10n/es_MX.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Error loading file exists template" : "Error cargando plantilla de archivo existente",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir la sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor no tiene conexión a Internet. Esto significa que algunas de las características no funcionarán, como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones, la instalación de aplicaciones de terceros, el acceso a los archivos de forma remota o el envío de correos electrónicos de notificación. Sugerimos habilitar una conexión a Internet en este servidor para disfrutar de todas las funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Shared" : "Compartido",
"Share" : "Compartir",
"Error" : "Error",
diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json
index df3f3aa655a..9f58cade70e 100644
--- a/core/l10n/es_MX.json
+++ b/core/l10n/es_MX.json
@@ -46,6 +46,7 @@
"Error loading file exists template" : "Error cargando plantilla de archivo existente",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir la sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor no tiene conexión a Internet. Esto significa que algunas de las características no funcionarán, como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones, la instalación de aplicaciones de terceros, el acceso a los archivos de forma remota o el envío de correos electrónicos de notificación. Sugerimos habilitar una conexión a Internet en este servidor para disfrutar de todas las funciones.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Shared" : "Compartido",
"Share" : "Compartir",
"Error" : "Error",
diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js
index 25681f3486b..c1deddc96e1 100644
--- a/core/l10n/et_EE.js
+++ b/core/l10n/et_EE.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Väga hea parool",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Veebiserveri ei ole veel korralikult seadistatud võimaldamaks failide sünkroniseerimist, kuna WebDAV liides näib olevat mittetoimiv.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Serveril puudub toimiv internetiühendus. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, teavitused uuendustest või kolmandate osapoolte rakenduste paigaldamine ei tööta. Eemalt failidele ligipääs ning teadete saatmine emailiga ei pruugi samuti toimida. Kui soovid täielikku funktsionaalsust, siis soovitame serverile tagada ligipääs internetti.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
"Error occurred while checking server setup" : "Serveri seadete kontrolimisel tekkis viga",
"Shared" : "Jagatud",
"Shared with {recipients}" : "Jagatud {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"],
"Updating {productName} to version {version}, this may take a while." : "Uuendan {productName} versioonile {version}, see võtab veidi aega.",
"Please reload the page." : "Palun laadi see uuesti.",
- "The update was unsuccessful." : "Uuendus ebaõnnestus.",
"The update was successful. Redirecting you to ownCloud now." : "Uuendus oli edukas. Kohe suunatakse Sind ownCloudi.",
"Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane",
"Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.",
diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json
index eeb51ed5f85..a87ec64b5a0 100644
--- a/core/l10n/et_EE.json
+++ b/core/l10n/et_EE.json
@@ -62,6 +62,7 @@
"Strong password" : "Väga hea parool",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Veebiserveri ei ole veel korralikult seadistatud võimaldamaks failide sünkroniseerimist, kuna WebDAV liides näib olevat mittetoimiv.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Serveril puudub toimiv internetiühendus. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, teavitused uuendustest või kolmandate osapoolte rakenduste paigaldamine ei tööta. Eemalt failidele ligipääs ning teadete saatmine emailiga ei pruugi samuti toimida. Kui soovid täielikku funktsionaalsust, siis soovitame serverile tagada ligipääs internetti.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
"Error occurred while checking server setup" : "Serveri seadete kontrolimisel tekkis viga",
"Shared" : "Jagatud",
"Shared with {recipients}" : "Jagatud {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"],
"Updating {productName} to version {version}, this may take a while." : "Uuendan {productName} versioonile {version}, see võtab veidi aega.",
"Please reload the page." : "Palun laadi see uuesti.",
- "The update was unsuccessful." : "Uuendus ebaõnnestus.",
"The update was successful. Redirecting you to ownCloud now." : "Uuendus oli edukas. Kohe suunatakse Sind ownCloudi.",
"Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane",
"Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.",
diff --git a/core/l10n/eu.js b/core/l10n/eu.js
index 7186216bf15..4e1dd42f257 100644
--- a/core/l10n/eu.js
+++ b/core/l10n/eu.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Pasahitz sendoa",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Zerbitzari honen interneteko konexioa ez dabil. Honek esan nahi du kanpoko biltegiratze zerbitzuak, eguneraketen informazioa edo bestelako aplikazioen instalazioa bezalako programek ez dutela funtzionatuko. Urrunetik fitxategiak eskuratzea eta e-postak bidaltzea ere ezinezkoa izan daiteke. onwCloud-en aukera guztiak erabili ahal izateko zerbitzari honetan interneteko konexioa gaitzea aholkatzen dizugu.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
"Error occurred while checking server setup" : "Errore bat gertatu da zerbitzariaren konfigurazioa egiaztatzerakoan.",
"Shared" : "Elkarbanatuta",
"Shared with {recipients}" : "{recipients}-rekin partekatua.",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Eguneratu {productName} {version} bertsiora, bere denbora behar du.",
"Please reload the page." : "Mesedez birkargatu orria.",
- "The update was unsuccessful." : "Eguneraketak ez du arrakasta izan.",
"The update was successful. Redirecting you to ownCloud now." : "Eguneraketa ongi egin da. Orain zure ownClouderea berbideratua izango zara.",
"Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako",
"Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.",
diff --git a/core/l10n/eu.json b/core/l10n/eu.json
index 0579dd2dbad..c8951a09afc 100644
--- a/core/l10n/eu.json
+++ b/core/l10n/eu.json
@@ -62,6 +62,7 @@
"Strong password" : "Pasahitz sendoa",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Zerbitzari honen interneteko konexioa ez dabil. Honek esan nahi du kanpoko biltegiratze zerbitzuak, eguneraketen informazioa edo bestelako aplikazioen instalazioa bezalako programek ez dutela funtzionatuko. Urrunetik fitxategiak eskuratzea eta e-postak bidaltzea ere ezinezkoa izan daiteke. onwCloud-en aukera guztiak erabili ahal izateko zerbitzari honetan interneteko konexioa gaitzea aholkatzen dizugu.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
"Error occurred while checking server setup" : "Errore bat gertatu da zerbitzariaren konfigurazioa egiaztatzerakoan.",
"Shared" : "Elkarbanatuta",
"Shared with {recipients}" : "{recipients}-rekin partekatua.",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Eguneratu {productName} {version} bertsiora, bere denbora behar du.",
"Please reload the page." : "Mesedez birkargatu orria.",
- "The update was unsuccessful." : "Eguneraketak ez du arrakasta izan.",
"The update was successful. Redirecting you to ownCloud now." : "Eguneraketa ongi egin da. Orain zure ownClouderea berbideratua izango zara.",
"Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako",
"Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.",
diff --git a/core/l10n/fa.js b/core/l10n/fa.js
index 9b93ede5f05..75443640478 100644
--- a/core/l10n/fa.js
+++ b/core/l10n/fa.js
@@ -58,6 +58,7 @@ OC.L10N.register(
"Strong password" : "رمز عبور قوی",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "احتمالاً وب سرور شما طوری تنظیم نشده است که اجازه ی همگام سازی فایلها را بدهد زیرا به نظر میرسد رابط WebDAV از کار افتاده است.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "این سرور ارتباط اینترنتی ندارد. این بدین معناست که بعضی از امکانات نظیر مرتبط سازی یک منبع ذخیره‌ی خارجی، اطلاعات رسانی در مورد بروزرسانی‌ها یا نصب برنامه های جانبی کار نمی‌کنند. دسترسی به فایل ها از راه دور و ارسال اطلاع رسانی توسط ایمیل ممکن است همچنان کار نکند. ما پیشنهاد می‌کنیم که ارتباط اینترنتی مربوط به این سرور را فعال کنید تا تمامی امکانات را در اختیار داشته باشید.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشه‌ی data و فایل‌های شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمی‌کند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشه‌ی data شما غیر قابل دسترسی باشد یا اینکه پوشه‌‎ی data را به خارج از ریشه‌ی اصلی وب سرور انتقال دهید.",
"Shared" : "اشتراک گذاشته شده",
"Shared with {recipients}" : "به اشتراک گذاشته شده با {recipients}",
"Share" : "اشتراک‌گذاری",
@@ -98,7 +99,6 @@ OC.L10N.register(
"Add" : "افزودن",
"Edit tags" : "ویرایش تگ ها",
"_download %n file_::_download %n files_" : [""],
- "The update was unsuccessful." : "بروزرسانی موفقیت آمیز نبود.",
"The update was successful. Redirecting you to ownCloud now." : "به روزرسانی موفقیت آمیز بود. در حال انتقال شما به OwnCloud.",
"Use the following link to reset your password: {link}" : "از لینک زیر جهت دوباره سازی پسورد استفاده کنید :\n{link}",
"New password" : "گذرواژه جدید",
diff --git a/core/l10n/fa.json b/core/l10n/fa.json
index 7914b15ce20..5228ebed6dc 100644
--- a/core/l10n/fa.json
+++ b/core/l10n/fa.json
@@ -56,6 +56,7 @@
"Strong password" : "رمز عبور قوی",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "احتمالاً وب سرور شما طوری تنظیم نشده است که اجازه ی همگام سازی فایلها را بدهد زیرا به نظر میرسد رابط WebDAV از کار افتاده است.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "این سرور ارتباط اینترنتی ندارد. این بدین معناست که بعضی از امکانات نظیر مرتبط سازی یک منبع ذخیره‌ی خارجی، اطلاعات رسانی در مورد بروزرسانی‌ها یا نصب برنامه های جانبی کار نمی‌کنند. دسترسی به فایل ها از راه دور و ارسال اطلاع رسانی توسط ایمیل ممکن است همچنان کار نکند. ما پیشنهاد می‌کنیم که ارتباط اینترنتی مربوط به این سرور را فعال کنید تا تمامی امکانات را در اختیار داشته باشید.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشه‌ی data و فایل‌های شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمی‌کند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشه‌ی data شما غیر قابل دسترسی باشد یا اینکه پوشه‌‎ی data را به خارج از ریشه‌ی اصلی وب سرور انتقال دهید.",
"Shared" : "اشتراک گذاشته شده",
"Shared with {recipients}" : "به اشتراک گذاشته شده با {recipients}",
"Share" : "اشتراک‌گذاری",
@@ -96,7 +97,6 @@
"Add" : "افزودن",
"Edit tags" : "ویرایش تگ ها",
"_download %n file_::_download %n files_" : [""],
- "The update was unsuccessful." : "بروزرسانی موفقیت آمیز نبود.",
"The update was successful. Redirecting you to ownCloud now." : "به روزرسانی موفقیت آمیز بود. در حال انتقال شما به OwnCloud.",
"Use the following link to reset your password: {link}" : "از لینک زیر جهت دوباره سازی پسورد استفاده کنید :\n{link}",
"New password" : "گذرواژه جدید",
diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js
index 3d635a8b866..262d2641984 100644
--- a/core/l10n/fi_FI.js
+++ b/core/l10n/fi_FI.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Turned off maintenance mode" : "Ylläpitotila laitettu pois päältä",
"Updated database" : "Tietokanta ajan tasalla",
"Checked database schema update" : "Tarkistettu tietokannan skeemapäivitys",
+ "Checked database schema update for apps" : "Tarkistettu tietokannan skeemapäivitys sovelluksille",
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Disabled incompatible apps: %s" : "Yhteensopimattomat sovellukset poistettiin käytöstä: %s",
"No image or file provided" : "Kuvaa tai tiedostoa ei määritelty",
@@ -45,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Virhe ladatessa tiedostopohjia: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Virhe ladatessa viestipohjaa: {error}",
+ "read-only" : "vain luku",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} tiedoston ristiriita","{count} tiedoston ristiriita"],
"One file conflict" : "Yhden tiedoston ristiriita",
"New Files" : "Uudet tiedostot",
@@ -63,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Vahva salasana",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web-palvelimen asetukset eivät ole kelvolliset tiedostojen synkronointia varten, koska WebDAV-liitäntä vaikuttaa olevan rikki.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Tällä palvelimella ei ole toimivaa internetyhteyttä. Sen seurauksena jotkin ominaisuudet, kuten erillisten tallennustilojen liittäminen, ilmoitukset päivityksistä tai kolmansien osapuolten sovellusten asentaminen eivät toimi. Tiedostojen käyttäminen etäältä ja ilmoitusten lähettäminen sähköpostitse eivät myöskään välttämättä toimi. Jos haluat käyttää kaikkia palvelimen ominaisuuksia, kytke palvelin internetiin.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
"Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa",
"Shared" : "Jaettu",
"Shared with {recipients}" : "Jaettu henkilöiden {recipients} kanssa",
@@ -115,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"],
"Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.",
"Please reload the page." : "Päivitä sivu.",
- "The update was unsuccessful." : "Päivitys epäonnistui.",
+ "The update was unsuccessful. " : "Päivitys epäonnistui.",
"The update was successful. Redirecting you to ownCloud now." : "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi.",
"Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen",
"Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.",
@@ -127,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Palauta salasana",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole tuettu, joten %s ei toimi kunnolla tällä alustalla. Käytä omalla vastuulla!",
"For the best results, please consider using a GNU/Linux server instead." : "Käytä parhaan lopputuloksen saamiseksi GNU/Linux-palvelinta.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja open_basedir on määritetty php.ini-tiedostossa. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Poista open_basedir-asetus php.ini-tiedostosta tai vaihda 64-bittiseen PHP-asennukseen.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja ettei cURLia ole asennettu. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.",
+ "Please install the cURL extension and restart your webserver." : "Asenna cURL-laajennus ja käynnistä http-palvelin uudelleen.",
"Personal" : "Henkilökohtainen",
"Users" : "Käyttäjät",
"Apps" : "Sovellukset",
diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json
index d1554c2a356..922b9e70635 100644
--- a/core/l10n/fi_FI.json
+++ b/core/l10n/fi_FI.json
@@ -4,6 +4,7 @@
"Turned off maintenance mode" : "Ylläpitotila laitettu pois päältä",
"Updated database" : "Tietokanta ajan tasalla",
"Checked database schema update" : "Tarkistettu tietokannan skeemapäivitys",
+ "Checked database schema update for apps" : "Tarkistettu tietokannan skeemapäivitys sovelluksille",
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Disabled incompatible apps: %s" : "Yhteensopimattomat sovellukset poistettiin käytöstä: %s",
"No image or file provided" : "Kuvaa tai tiedostoa ei määritelty",
@@ -43,6 +44,7 @@
"Error loading file picker template: {error}" : "Virhe ladatessa tiedostopohjia: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Virhe ladatessa viestipohjaa: {error}",
+ "read-only" : "vain luku",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} tiedoston ristiriita","{count} tiedoston ristiriita"],
"One file conflict" : "Yhden tiedoston ristiriita",
"New Files" : "Uudet tiedostot",
@@ -61,6 +63,7 @@
"Strong password" : "Vahva salasana",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web-palvelimen asetukset eivät ole kelvolliset tiedostojen synkronointia varten, koska WebDAV-liitäntä vaikuttaa olevan rikki.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Tällä palvelimella ei ole toimivaa internetyhteyttä. Sen seurauksena jotkin ominaisuudet, kuten erillisten tallennustilojen liittäminen, ilmoitukset päivityksistä tai kolmansien osapuolten sovellusten asentaminen eivät toimi. Tiedostojen käyttäminen etäältä ja ilmoitusten lähettäminen sähköpostitse eivät myöskään välttämättä toimi. Jos haluat käyttää kaikkia palvelimen ominaisuuksia, kytke palvelin internetiin.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
"Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa",
"Shared" : "Jaettu",
"Shared with {recipients}" : "Jaettu henkilöiden {recipients} kanssa",
@@ -113,7 +116,7 @@
"_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"],
"Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.",
"Please reload the page." : "Päivitä sivu.",
- "The update was unsuccessful." : "Päivitys epäonnistui.",
+ "The update was unsuccessful. " : "Päivitys epäonnistui.",
"The update was successful. Redirecting you to ownCloud now." : "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi.",
"Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen",
"Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.",
@@ -125,6 +128,10 @@
"Reset password" : "Palauta salasana",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole tuettu, joten %s ei toimi kunnolla tällä alustalla. Käytä omalla vastuulla!",
"For the best results, please consider using a GNU/Linux server instead." : "Käytä parhaan lopputuloksen saamiseksi GNU/Linux-palvelinta.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja open_basedir on määritetty php.ini-tiedostossa. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Poista open_basedir-asetus php.ini-tiedostosta tai vaihda 64-bittiseen PHP-asennukseen.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja ettei cURLia ole asennettu. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.",
+ "Please install the cURL extension and restart your webserver." : "Asenna cURL-laajennus ja käynnistä http-palvelin uudelleen.",
"Personal" : "Henkilökohtainen",
"Users" : "Käyttäjät",
"Apps" : "Sovellukset",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index 0155b0c90c4..9d896af722c 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Mot de passe fort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour permettre la synchronisation des fichiers car l'interface WebDav semble ne pas fonctionner.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par courriel ne fonctionneront pas non plus. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
"Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur",
"Shared" : "Partagé",
"Shared with {recipients}" : "Partagé avec {recipients}",
@@ -116,7 +117,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
- "The update was unsuccessful." : "La mise à jour a échoué.",
+ "The update was unsuccessful. " : "La mise à jour a échoué.",
"The update was successful. Redirecting you to ownCloud now." : "La mise à jour a réussi. Vous êtes maintenant redirigé(e) vers ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.",
"Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index 2ddd7d91a39..ea0e05bd8ec 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -62,6 +62,7 @@
"Strong password" : "Mot de passe fort",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour permettre la synchronisation des fichiers car l'interface WebDav semble ne pas fonctionner.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par courriel ne fonctionneront pas non plus. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
"Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur",
"Shared" : "Partagé",
"Shared with {recipients}" : "Partagé avec {recipients}",
@@ -114,7 +115,7 @@
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
- "The update was unsuccessful." : "La mise à jour a échoué.",
+ "The update was unsuccessful. " : "La mise à jour a échoué.",
"The update was successful. Redirecting you to ownCloud now." : "La mise à jour a réussi. Vous êtes maintenant redirigé(e) vers ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.",
"Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.",
diff --git a/core/l10n/gl.js b/core/l10n/gl.js
index b7a43addec9..7908660943b 100644
--- a/core/l10n/gl.js
+++ b/core/l10n/gl.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Contrasinal forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web aínda non está configurado axeidamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicacións de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.",
"Error occurred while checking server setup" : "Aconteceu un erro mentras se comprobaba a configuración do servidor",
"Shared" : "Compartido",
"Shared with {recipients}" : "Compartido con {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"],
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.",
"Please reload the page." : "Volva cargar a páxina.",
- "The update was unsuccessful." : "A actualización foi satisfactoria.",
"The update was successful. Redirecting you to ownCloud now." : "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.",
"Couldn't reset password because the token is invalid" : "No, foi posíbel restabelecer o contrasinal, a marca non é correcta",
"Couldn't send reset email. Please make sure your username is correct." : "Non foi posíbel enviar o coreo do restablecemento. Asegúrese de que o nome de usuario é o correcto.",
diff --git a/core/l10n/gl.json b/core/l10n/gl.json
index 82157285cd3..66b5b726bc2 100644
--- a/core/l10n/gl.json
+++ b/core/l10n/gl.json
@@ -62,6 +62,7 @@
"Strong password" : "Contrasinal forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web aínda non está configurado axeidamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicacións de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.",
"Error occurred while checking server setup" : "Aconteceu un erro mentras se comprobaba a configuración do servidor",
"Shared" : "Compartido",
"Shared with {recipients}" : "Compartido con {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"],
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.",
"Please reload the page." : "Volva cargar a páxina.",
- "The update was unsuccessful." : "A actualización foi satisfactoria.",
"The update was successful. Redirecting you to ownCloud now." : "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.",
"Couldn't reset password because the token is invalid" : "No, foi posíbel restabelecer o contrasinal, a marca non é correcta",
"Couldn't send reset email. Please make sure your username is correct." : "Non foi posíbel enviar o coreo do restablecemento. Asegúrese de que o nome de usuario é o correcto.",
diff --git a/core/l10n/hr.js b/core/l10n/hr.js
index 449c9b248a8..c18e6580127 100644
--- a/core/l10n/hr.js
+++ b/core/l10n/hr.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Lozinka snažna",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Vaš web poslužitelj još nije propisno postavljen da bi omogućio sinkronizaciju datoteka jer izgleda da jesučelje WebDAV neispravno.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ovaj poslužitelj nema nikakvu radnu vezu s internetom. To znači da ne rade neke od njegovihfunkcija kao što su spajanje na vanjsku memoriju, notifikacije o ažuriranju ili instalacijiaplikacija treće strane. Također, možda je onemogućen daljinski pristup datotekama i slanjenotifikacijske e-pošte. Savjetujemo vam da, ako želite da sve njegove funkcije rade,omogućite vezuovog poslužitelja s internetom.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vašem podatkovnom direktoriju i vašim datotekama pristup je vjerojatno moguć s interneta.Datoteka .htaccess ne radi. Toplo vam preporučujemo da svoj web poslužitelj konfigurirate tako daje pristup podatkovnom direktoriju nemoguć ili pak podatkovni direktorij premjestite izvan korijena dokumentaweb poslužitelja.",
"Shared" : "Resurs podijeljen",
"Shared with {recipients}" : "Resurs podijeljen s {recipients}",
"Share" : "Podijelite",
@@ -110,7 +111,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Uređivanje {productName} u verziiju {version}, to može potrajati neko vrijeme.",
"Please reload the page." : "Molimo, ponovno učitajte stranicu",
- "The update was unsuccessful." : "Ažuriranje nije uspjelo",
"The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Upravo ste preusmjeravani na ownCloud.",
"Couldn't reset password because the token is invalid" : "Resetiranje lozinke nije moguće jer je token neispravan.",
"Couldn't send reset email. Please make sure your username is correct." : "Resetiranu e-poštu nije moguće poslati.Molimo provjerite ispravnost svoga korisničkog imena.",
diff --git a/core/l10n/hr.json b/core/l10n/hr.json
index 21141abc30e..af97b434ee9 100644
--- a/core/l10n/hr.json
+++ b/core/l10n/hr.json
@@ -62,6 +62,7 @@
"Strong password" : "Lozinka snažna",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Vaš web poslužitelj još nije propisno postavljen da bi omogućio sinkronizaciju datoteka jer izgleda da jesučelje WebDAV neispravno.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ovaj poslužitelj nema nikakvu radnu vezu s internetom. To znači da ne rade neke od njegovihfunkcija kao što su spajanje na vanjsku memoriju, notifikacije o ažuriranju ili instalacijiaplikacija treće strane. Također, možda je onemogućen daljinski pristup datotekama i slanjenotifikacijske e-pošte. Savjetujemo vam da, ako želite da sve njegove funkcije rade,omogućite vezuovog poslužitelja s internetom.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vašem podatkovnom direktoriju i vašim datotekama pristup je vjerojatno moguć s interneta.Datoteka .htaccess ne radi. Toplo vam preporučujemo da svoj web poslužitelj konfigurirate tako daje pristup podatkovnom direktoriju nemoguć ili pak podatkovni direktorij premjestite izvan korijena dokumentaweb poslužitelja.",
"Shared" : "Resurs podijeljen",
"Shared with {recipients}" : "Resurs podijeljen s {recipients}",
"Share" : "Podijelite",
@@ -108,7 +109,6 @@
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Uređivanje {productName} u verziiju {version}, to može potrajati neko vrijeme.",
"Please reload the page." : "Molimo, ponovno učitajte stranicu",
- "The update was unsuccessful." : "Ažuriranje nije uspjelo",
"The update was successful. Redirecting you to ownCloud now." : "Ažuriranje je uspjelo. Upravo ste preusmjeravani na ownCloud.",
"Couldn't reset password because the token is invalid" : "Resetiranje lozinke nije moguće jer je token neispravan.",
"Couldn't send reset email. Please make sure your username is correct." : "Resetiranu e-poštu nije moguće poslati.Molimo provjerite ispravnost svoga korisničkog imena.",
diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js
index c19ecc457df..85c5fb81204 100644
--- a/core/l10n/hu_HU.js
+++ b/core/l10n/hu_HU.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Erős jelszó",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "A kiszolgálónak nem működik az internetkapcsolata. Ez azt jelenti, hogy bizonyos funkciók nem fognak működni, mint pl. külső tárolók becsatolása, automatikus frissítési értesítések vagy más fejlesztők /3rd party/ által írt alkalmazások telepítése. Az állományok távolról történő elérése valamint e-mail értesítések küldése szintén lehet, hogy nem fog működni. Javasoljuk, hogy engedélyezze a kiszolgáló internetelérését, ha az összes funkciót szeretné használni.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon erősen ajánlott, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár ne legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre.",
"Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben",
"Shared" : "Megosztott",
"Shared with {recipients}" : "Megosztva ővelük: {recipients}",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : " {productName} frissítése zajlik erre a verzióra: {version}. Ez eltarthat egy darabig.",
"Please reload the page." : "Kérjük frissítse az oldalt!",
- "The update was unsuccessful." : "A frissítés nem sikerült.",
"The update was successful. Redirecting you to ownCloud now." : "A frissítés sikeres volt. Visszairányítjuk az ownCloud szolgáltatáshoz.",
"Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.",
"Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérjük, lépjen kapcsolatba a rendszergazdával. ",
diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json
index fd4a2e66680..995facb5cda 100644
--- a/core/l10n/hu_HU.json
+++ b/core/l10n/hu_HU.json
@@ -62,6 +62,7 @@
"Strong password" : "Erős jelszó",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "A kiszolgálónak nem működik az internetkapcsolata. Ez azt jelenti, hogy bizonyos funkciók nem fognak működni, mint pl. külső tárolók becsatolása, automatikus frissítési értesítések vagy más fejlesztők /3rd party/ által írt alkalmazások telepítése. Az állományok távolról történő elérése valamint e-mail értesítések küldése szintén lehet, hogy nem fog működni. Javasoljuk, hogy engedélyezze a kiszolgáló internetelérését, ha az összes funkciót szeretné használni.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon erősen ajánlott, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár ne legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre.",
"Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben",
"Shared" : "Megosztott",
"Shared with {recipients}" : "Megosztva ővelük: {recipients}",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : " {productName} frissítése zajlik erre a verzióra: {version}. Ez eltarthat egy darabig.",
"Please reload the page." : "Kérjük frissítse az oldalt!",
- "The update was unsuccessful." : "A frissítés nem sikerült.",
"The update was successful. Redirecting you to ownCloud now." : "A frissítés sikeres volt. Visszairányítjuk az ownCloud szolgáltatáshoz.",
"Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.",
"Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérjük, lépjen kapcsolatba a rendszergazdával. ",
diff --git a/core/l10n/ia.js b/core/l10n/ia.js
index 791e6910b37..2f1f6fcff36 100644
--- a/core/l10n/ia.js
+++ b/core/l10n/ia.js
@@ -98,7 +98,6 @@ OC.L10N.register(
"Edit tags" : "Modifica etiquettas",
"_download %n file_::_download %n files_" : ["",""],
"Please reload the page." : "Pro favor recarga le pagina.",
- "The update was unsuccessful." : "Le actualisation esseva successose.",
"The update was successful. Redirecting you to ownCloud now." : "Le actualisation terminava con successo. On redirige nunc a tu ownCloud.",
"%s password reset" : "%s contrasigno re-fixate",
"Use the following link to reset your password: {link}" : "Usa le ligamine sequente pro re-fixar tu contrasigno: {link}",
diff --git a/core/l10n/ia.json b/core/l10n/ia.json
index 80a9b47c0ea..15757c2a281 100644
--- a/core/l10n/ia.json
+++ b/core/l10n/ia.json
@@ -96,7 +96,6 @@
"Edit tags" : "Modifica etiquettas",
"_download %n file_::_download %n files_" : ["",""],
"Please reload the page." : "Pro favor recarga le pagina.",
- "The update was unsuccessful." : "Le actualisation esseva successose.",
"The update was successful. Redirecting you to ownCloud now." : "Le actualisation terminava con successo. On redirige nunc a tu ownCloud.",
"%s password reset" : "%s contrasigno re-fixate",
"Use the following link to reset your password: {link}" : "Usa le ligamine sequente pro re-fixar tu contrasigno: {link}",
diff --git a/core/l10n/id.js b/core/l10n/id.js
index 47566bb627b..f2331a33c2f 100644
--- a/core/l10n/id.js
+++ b/core/l10n/id.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Sandi kuat",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web server Anda belum dikonfigurasikan dengan baik untuk mengizinkan sinkronisasi berkas karena tampaknya antarmuka WebDAV rusak.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server ini tidak memiliki koneksi internet. Hal ini berarti bahwa beberapa fitur seperti mengaitkan penyimpanan eksternal, pemberitahuan tentang pembaruan atau instalasi aplikasi pihak ke-3 tidak akan bisa. Mengakses berkas dari remote dan mengirim email notifikasi juga tidak akan bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda menginginkan semua fitur.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Direktori data dan berkas Anda mungkin dapat diakses dari internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan untuk mengkonfigurasi server web Anda agar direktori data tidak lagi dapat diakses atau Anda dapat memindahkan direktori data di luar dokumen root webserver.",
"Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server",
"Shared" : "Dibagikan",
"Shared with {recipients}" : "Dibagikan dengan {recipients}",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "Memperbarui {productName} ke versi {version}, ini memerlukan waktu.",
"Please reload the page." : "Silakan muat ulang halaman.",
- "The update was unsuccessful." : "Pembaruan tidak berhasil",
"The update was successful. Redirecting you to ownCloud now." : "Pembaruan sukses. Anda akan diarahkan ulang ke ownCloud.",
"Couldn't reset password because the token is invalid" : "Tidak dapat menyetel ulang sandi karena token tidak sah",
"Couldn't send reset email. Please make sure your username is correct." : "Tidak dapat menyetel ulang email. Mohon pastikan nama pengguna Anda benar.",
diff --git a/core/l10n/id.json b/core/l10n/id.json
index d3327460f31..4d262d43ac3 100644
--- a/core/l10n/id.json
+++ b/core/l10n/id.json
@@ -62,6 +62,7 @@
"Strong password" : "Sandi kuat",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web server Anda belum dikonfigurasikan dengan baik untuk mengizinkan sinkronisasi berkas karena tampaknya antarmuka WebDAV rusak.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server ini tidak memiliki koneksi internet. Hal ini berarti bahwa beberapa fitur seperti mengaitkan penyimpanan eksternal, pemberitahuan tentang pembaruan atau instalasi aplikasi pihak ke-3 tidak akan bisa. Mengakses berkas dari remote dan mengirim email notifikasi juga tidak akan bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda menginginkan semua fitur.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Direktori data dan berkas Anda mungkin dapat diakses dari internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan untuk mengkonfigurasi server web Anda agar direktori data tidak lagi dapat diakses atau Anda dapat memindahkan direktori data di luar dokumen root webserver.",
"Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server",
"Shared" : "Dibagikan",
"Shared with {recipients}" : "Dibagikan dengan {recipients}",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "Memperbarui {productName} ke versi {version}, ini memerlukan waktu.",
"Please reload the page." : "Silakan muat ulang halaman.",
- "The update was unsuccessful." : "Pembaruan tidak berhasil",
"The update was successful. Redirecting you to ownCloud now." : "Pembaruan sukses. Anda akan diarahkan ulang ke ownCloud.",
"Couldn't reset password because the token is invalid" : "Tidak dapat menyetel ulang sandi karena token tidak sah",
"Couldn't send reset email. Please make sure your username is correct." : "Tidak dapat menyetel ulang email. Mohon pastikan nama pengguna Anda benar.",
diff --git a/core/l10n/it.js b/core/l10n/it.js
index ed23ad7df28..e3dae0d2937 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Password forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra no funzionare correttamente.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Questo server non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. L'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o spostare la cartella fuori dalla radice del server web.",
"Error occurred while checking server setup" : "Si è verificato un errore durante il controllo della configurazione del server",
"Shared" : "Condivisi",
"Shared with {recipients}" : "Condiviso con {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"],
"Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.",
"Please reload the page." : "Ricarica la pagina.",
- "The update was unsuccessful." : "L'aggiornamento non è riuscito.",
"The update was successful. Redirecting you to ownCloud now." : "L'aggiornamento è stato effettuato correttamente. Stai per essere reindirizzato a ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido",
"Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index 59073aafaf2..3d4e5baf817 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -62,6 +62,7 @@
"Strong password" : "Password forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra no funzionare correttamente.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Questo server non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. L'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o spostare la cartella fuori dalla radice del server web.",
"Error occurred while checking server setup" : "Si è verificato un errore durante il controllo della configurazione del server",
"Shared" : "Condivisi",
"Shared with {recipients}" : "Condiviso con {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"],
"Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.",
"Please reload the page." : "Ricarica la pagina.",
- "The update was unsuccessful." : "L'aggiornamento non è riuscito.",
"The update was successful. Redirecting you to ownCloud now." : "L'aggiornamento è stato effettuato correttamente. Stai per essere reindirizzato a ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido",
"Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.",
diff --git a/core/l10n/ja.js b/core/l10n/ja.js
index f6a7aa1f846..ad85eb71753 100644
--- a/core/l10n/ja.js
+++ b/core/l10n/ja.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "強いパスワード",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "WebDAVインターフェースに問題があると思われるため、Webサーバーはまだファイルの同期を許可するよう適切に設定されていません。",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続していません。この場合、外部ストレージのマウント、更新の通知やサードパーティアプリといったいくつかの機能が使えません。また、リモート接続でのファイルアクセス、通知メールの送信と言った機能も利用できないかもしれません。すべての機能を利用したい場合は、このサーバーがインターネット接続できるようにすることをお勧めします。",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリにアクセスできないようWebサーバーを設定するか、データディレクトリをWebサーバーのドキュメントルートから移動するよう強く提案します。",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"Shared" : "共有中",
"Shared with {recipients}" : "{recipients} と共有",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["%n個のファイルをダウンロード"],
"Updating {productName} to version {version}, this may take a while." : "{productName} を バージョン {version} に更新しています。しばらくお待ちください。",
"Please reload the page." : "ページをリロードしてください。",
- "The update was unsuccessful." : "アップデートに失敗しました。",
"The update was successful. Redirecting you to ownCloud now." : "アップデートに成功しました。今すぐownCloudにリダイレクトします。",
"Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした",
"Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。",
diff --git a/core/l10n/ja.json b/core/l10n/ja.json
index c5f1ba49368..bd89e48f86b 100644
--- a/core/l10n/ja.json
+++ b/core/l10n/ja.json
@@ -62,6 +62,7 @@
"Strong password" : "強いパスワード",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "WebDAVインターフェースに問題があると思われるため、Webサーバーはまだファイルの同期を許可するよう適切に設定されていません。",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続していません。この場合、外部ストレージのマウント、更新の通知やサードパーティアプリといったいくつかの機能が使えません。また、リモート接続でのファイルアクセス、通知メールの送信と言った機能も利用できないかもしれません。すべての機能を利用したい場合は、このサーバーがインターネット接続できるようにすることをお勧めします。",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリにアクセスできないようWebサーバーを設定するか、データディレクトリをWebサーバーのドキュメントルートから移動するよう強く提案します。",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"Shared" : "共有中",
"Shared with {recipients}" : "{recipients} と共有",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["%n個のファイルをダウンロード"],
"Updating {productName} to version {version}, this may take a while." : "{productName} を バージョン {version} に更新しています。しばらくお待ちください。",
"Please reload the page." : "ページをリロードしてください。",
- "The update was unsuccessful." : "アップデートに失敗しました。",
"The update was successful. Redirecting you to ownCloud now." : "アップデートに成功しました。今すぐownCloudにリダイレクトします。",
"Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした",
"Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。",
diff --git a/core/l10n/ko.js b/core/l10n/ko.js
index 91ed8a0fde6..09f35cf90bd 100644
--- a/core/l10n/ko.js
+++ b/core/l10n/ko.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Strong password" : "강력한 암호",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "WebDAV 인터페이스가 제대로 작동하지 않습니다. 웹 서버에서 파일 동기화를 사용할 수 있도록 설정이 제대로 되지 않은 것 같습니다.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "서버에서 인터넷에 연결할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 일부 기능을 사용할 수 없습니다. 외부에서 파일에 접근하거나 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "데이터 디렉터리와 파일을 인터넷에서 접근할 수도 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 웹 서버 문서 경로 외부로 데이터 디렉터리를 옮기십시오.",
"Shared" : "공유됨",
"Share" : "공유",
"Error" : "오류",
diff --git a/core/l10n/ko.json b/core/l10n/ko.json
index 769bc98315b..a988feab61a 100644
--- a/core/l10n/ko.json
+++ b/core/l10n/ko.json
@@ -55,6 +55,7 @@
"Strong password" : "강력한 암호",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "WebDAV 인터페이스가 제대로 작동하지 않습니다. 웹 서버에서 파일 동기화를 사용할 수 있도록 설정이 제대로 되지 않은 것 같습니다.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "서버에서 인터넷에 연결할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 일부 기능을 사용할 수 없습니다. 외부에서 파일에 접근하거나 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "데이터 디렉터리와 파일을 인터넷에서 접근할 수도 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 웹 서버 문서 경로 외부로 데이터 디렉터리를 옮기십시오.",
"Shared" : "공유됨",
"Share" : "공유",
"Error" : "오류",
diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js
index 5f7f1e3e4e1..ce20c80a63a 100644
--- a/core/l10n/lt_LT.js
+++ b/core/l10n/lt_LT.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Error loading file exists template" : "Klaida įkeliant esančių failų ruošinį",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Jūsų serveris nėra tvarkingai nustatytas leisti failų sinchronizaciją, nes WebDAV sąsaja panašu, kad yra sugadinta.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Šis serveris neturi veikiančio ryšio. Tai reiškia, kas kai kurios funkcijos kaip išorinės saugyklos prijungimas, perspėjimai apie atnaujinimus ar trečių šalių programų įdiegimas neveikia. Failų pasiekimas iš kitur ir pranešimų siuntimas el. paštu gali taip pat neveikti. Rekomenduojame įjungti interneto ryšį šiame serveryje, jei norite naudoti visas funkcijas.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsų duomenų katalogas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess neveikia. Mes labai rekomenduojame sukonfigūruoti serverį taip, kad katalogas nebūtų daugiau pasiekiamas, arba iškelkite duomenis kitur iš webserverio šakninio aplanko.",
"Shared" : "Dalinamasi",
"Share" : "Dalintis",
"Error" : "Klaida",
diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json
index 781373ec76e..e544330d667 100644
--- a/core/l10n/lt_LT.json
+++ b/core/l10n/lt_LT.json
@@ -46,6 +46,7 @@
"Error loading file exists template" : "Klaida įkeliant esančių failų ruošinį",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Jūsų serveris nėra tvarkingai nustatytas leisti failų sinchronizaciją, nes WebDAV sąsaja panašu, kad yra sugadinta.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Šis serveris neturi veikiančio ryšio. Tai reiškia, kas kai kurios funkcijos kaip išorinės saugyklos prijungimas, perspėjimai apie atnaujinimus ar trečių šalių programų įdiegimas neveikia. Failų pasiekimas iš kitur ir pranešimų siuntimas el. paštu gali taip pat neveikti. Rekomenduojame įjungti interneto ryšį šiame serveryje, jei norite naudoti visas funkcijas.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsų duomenų katalogas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess neveikia. Mes labai rekomenduojame sukonfigūruoti serverį taip, kad katalogas nebūtų daugiau pasiekiamas, arba iškelkite duomenis kitur iš webserverio šakninio aplanko.",
"Shared" : "Dalinamasi",
"Share" : "Dalintis",
"Error" : "Klaida",
diff --git a/core/l10n/lv.js b/core/l10n/lv.js
index e71b24a060e..5a89b2dadc4 100644
--- a/core/l10n/lv.js
+++ b/core/l10n/lv.js
@@ -31,6 +31,7 @@ OC.L10N.register(
"Cancel" : "Atcelt",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Jūsu serveris vēl nav pareizi iestatīts, lai ļautu sinhronizēt datnes, jo izskatās, ka WebDAV saskarne ir salauzta.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Šim serverim nav savienojums ar internetu. Tas nozīmē ka nebūs tādas iespējas kā ārējo datu nesēju montēšana, paziņojumi par atjauninājumiem vai citu izstrādātāju programmu uzstādīšana. Attālināta failu piekļuve vai paziņojumu epastu sūtīšana iespējams arī nedarbosies. Ir rekomendēts iespējot interneta savienojumu lai gūtu iespēju izmantotu visus risinājumus.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsu datu direktorija un faili visticamāk ir pieejami no interneta. .htaccess fails nedarbojas. Ir rekomendēts konfigurēt serveri tā lai jūsu datu direktorija nav lasāma vai pārvietot to ārpus tīmekļa servera dokumentu mapes.",
"Shared" : "Kopīgs",
"Share" : "Dalīties",
"Error" : "Kļūda",
diff --git a/core/l10n/lv.json b/core/l10n/lv.json
index 684c659d844..9aad18ed5ae 100644
--- a/core/l10n/lv.json
+++ b/core/l10n/lv.json
@@ -29,6 +29,7 @@
"Cancel" : "Atcelt",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Jūsu serveris vēl nav pareizi iestatīts, lai ļautu sinhronizēt datnes, jo izskatās, ka WebDAV saskarne ir salauzta.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Šim serverim nav savienojums ar internetu. Tas nozīmē ka nebūs tādas iespējas kā ārējo datu nesēju montēšana, paziņojumi par atjauninājumiem vai citu izstrādātāju programmu uzstādīšana. Attālināta failu piekļuve vai paziņojumu epastu sūtīšana iespējams arī nedarbosies. Ir rekomendēts iespējot interneta savienojumu lai gūtu iespēju izmantotu visus risinājumus.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsu datu direktorija un faili visticamāk ir pieejami no interneta. .htaccess fails nedarbojas. Ir rekomendēts konfigurēt serveri tā lai jūsu datu direktorija nav lasāma vai pārvietot to ārpus tīmekļa servera dokumentu mapes.",
"Shared" : "Kopīgs",
"Share" : "Dalīties",
"Error" : "Kļūda",
diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js
index 5bb81e3f7a1..86cd65df07f 100644
--- a/core/l10n/nb_NO.js
+++ b/core/l10n/nb_NO.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Sterkt passord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din nettserver er ikke konfigurert korrekt for filsynkronisering. WebDAV ser ut til å ikke fungere.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne serveren har ikke en fungerende Internett-tilkobling. Dette betyr at noen av funksjonene, f.eks. å koble opp ekstern lagring, påminnelser om oppdatering eller installering av 3-parts apper ikke fungerer. Fjerntilgang til filer og utsending av påminnelser i e-post virker kanskje ikke heller. Vi anbefaler at Internett-forbindelsen for denne serveren aktiveres hvis du vil ha full funksjonalitet.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer. Vi anbefaler på det sterkeste at du konfigurerer web-serveren din slik at datamappen ikke lenger er tilgjengelig eller at du flytter datamappen ut av web-serverens dokument-rotmappe.",
"Error occurred while checking server setup" : "Feil oppstod ved sjekking av server-oppsett",
"Shared" : "Delt",
"Shared with {recipients}" : "Delt med {recipients}",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.",
"Please reload the page." : "Vennligst last siden på nytt.",
- "The update was unsuccessful." : "Oppdateringen var vellykket.",
"The update was successful. Redirecting you to ownCloud now." : "Oppdateringen var vellykket. Du omdirigeres nå til ownCloud.",
"Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi token er ugyldig.",
"Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.",
diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json
index 14c4ce0de01..041b91fb58e 100644
--- a/core/l10n/nb_NO.json
+++ b/core/l10n/nb_NO.json
@@ -62,6 +62,7 @@
"Strong password" : "Sterkt passord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din nettserver er ikke konfigurert korrekt for filsynkronisering. WebDAV ser ut til å ikke fungere.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne serveren har ikke en fungerende Internett-tilkobling. Dette betyr at noen av funksjonene, f.eks. å koble opp ekstern lagring, påminnelser om oppdatering eller installering av 3-parts apper ikke fungerer. Fjerntilgang til filer og utsending av påminnelser i e-post virker kanskje ikke heller. Vi anbefaler at Internett-forbindelsen for denne serveren aktiveres hvis du vil ha full funksjonalitet.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer. Vi anbefaler på det sterkeste at du konfigurerer web-serveren din slik at datamappen ikke lenger er tilgjengelig eller at du flytter datamappen ut av web-serverens dokument-rotmappe.",
"Error occurred while checking server setup" : "Feil oppstod ved sjekking av server-oppsett",
"Shared" : "Delt",
"Shared with {recipients}" : "Delt med {recipients}",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.",
"Please reload the page." : "Vennligst last siden på nytt.",
- "The update was unsuccessful." : "Oppdateringen var vellykket.",
"The update was successful. Redirecting you to ownCloud now." : "Oppdateringen var vellykket. Du omdirigeres nå til ownCloud.",
"Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi token er ugyldig.",
"Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index a3def91c894..c44ef532e6c 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fout bij laden bestandenselecteur sjabloon: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Fout bij laden berichtensjabloon: {error}",
+ "read-only" : "Alleen lezen",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} bestandsconflict","{count} bestandsconflicten"],
"One file conflict" : "Een bestandsconflict",
"New Files" : "Nieuwe bestanden",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Sterk wachtwoord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Uw webserver is nog niet goed ingesteld voor bestandssynchronisatie omdat de WebDAV interface verbroken lijkt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Uw data folder en uw bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om uw webserver zodanig te configureren, dat de datamap niet bereikbaar is vanaf het internet of om uw datamap te verplaatsen naar een locatie buiten de document root van de webserver.",
"Error occurred while checking server setup" : "Een fout trad op bij checken serverconfiguratie",
"Shared" : "Gedeeld",
"Shared with {recipients}" : "Gedeeld met {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"],
"Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.",
"Please reload the page." : "Herlaad deze pagina.",
- "The update was unsuccessful." : "De update is niet geslaagd.",
+ "The update was unsuccessful. " : "De update is niet geslaagd.",
"The update was successful. Redirecting you to ownCloud now." : "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.",
@@ -128,6 +130,7 @@ OC.L10N.register(
"Reset password" : "Reset wachtwoord",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wordt niet ondersteund en %s zal niet goed werken op dit platform. Gebruik het op uw eigen risico!",
"For the best results, please consider using a GNU/Linux server instead." : "Voor het beste resultaat adviseren wij het gebruik van een GNU/Linux server.",
+ "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.",
"Personal" : "Persoonlijk",
"Users" : "Gebruikers",
"Apps" : "Apps",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index 6a5e2dccab3..895daeeb96e 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fout bij laden bestandenselecteur sjabloon: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Fout bij laden berichtensjabloon: {error}",
+ "read-only" : "Alleen lezen",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} bestandsconflict","{count} bestandsconflicten"],
"One file conflict" : "Een bestandsconflict",
"New Files" : "Nieuwe bestanden",
@@ -62,6 +63,7 @@
"Strong password" : "Sterk wachtwoord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Uw webserver is nog niet goed ingesteld voor bestandssynchronisatie omdat de WebDAV interface verbroken lijkt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Uw data folder en uw bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om uw webserver zodanig te configureren, dat de datamap niet bereikbaar is vanaf het internet of om uw datamap te verplaatsen naar een locatie buiten de document root van de webserver.",
"Error occurred while checking server setup" : "Een fout trad op bij checken serverconfiguratie",
"Shared" : "Gedeeld",
"Shared with {recipients}" : "Gedeeld met {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"],
"Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.",
"Please reload the page." : "Herlaad deze pagina.",
- "The update was unsuccessful." : "De update is niet geslaagd.",
+ "The update was unsuccessful. " : "De update is niet geslaagd.",
"The update was successful. Redirecting you to ownCloud now." : "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.",
@@ -126,6 +128,7 @@
"Reset password" : "Reset wachtwoord",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wordt niet ondersteund en %s zal niet goed werken op dit platform. Gebruik het op uw eigen risico!",
"For the best results, please consider using a GNU/Linux server instead." : "Voor het beste resultaat adviseren wij het gebruik van een GNU/Linux server.",
+ "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.",
"Personal" : "Persoonlijk",
"Users" : "Gebruikers",
"Apps" : "Apps",
diff --git a/core/l10n/nn_NO.js b/core/l10n/nn_NO.js
index 2dccb25d657..6a2139749b9 100644
--- a/core/l10n/nn_NO.js
+++ b/core/l10n/nn_NO.js
@@ -51,6 +51,7 @@ OC.L10N.register(
"Weak password" : "Svakt passord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne tenaren har ikkje ei fungerande nettilkopling. Dette vil seia at visse funksjonar, som montering av ekstern lagring, meldingar om oppdateringar eller installering av tredjepartsprogram, ikkje vil fungera. Det kan òg henda at du ikkje får tilgang til filene dine utanfrå, eller ikkje får sendt varslingsepostar. Me rår deg til å skru på nettilkoplinga for denne tenaren viss du ønskjer desse funksjonane.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappa og filene dine er sannsynlegvis leselege frå nettet. Fila .htaccess fungerer ikkje. Me rår deg sterkt til å konfigurera vevtenaren din sånn at datamappa di ikkje lenger er tilgjengeleg; alternativt kan du flytta datamappa ut av dokumentrot til vevtenaren.",
"Shared" : "Delt",
"Share" : "Del",
"Error" : "Feil",
diff --git a/core/l10n/nn_NO.json b/core/l10n/nn_NO.json
index 25151b7f68e..2849ee308b8 100644
--- a/core/l10n/nn_NO.json
+++ b/core/l10n/nn_NO.json
@@ -49,6 +49,7 @@
"Weak password" : "Svakt passord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Denne tenaren har ikkje ei fungerande nettilkopling. Dette vil seia at visse funksjonar, som montering av ekstern lagring, meldingar om oppdateringar eller installering av tredjepartsprogram, ikkje vil fungera. Det kan òg henda at du ikkje får tilgang til filene dine utanfrå, eller ikkje får sendt varslingsepostar. Me rår deg til å skru på nettilkoplinga for denne tenaren viss du ønskjer desse funksjonane.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappa og filene dine er sannsynlegvis leselege frå nettet. Fila .htaccess fungerer ikkje. Me rår deg sterkt til å konfigurera vevtenaren din sånn at datamappa di ikkje lenger er tilgjengeleg; alternativt kan du flytta datamappa ut av dokumentrot til vevtenaren.",
"Shared" : "Delt",
"Share" : "Del",
"Error" : "Feil",
diff --git a/core/l10n/pl.js b/core/l10n/pl.js
index 35d7faeabf4..beec7118f14 100644
--- a/core/l10n/pl.js
+++ b/core/l10n/pl.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Mocne hasło",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Serwer internetowy nie jest jeszcze poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ten serwer OwnCloud nie ma połączenia z Internetem. Oznacza to, że niektóre z funkcji, takich jak montowanie zewnętrznych zasobów, powiadomienia o aktualizacji lub aplikacje firm 3-trzecich nie działają. Dostęp do plików z zewnątrz i wysyłanie powiadomień e-mail może również nie działać. Sugerujemy podłączenie tego serwera do internetu, jeśli chcesz mieć wszystkie funkcje.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Twój katalog danych i pliki są prawdopodobnie dostępne z Internetu. Plik .htaccess, który dostarcza ownCloud nie działa. Sugerujemy, aby skonfigurować serwer WWW w taki sposób, aby katalog danych nie był dostępny lub przenieść katalog danych poza główny katalog serwera WWW.",
"Error occurred while checking server setup" : "Pojawił się błąd podczas sprawdzania ustawień serwera",
"Shared" : "Udostępniono",
"Shared with {recipients}" : "Współdzielony z {recipients}",
@@ -111,7 +112,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Aktualizuję {productName} do wersji {version}, to może chwilę potrwać.",
"Please reload the page." : "Proszę przeładować stronę",
- "The update was unsuccessful." : "Aktualizacja nie powiodła się.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.",
"Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny",
"Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.",
diff --git a/core/l10n/pl.json b/core/l10n/pl.json
index 7ee07cc66af..7f6a3e7cf97 100644
--- a/core/l10n/pl.json
+++ b/core/l10n/pl.json
@@ -62,6 +62,7 @@
"Strong password" : "Mocne hasło",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Serwer internetowy nie jest jeszcze poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Ten serwer OwnCloud nie ma połączenia z Internetem. Oznacza to, że niektóre z funkcji, takich jak montowanie zewnętrznych zasobów, powiadomienia o aktualizacji lub aplikacje firm 3-trzecich nie działają. Dostęp do plików z zewnątrz i wysyłanie powiadomień e-mail może również nie działać. Sugerujemy podłączenie tego serwera do internetu, jeśli chcesz mieć wszystkie funkcje.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Twój katalog danych i pliki są prawdopodobnie dostępne z Internetu. Plik .htaccess, który dostarcza ownCloud nie działa. Sugerujemy, aby skonfigurować serwer WWW w taki sposób, aby katalog danych nie był dostępny lub przenieść katalog danych poza główny katalog serwera WWW.",
"Error occurred while checking server setup" : "Pojawił się błąd podczas sprawdzania ustawień serwera",
"Shared" : "Udostępniono",
"Shared with {recipients}" : "Współdzielony z {recipients}",
@@ -109,7 +110,6 @@
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Aktualizuję {productName} do wersji {version}, to może chwilę potrwać.",
"Please reload the page." : "Proszę przeładować stronę",
- "The update was unsuccessful." : "Aktualizacja nie powiodła się.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.",
"Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny",
"Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index e8f95ffb885..74d0debe2fa 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Erro no seletor de carregamento modelo de arquivos: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Erro no carregamento de modelo de mensagem: {error}",
+ "read-only" : "somente-leitura",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de arquivo","{count} conflitos de arquivos"],
"One file conflict" : "Conflito em um arquivo",
"New Files" : "Novos Arquivos",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Senha forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Seu servidor web não está configurado corretamente para permitir sincronização de arquivos porque a interface WebDAV parece não estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor não tem conexão com a internet. Isso significa que algumas das características como a montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de 3ºs terceiros não funcionam. Acessar arquivos remotamente e envio de e-mails de notificação também não podem funcionar. Sugerimos permitir conexão com a internet para esse servidor, se você deseja ter todas as funcionalidades.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Seu diretório de dados e seus arquivos são, provavelmente, acessíveis a partir da internet. O arquivo htaccess. não está funcionando. Nós sugerimos fortemente que você configure o seu servidor web de uma forma que o diretório de dados não esteja mais acessível ou mova o diretório de dados para fora do raiz do servidor.",
"Error occurred while checking server setup" : "Erro ao verificar a configuração do servidor",
"Shared" : "Compartilhados",
"Shared with {recipients}" : "Compartilhado com {recipients}",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"],
"Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.",
"Please reload the page." : "Por favor recarregue a página",
- "The update was unsuccessful." : "A atualização não foi bem sucedida.",
+ "The update was unsuccessful. " : "A atualização não foi bem sucedida.",
"The update was successful. Redirecting you to ownCloud now." : "A atualização teve êxito. Você será redirecionado ao ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido",
"Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.",
@@ -128,6 +130,10 @@ OC.L10N.register(
"Reset password" : "Redefinir senha",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!",
"For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.",
"Personal" : "Pessoal",
"Users" : "Usuários",
"Apps" : "Aplicações",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index d3082d8c06d..5c3307450bd 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Erro no seletor de carregamento modelo de arquivos: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Erro no carregamento de modelo de mensagem: {error}",
+ "read-only" : "somente-leitura",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de arquivo","{count} conflitos de arquivos"],
"One file conflict" : "Conflito em um arquivo",
"New Files" : "Novos Arquivos",
@@ -62,6 +63,7 @@
"Strong password" : "Senha forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Seu servidor web não está configurado corretamente para permitir sincronização de arquivos porque a interface WebDAV parece não estar funcionando.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor não tem conexão com a internet. Isso significa que algumas das características como a montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de 3ºs terceiros não funcionam. Acessar arquivos remotamente e envio de e-mails de notificação também não podem funcionar. Sugerimos permitir conexão com a internet para esse servidor, se você deseja ter todas as funcionalidades.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Seu diretório de dados e seus arquivos são, provavelmente, acessíveis a partir da internet. O arquivo htaccess. não está funcionando. Nós sugerimos fortemente que você configure o seu servidor web de uma forma que o diretório de dados não esteja mais acessível ou mova o diretório de dados para fora do raiz do servidor.",
"Error occurred while checking server setup" : "Erro ao verificar a configuração do servidor",
"Shared" : "Compartilhados",
"Shared with {recipients}" : "Compartilhado com {recipients}",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"],
"Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.",
"Please reload the page." : "Por favor recarregue a página",
- "The update was unsuccessful." : "A atualização não foi bem sucedida.",
+ "The update was unsuccessful. " : "A atualização não foi bem sucedida.",
"The update was successful. Redirecting you to ownCloud now." : "A atualização teve êxito. Você será redirecionado ao ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido",
"Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.",
@@ -126,6 +128,10 @@
"Reset password" : "Redefinir senha",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!",
"For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.",
+ "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.",
+ "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.",
"Personal" : "Pessoal",
"Users" : "Usuários",
"Apps" : "Aplicações",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index 09e688a0eb8..b755f738a53 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -44,9 +44,10 @@ OC.L10N.register(
"Yes" : "Sim",
"Choose" : "Escolher",
"Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo do selecionador de ficheiro: {error}",
- "Ok" : "Ok",
+ "Ok" : "CONFIRMAR",
"Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de ficheiro","{count} conflitos de ficheiro"],
+ "read-only" : "só-de-leitura",
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"],
"One file conflict" : "Um conflito no ficheiro",
"New Files" : "Ficheiros Novos",
"Already existing files" : "Ficheiros já existentes",
@@ -54,8 +55,8 @@ OC.L10N.register(
"If you select both versions, the copied file will have a number added to its name." : "Se escolher ambas as versões, o ficheiro copiado irá ter um número adicionado ao seu nome.",
"Cancel" : "Cancelar",
"Continue" : "Continuar",
- "(all selected)" : "(todos seleccionados)",
- "({count} selected)" : "({count} seleccionados)",
+ "(all selected)" : "(todos selecionados)",
+ "({count} selected)" : "({count} selecionados)",
"Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente",
"Very weak password" : "Palavra-passe muito fraca",
"Weak password" : "Palavra-passe fraca",
@@ -64,10 +65,11 @@ OC.L10N.register(
"Strong password" : "Palavra-passe forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor ownCloud não tem uma ligação de internet a funcionar. Isto significa que algumas funcionalidades como o acesso a locais externos (dropbox, gdrive, etc), notificações sobre actualizções, ou a instalação de aplicações não irá funcionar. Sugerimos que active uma ligação à internet se pretender obter todas as funcionalidades do ownCloud.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "A sua pasta dos dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar corretamente. Nós sugerimos fortemente que configure o seu servidor da Web de maneira a que a pasta dos dados deixe de ficar acessível, ou mova-a para fora da diretoria raiz dos documentos do servidor da Web.",
"Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor",
"Shared" : "Partilhado",
"Shared with {recipients}" : "Partilhado com {recipients}",
- "Share" : "Partilhar",
+ "Share" : "Compartilhar",
"Error" : "Erro",
"Error while sharing" : "Erro ao partilhar",
"Error while unsharing" : "Erro ao deixar de partilhar",
@@ -80,9 +82,9 @@ OC.L10N.register(
"Password protect" : "Proteger com Palavra-passe",
"Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública",
"Allow Public Upload" : "Permitir Envios Públicos",
- "Email link to person" : "Enviar o link por e-mail",
+ "Email link to person" : "Enviar a hiperligação para a pessoa",
"Send" : "Enviar",
- "Set expiration date" : "Especificar data de expiração",
+ "Set expiration date" : "Definir a data de expiração",
"Expiration date" : "Data de expiração",
"Adding user..." : "A adicionar o utilizador ...",
"group" : "grupo",
@@ -100,14 +102,14 @@ OC.L10N.register(
"Error unsetting expiration date" : "Erro ao retirar a data de expiração",
"Error setting expiration date" : "Erro ao aplicar a data de expiração",
"Sending ..." : "A Enviar...",
- "Email sent" : "E-mail enviado",
+ "Email sent" : "Mensagem enviada",
"Warning" : "Aviso",
- "The object type is not specified." : "O tipo de objecto não foi especificado",
+ "The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
- "Delete" : "Eliminar",
+ "Delete" : "Apagar",
"Add" : "Adicionar",
"Edit tags" : "Editar etiquetas",
- "Error loading dialog template: {error}" : "Erro ao carregar modelo de diálogo: {error}",
+ "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}",
"No tags selected for deletion." : "Não foram escolhidas etiquetas para apagar.",
"unknown text" : "texto desconhecido",
"Hello world!" : "Olá mundo!",
@@ -115,8 +117,8 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}",
"_download %n file_::_download %n files_" : ["transferir %n ficheiro","transferir %n ficheiros"],
"Updating {productName} to version {version}, this may take a while." : "A atualizar {productName} para a versão {version}, isto poderá demorar algum tempo.",
- "Please reload the page." : "Por favor recarregue a página.",
- "The update was unsuccessful." : "Não foi possível atualizar.",
+ "Please reload the page." : "Por favor, recarregue a página.",
+ "The update was unsuccessful. " : "Não foi possível atualizar.",
"The update was successful. Redirecting you to ownCloud now." : "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida",
"Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.",
@@ -128,14 +130,16 @@ OC.L10N.register(
"Reset password" : "Repor palavra-passe",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Esta plataforma não suporta o sistema operativo Mac OS X e o %s poderá não funcionar correctamente. Utilize por sua conta e risco.",
"For the best results, please consider using a GNU/Linux server instead." : "Para um melhor resultado, utilize antes o servidor GNU/Linux.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a definição open_basedir no seu php.ini ou mude para 64bit PHP.",
+ "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie o seu servidor da Web.",
"Personal" : "Pessoal",
"Users" : "Utilizadores",
- "Apps" : "Aplicações",
- "Admin" : "Admin",
+ "Apps" : "Apps",
+ "Admin" : "Administração",
"Help" : "Ajuda",
"Error loading tags" : "Erro ao carregar etiquetas",
"Tag already exists" : "A etiqueta já existe",
- "Error deleting tag(s)" : "Erro ao apagar etiqueta(s)",
+ "Error deleting tag(s)" : "Ocorreu um erro ao apagar etiqueta(s)",
"Error tagging" : "Erro ao etiquetar",
"Error untagging" : "Erro ao desetiquetar",
"Error favoriting" : "Erro a definir como favorito",
@@ -143,9 +147,9 @@ OC.L10N.register(
"Access forbidden" : "Acesso interdito",
"File not found" : "Ficheiro não encontrado",
"The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.",
- "You can click here to return to %s." : "Pode clicar aqui para retornar para %s.",
+ "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
- "The share will expire on %s." : "Esta partilha vai expirar em %s.",
+ "The share will expire on %s." : "Esta partilha irá expirar em %s.",
"Cheers!" : "Parabéns!",
"Internal Server Error" : "Erro Interno do Servidor",
"The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.",
@@ -153,12 +157,12 @@ OC.L10N.register(
"More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.",
"Technical details" : "Detalhes técnicos",
"Remote Address: %s" : "Endereço remoto: %s",
- "Request ID: %s" : "ID do Pedido: %s",
+ "Request ID: %s" : "Id. do Pedido: %s",
"Code: %s" : "Código: %s",
"Message: %s" : "Mensagem: %s",
"File: %s" : "Ficheiro: %s",
"Line: %s" : "Linha: %s",
- "Trace" : "Trace",
+ "Trace" : "Rasto",
"Security Warning" : "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" : "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." : "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
@@ -170,18 +174,18 @@ OC.L10N.register(
"Storage & database" : "Armazenamento e base de dados",
"Data folder" : "Pasta de dados",
"Configure the database" : "Configure a base de dados",
- "Only %s is available." : "Apenas %s está disponível.",
+ "Only %s is available." : "Só está disponível %s.",
"Database user" : "Utilizador da base de dados",
"Database password" : "Palavra-passe da base de dados",
"Database name" : "Nome da base de dados",
"Database tablespace" : "Tablespace da base de dados",
"Database host" : "Anfitrião da base de dados",
"SQLite will be used as database. For larger installations we recommend to change this." : "Será usado SQLite como base de dados. Para instalações maiores é recomendável a sua alteração.",
- "Finish setup" : "Acabar instalação",
+ "Finish setup" : "Terminar consiguração",
"Finishing …" : "A terminar...",
"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Esta aplicação requer JavaScript para functionar correctamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">active o JavaScript</a> e recarregue a página.",
"%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
- "Log out" : "Sair",
+ "Log out" : "Terminar sessão",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
"Please contact your administrator." : "Por favor contacte o administrador.",
"Forgot your password? Reset it!" : "Esqueceu-se da sua palavra-passe? Recupere-a!",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 8789b6e13d8..774696f6a52 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -42,9 +42,10 @@
"Yes" : "Sim",
"Choose" : "Escolher",
"Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo do selecionador de ficheiro: {error}",
- "Ok" : "Ok",
+ "Ok" : "CONFIRMAR",
"Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de ficheiro","{count} conflitos de ficheiro"],
+ "read-only" : "só-de-leitura",
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"],
"One file conflict" : "Um conflito no ficheiro",
"New Files" : "Ficheiros Novos",
"Already existing files" : "Ficheiros já existentes",
@@ -52,8 +53,8 @@
"If you select both versions, the copied file will have a number added to its name." : "Se escolher ambas as versões, o ficheiro copiado irá ter um número adicionado ao seu nome.",
"Cancel" : "Cancelar",
"Continue" : "Continuar",
- "(all selected)" : "(todos seleccionados)",
- "({count} selected)" : "({count} seleccionados)",
+ "(all selected)" : "(todos selecionados)",
+ "({count} selected)" : "({count} selecionados)",
"Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente",
"Very weak password" : "Palavra-passe muito fraca",
"Weak password" : "Palavra-passe fraca",
@@ -62,10 +63,11 @@
"Strong password" : "Palavra-passe forte",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor ownCloud não tem uma ligação de internet a funcionar. Isto significa que algumas funcionalidades como o acesso a locais externos (dropbox, gdrive, etc), notificações sobre actualizções, ou a instalação de aplicações não irá funcionar. Sugerimos que active uma ligação à internet se pretender obter todas as funcionalidades do ownCloud.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "A sua pasta dos dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar corretamente. Nós sugerimos fortemente que configure o seu servidor da Web de maneira a que a pasta dos dados deixe de ficar acessível, ou mova-a para fora da diretoria raiz dos documentos do servidor da Web.",
"Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor",
"Shared" : "Partilhado",
"Shared with {recipients}" : "Partilhado com {recipients}",
- "Share" : "Partilhar",
+ "Share" : "Compartilhar",
"Error" : "Erro",
"Error while sharing" : "Erro ao partilhar",
"Error while unsharing" : "Erro ao deixar de partilhar",
@@ -78,9 +80,9 @@
"Password protect" : "Proteger com Palavra-passe",
"Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública",
"Allow Public Upload" : "Permitir Envios Públicos",
- "Email link to person" : "Enviar o link por e-mail",
+ "Email link to person" : "Enviar a hiperligação para a pessoa",
"Send" : "Enviar",
- "Set expiration date" : "Especificar data de expiração",
+ "Set expiration date" : "Definir a data de expiração",
"Expiration date" : "Data de expiração",
"Adding user..." : "A adicionar o utilizador ...",
"group" : "grupo",
@@ -98,14 +100,14 @@
"Error unsetting expiration date" : "Erro ao retirar a data de expiração",
"Error setting expiration date" : "Erro ao aplicar a data de expiração",
"Sending ..." : "A Enviar...",
- "Email sent" : "E-mail enviado",
+ "Email sent" : "Mensagem enviada",
"Warning" : "Aviso",
- "The object type is not specified." : "O tipo de objecto não foi especificado",
+ "The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
- "Delete" : "Eliminar",
+ "Delete" : "Apagar",
"Add" : "Adicionar",
"Edit tags" : "Editar etiquetas",
- "Error loading dialog template: {error}" : "Erro ao carregar modelo de diálogo: {error}",
+ "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}",
"No tags selected for deletion." : "Não foram escolhidas etiquetas para apagar.",
"unknown text" : "texto desconhecido",
"Hello world!" : "Olá mundo!",
@@ -113,8 +115,8 @@
"Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}",
"_download %n file_::_download %n files_" : ["transferir %n ficheiro","transferir %n ficheiros"],
"Updating {productName} to version {version}, this may take a while." : "A atualizar {productName} para a versão {version}, isto poderá demorar algum tempo.",
- "Please reload the page." : "Por favor recarregue a página.",
- "The update was unsuccessful." : "Não foi possível atualizar.",
+ "Please reload the page." : "Por favor, recarregue a página.",
+ "The update was unsuccessful. " : "Não foi possível atualizar.",
"The update was successful. Redirecting you to ownCloud now." : "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida",
"Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.",
@@ -126,14 +128,16 @@
"Reset password" : "Repor palavra-passe",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Esta plataforma não suporta o sistema operativo Mac OS X e o %s poderá não funcionar correctamente. Utilize por sua conta e risco.",
"For the best results, please consider using a GNU/Linux server instead." : "Para um melhor resultado, utilize antes o servidor GNU/Linux.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a definição open_basedir no seu php.ini ou mude para 64bit PHP.",
+ "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie o seu servidor da Web.",
"Personal" : "Pessoal",
"Users" : "Utilizadores",
- "Apps" : "Aplicações",
- "Admin" : "Admin",
+ "Apps" : "Apps",
+ "Admin" : "Administração",
"Help" : "Ajuda",
"Error loading tags" : "Erro ao carregar etiquetas",
"Tag already exists" : "A etiqueta já existe",
- "Error deleting tag(s)" : "Erro ao apagar etiqueta(s)",
+ "Error deleting tag(s)" : "Ocorreu um erro ao apagar etiqueta(s)",
"Error tagging" : "Erro ao etiquetar",
"Error untagging" : "Erro ao desetiquetar",
"Error favoriting" : "Erro a definir como favorito",
@@ -141,9 +145,9 @@
"Access forbidden" : "Acesso interdito",
"File not found" : "Ficheiro não encontrado",
"The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.",
- "You can click here to return to %s." : "Pode clicar aqui para retornar para %s.",
+ "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
- "The share will expire on %s." : "Esta partilha vai expirar em %s.",
+ "The share will expire on %s." : "Esta partilha irá expirar em %s.",
"Cheers!" : "Parabéns!",
"Internal Server Error" : "Erro Interno do Servidor",
"The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.",
@@ -151,12 +155,12 @@
"More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.",
"Technical details" : "Detalhes técnicos",
"Remote Address: %s" : "Endereço remoto: %s",
- "Request ID: %s" : "ID do Pedido: %s",
+ "Request ID: %s" : "Id. do Pedido: %s",
"Code: %s" : "Código: %s",
"Message: %s" : "Mensagem: %s",
"File: %s" : "Ficheiro: %s",
"Line: %s" : "Linha: %s",
- "Trace" : "Trace",
+ "Trace" : "Rasto",
"Security Warning" : "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" : "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." : "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
@@ -168,18 +172,18 @@
"Storage & database" : "Armazenamento e base de dados",
"Data folder" : "Pasta de dados",
"Configure the database" : "Configure a base de dados",
- "Only %s is available." : "Apenas %s está disponível.",
+ "Only %s is available." : "Só está disponível %s.",
"Database user" : "Utilizador da base de dados",
"Database password" : "Palavra-passe da base de dados",
"Database name" : "Nome da base de dados",
"Database tablespace" : "Tablespace da base de dados",
"Database host" : "Anfitrião da base de dados",
"SQLite will be used as database. For larger installations we recommend to change this." : "Será usado SQLite como base de dados. Para instalações maiores é recomendável a sua alteração.",
- "Finish setup" : "Acabar instalação",
+ "Finish setup" : "Terminar consiguração",
"Finishing …" : "A terminar...",
"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Esta aplicação requer JavaScript para functionar correctamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">active o JavaScript</a> e recarregue a página.",
"%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
- "Log out" : "Sair",
+ "Log out" : "Terminar sessão",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
"Please contact your administrator." : "Por favor contacte o administrador.",
"Forgot your password? Reset it!" : "Esqueceu-se da sua palavra-passe? Recupere-a!",
diff --git a/core/l10n/ro.js b/core/l10n/ro.js
index 7970ecf18ae..3a17751778e 100644
--- a/core/l10n/ro.js
+++ b/core/l10n/ro.js
@@ -89,7 +89,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Se actualizează {productName} la versiunea {version}, poate dura câteva momente.",
"Please reload the page." : "Te rugăm să reîncarci pagina.",
- "The update was unsuccessful." : "Actualizare eșuată.",
"The update was successful. Redirecting you to ownCloud now." : "Actualizare reușită. Ești redirecționat către ownCloud.",
"%s password reset" : "%s resetare parola",
"Use the following link to reset your password: {link}" : "Folosește următorul link pentru a reseta parola: {link}",
diff --git a/core/l10n/ro.json b/core/l10n/ro.json
index 037574515eb..91cb57e450b 100644
--- a/core/l10n/ro.json
+++ b/core/l10n/ro.json
@@ -87,7 +87,6 @@
"_download %n file_::_download %n files_" : ["","",""],
"Updating {productName} to version {version}, this may take a while." : "Se actualizează {productName} la versiunea {version}, poate dura câteva momente.",
"Please reload the page." : "Te rugăm să reîncarci pagina.",
- "The update was unsuccessful." : "Actualizare eșuată.",
"The update was successful. Redirecting you to ownCloud now." : "Actualizare reușită. Ești redirecționat către ownCloud.",
"%s password reset" : "%s resetare parola",
"Use the following link to reset your password: {link}" : "Folosește următorul link pentru a reseta parola: {link}",
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 858595bab64..329cb21b957 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Устойчивый к взлому пароль",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Веб-сервер до сих пор не настроен для возможности синхронизации файлов. Похоже что проблема в неисправности интерфейса WebDAV.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Этот сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение внешних дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если Вы хотите иметь все возможности.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что папка с Вашими данными и Ваши файлы доступны из интернета. Файл .htaccess не работает. Мы настойчиво предлагаем Вам сконфигурировать вебсервер таким образом, чтобы папка с Вашими данными более не была доступна или переместите папку с данными куда-нибудь в другое место вне основной папки документов вебсервера.",
"Error occurred while checking server setup" : "Произошла ошибка при проверке настройки сервера",
"Shared" : "Общие",
"Shared with {recipients}" : "Доступ открыт {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["загрузить %n файл","загрузить %n файла","загрузить %n файлов"],
"Updating {productName} to version {version}, this may take a while." : "Обновление {productName} до версии {version}, пожалуйста, подождите.",
"Please reload the page." : "Пожалуйста, перезагрузите страницу.",
- "The update was unsuccessful." : "Обновление не удалось.",
"The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...",
"Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль потому, что ключ неправильный",
"Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, убедитесь в том, что ваше имя пользователя введено верно.",
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index 990a6e9bf9c..3f38922cd7c 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -62,6 +62,7 @@
"Strong password" : "Устойчивый к взлому пароль",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Веб-сервер до сих пор не настроен для возможности синхронизации файлов. Похоже что проблема в неисправности интерфейса WebDAV.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Этот сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение внешних дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если Вы хотите иметь все возможности.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что папка с Вашими данными и Ваши файлы доступны из интернета. Файл .htaccess не работает. Мы настойчиво предлагаем Вам сконфигурировать вебсервер таким образом, чтобы папка с Вашими данными более не была доступна или переместите папку с данными куда-нибудь в другое место вне основной папки документов вебсервера.",
"Error occurred while checking server setup" : "Произошла ошибка при проверке настройки сервера",
"Shared" : "Общие",
"Shared with {recipients}" : "Доступ открыт {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["загрузить %n файл","загрузить %n файла","загрузить %n файлов"],
"Updating {productName} to version {version}, this may take a while." : "Обновление {productName} до версии {version}, пожалуйста, подождите.",
"Please reload the page." : "Пожалуйста, перезагрузите страницу.",
- "The update was unsuccessful." : "Обновление не удалось.",
"The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...",
"Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль потому, что ключ неправильный",
"Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, убедитесь в том, что ваше имя пользователя введено верно.",
diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js
index 791863c0e48..450547ac9e7 100644
--- a/core/l10n/sk_SK.js
+++ b/core/l10n/sk_SK.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Silné heslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server nemá funkčné pripojenie k internetu. Niektoré moduly ako napr. externé úložisko, oznámenie o dostupných aktualizáciách alebo inštalácia aplikácií tretích strán nebudú fungovať. Prístup k súborom z iných miest a odosielanie oznamovacích emailov tiež nemusí fungovať. Ak chcete využívať všetky vlastnosti ownCloudu, odporúčame povoliť pripojenie k internetu tomuto serveru.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný, alebo presunúť priečinok s dátami mimo priestor sprístupňovaný webovým serverom.",
"Shared" : "Zdieľané",
"Shared with {recipients}" : "Zdieľa s {recipients}",
"Share" : "Zdieľať",
@@ -114,7 +115,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov"],
"Updating {productName} to version {version}, this may take a while." : "Aktualizujem {productName} na verziu {version}, chvíľu to môže trvať.",
"Please reload the page." : "Obnovte prosím stránku.",
- "The update was unsuccessful." : "Aktualizácia zlyhala.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizácia bola úspešná. Presmerovávam vás na prihlasovaciu stránku.",
"Couldn't reset password because the token is invalid" : "Nemožno zmeniť heslo pre neplatnosť tokenu.",
"Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.",
diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json
index 6a539ccd773..b304204d9a0 100644
--- a/core/l10n/sk_SK.json
+++ b/core/l10n/sk_SK.json
@@ -62,6 +62,7 @@
"Strong password" : "Silné heslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Server nemá funkčné pripojenie k internetu. Niektoré moduly ako napr. externé úložisko, oznámenie o dostupných aktualizáciách alebo inštalácia aplikácií tretích strán nebudú fungovať. Prístup k súborom z iných miest a odosielanie oznamovacích emailov tiež nemusí fungovať. Ak chcete využívať všetky vlastnosti ownCloudu, odporúčame povoliť pripojenie k internetu tomuto serveru.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný, alebo presunúť priečinok s dátami mimo priestor sprístupňovaný webovým serverom.",
"Shared" : "Zdieľané",
"Shared with {recipients}" : "Zdieľa s {recipients}",
"Share" : "Zdieľať",
@@ -112,7 +113,6 @@
"_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov"],
"Updating {productName} to version {version}, this may take a while." : "Aktualizujem {productName} na verziu {version}, chvíľu to môže trvať.",
"Please reload the page." : "Obnovte prosím stránku.",
- "The update was unsuccessful." : "Aktualizácia zlyhala.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizácia bola úspešná. Presmerovávam vás na prihlasovaciu stránku.",
"Couldn't reset password because the token is invalid" : "Nemožno zmeniť heslo pre neplatnosť tokenu.",
"Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.",
diff --git a/core/l10n/sl.js b/core/l10n/sl.js
index 59a9e8bd72a..d21f6f2b638 100644
--- a/core/l10n/sl.js
+++ b/core/l10n/sl.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Odlično geslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev vmesnika WebDAV okvarjena.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte prav tako verjetno ne deluje. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vaša podatkovna mapa in datoteke so najverjetneje javno dostopna preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Error occurred while checking server setup" : "Prišlo je do napake med preverjanjem nastavitev strežnika",
"Shared" : "V souporabi",
"Shared with {recipients}" : "V souporabi z {recipients}",
@@ -116,7 +117,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["prejmi %n datoteko","prejmi %n datoteki","prejmi %n datoteke","prejmi %n datotek"],
"Updating {productName} to version {version}, this may take a while." : "Poteka posodabljanje {productName} na različico {version}. Opravilo je lahko dolgotrajno.",
"Please reload the page." : "Stran je treba ponovno naložiti",
- "The update was unsuccessful." : "Posodobitev je spodletela",
+ "The update was unsuccessful. " : "Posodobitev je spodletela.",
"The update was successful. Redirecting you to ownCloud now." : "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.",
"Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.",
"Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.",
diff --git a/core/l10n/sl.json b/core/l10n/sl.json
index abea92d1325..d6b98546a43 100644
--- a/core/l10n/sl.json
+++ b/core/l10n/sl.json
@@ -62,6 +62,7 @@
"Strong password" : "Odlično geslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev vmesnika WebDAV okvarjena.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte prav tako verjetno ne deluje. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vaša podatkovna mapa in datoteke so najverjetneje javno dostopna preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Error occurred while checking server setup" : "Prišlo je do napake med preverjanjem nastavitev strežnika",
"Shared" : "V souporabi",
"Shared with {recipients}" : "V souporabi z {recipients}",
@@ -114,7 +115,7 @@
"_download %n file_::_download %n files_" : ["prejmi %n datoteko","prejmi %n datoteki","prejmi %n datoteke","prejmi %n datotek"],
"Updating {productName} to version {version}, this may take a while." : "Poteka posodabljanje {productName} na različico {version}. Opravilo je lahko dolgotrajno.",
"Please reload the page." : "Stran je treba ponovno naložiti",
- "The update was unsuccessful." : "Posodobitev je spodletela",
+ "The update was unsuccessful. " : "Posodobitev je spodletela.",
"The update was successful. Redirecting you to ownCloud now." : "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.",
"Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.",
"Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.",
diff --git a/core/l10n/sq.js b/core/l10n/sq.js
index d0692b8a63e..559c0a17132 100644
--- a/core/l10n/sq.js
+++ b/core/l10n/sq.js
@@ -116,7 +116,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["shkarko %n skedar","shkarko %n skedarë"],
"Updating {productName} to version {version}, this may take a while." : "Po përditësoj {productName} në versionin {version}, kjo mund të zgjasë pak.",
"Please reload the page." : "Ju lutem ringarkoni faqen.",
- "The update was unsuccessful." : "Përditësimi nuk rezultoi me sukses.",
"The update was successful. Redirecting you to ownCloud now." : "Azhurnimi u krye. Tani do t'ju kaloj tek ownCloud-i.",
"Couldn't reset password because the token is invalid" : "Nuk mund të rivendos fjalëkalimin sepse shenja është e pavlefshme.",
"Couldn't send reset email. Please make sure your username is correct." : "Emaili i rivendosjes nuk mund të dërgohet. Ju lutem sigurohuni që përdoruesi juaj është i saktë.",
diff --git a/core/l10n/sq.json b/core/l10n/sq.json
index 3cf8cae21d3..2c9bc9b0096 100644
--- a/core/l10n/sq.json
+++ b/core/l10n/sq.json
@@ -114,7 +114,6 @@
"_download %n file_::_download %n files_" : ["shkarko %n skedar","shkarko %n skedarë"],
"Updating {productName} to version {version}, this may take a while." : "Po përditësoj {productName} në versionin {version}, kjo mund të zgjasë pak.",
"Please reload the page." : "Ju lutem ringarkoni faqen.",
- "The update was unsuccessful." : "Përditësimi nuk rezultoi me sukses.",
"The update was successful. Redirecting you to ownCloud now." : "Azhurnimi u krye. Tani do t'ju kaloj tek ownCloud-i.",
"Couldn't reset password because the token is invalid" : "Nuk mund të rivendos fjalëkalimin sepse shenja është e pavlefshme.",
"Couldn't send reset email. Please make sure your username is correct." : "Emaili i rivendosjes nuk mund të dërgohet. Ju lutem sigurohuni që përdoruesi juaj është i saktë.",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index dc427b46dba..54e288b3c3d 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -62,6 +62,7 @@ OC.L10N.register(
"Strong password" : "Starkt lösenord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din webbserver är inte korrekt konfigurerad för att tillåta filsynkronisering eftersom WebDAV inte verkar fungera.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Servern har ingen fungerande internetanslutning. Detta innebär att en del av de funktioner som montering av extern lagring, notifieringar om uppdateringar eller installation av 3: e part appar inte fungerar. Åtkomst till filer och skicka e-postmeddelanden fungerar troligen inte heller. Vi rekommenderar starkt att aktivera en internetuppkoppling för denna server om du vill ha alla funktioner.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din datakatalog och dina filer är förmodligen åtkomliga från internet. Filen .htaccess fungerar inte. Vi rekommenderar starkt att du konfigurerar din webbserver så att datakatalogen inte längre är åtkomlig eller du flyttar datakatalogen utanför webbserverns rotkatalog.",
"Error occurred while checking server setup" : "Ett fel inträffade när en kontroll utav servens setup gjordes",
"Shared" : "Delad",
"Shared with {recipients}" : "Delad med {recipients}",
@@ -110,7 +111,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.",
"Please reload the page." : "Vänligen ladda om sidan.",
- "The update was unsuccessful." : "Uppdateringen misslyckades.",
"The update was successful. Redirecting you to ownCloud now." : "Uppdateringen lyckades. Du omdirigeras nu till OwnCloud.",
"Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
"Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmail. Vänligen kontrollera att ditt användarnamn är korrekt.",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index c69d5001b5f..25f8603bce5 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -60,6 +60,7 @@
"Strong password" : "Starkt lösenord",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Din webbserver är inte korrekt konfigurerad för att tillåta filsynkronisering eftersom WebDAV inte verkar fungera.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Servern har ingen fungerande internetanslutning. Detta innebär att en del av de funktioner som montering av extern lagring, notifieringar om uppdateringar eller installation av 3: e part appar inte fungerar. Åtkomst till filer och skicka e-postmeddelanden fungerar troligen inte heller. Vi rekommenderar starkt att aktivera en internetuppkoppling för denna server om du vill ha alla funktioner.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din datakatalog och dina filer är förmodligen åtkomliga från internet. Filen .htaccess fungerar inte. Vi rekommenderar starkt att du konfigurerar din webbserver så att datakatalogen inte längre är åtkomlig eller du flyttar datakatalogen utanför webbserverns rotkatalog.",
"Error occurred while checking server setup" : "Ett fel inträffade när en kontroll utav servens setup gjordes",
"Shared" : "Delad",
"Shared with {recipients}" : "Delad med {recipients}",
@@ -108,7 +109,6 @@
"_download %n file_::_download %n files_" : ["",""],
"Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.",
"Please reload the page." : "Vänligen ladda om sidan.",
- "The update was unsuccessful." : "Uppdateringen misslyckades.",
"The update was successful. Redirecting you to ownCloud now." : "Uppdateringen lyckades. Du omdirigeras nu till OwnCloud.",
"Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
"Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmail. Vänligen kontrollera att ditt användarnamn är korrekt.",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index 37eab400dd4..47673965722 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
"Ok" : "Tamam",
"Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Strong password" : "Güçlü parola",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesine izin vermek üzere düzgün bir şekilde yapılandırılmamış. WebDAV arayüzü sorunlu görünüyor.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir internet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya 3. parti uygulama kurma gibi bazı özellikler çalışmayacağı anlamına gelmektedir. Uzaktan dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için internet bağlantısını etkinleştirmenizi öneriyoruz.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Veri dizininiz ve dosyalarınız muhtemelen İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri dizinine erişimi kapatmanızı veya veri dizinini web sunucu belge kök dizini dışına almanızı şiddetle tavsiye ederiz.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"Shared" : "Paylaşılan",
"Shared with {recipients}" : "{recipients} ile paylaşılmış",
@@ -116,7 +118,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
"Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
- "The update was unsuccessful." : "Güncelleme başarısız oldu.",
+ "The update was unsuccessful. " : "Güncelleştirme başarısız.",
"The update was successful. Redirecting you to ownCloud now." : "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
"Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
@@ -128,6 +130,7 @@ OC.L10N.register(
"Reset password" : "Parolayı sıfırla",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
"For the best results, please consider using a GNU/Linux server instead." : "En iyi sonuçlar için GNU/Linux sunucusu kullanın.",
+ "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyiniz ve web sunucusunu yeniden başlatınız.",
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index a34a07bd0e8..67c8d9dcb16 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
"Ok" : "Tamam",
"Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
@@ -62,6 +63,7 @@
"Strong password" : "Güçlü parola",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesine izin vermek üzere düzgün bir şekilde yapılandırılmamış. WebDAV arayüzü sorunlu görünüyor.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir internet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya 3. parti uygulama kurma gibi bazı özellikler çalışmayacağı anlamına gelmektedir. Uzaktan dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için internet bağlantısını etkinleştirmenizi öneriyoruz.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Veri dizininiz ve dosyalarınız muhtemelen İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri dizinine erişimi kapatmanızı veya veri dizinini web sunucu belge kök dizini dışına almanızı şiddetle tavsiye ederiz.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"Shared" : "Paylaşılan",
"Shared with {recipients}" : "{recipients} ile paylaşılmış",
@@ -114,7 +116,7 @@
"_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
"Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
- "The update was unsuccessful." : "Güncelleme başarısız oldu.",
+ "The update was unsuccessful. " : "Güncelleştirme başarısız.",
"The update was successful. Redirecting you to ownCloud now." : "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
"Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
@@ -126,6 +128,7 @@
"Reset password" : "Parolayı sıfırla",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
"For the best results, please consider using a GNU/Linux server instead." : "En iyi sonuçlar için GNU/Linux sunucusu kullanın.",
+ "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyiniz ve web sunucusunu yeniden başlatınız.",
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
diff --git a/core/l10n/uk.js b/core/l10n/uk.js
index cd444036896..9c4bb90fa89 100644
--- a/core/l10n/uk.js
+++ b/core/l10n/uk.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "Надійний пароль",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Цей сервер не має під'єднання до Інтернету. Це означає, що деякі функції, такі як монтування зовнішніх сховищ, повідомлення про оновлення або встановлення допоміжних програм не будуть працювати. Віддалений доступ до файлів та надсилання повідомлень електронною поштою також може не працювати. Ми пропонуємо увімкнути під'єднання до Інтернету для даного сервера, якщо ви хочете мати всі можливості ownCloud.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера.",
"Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка",
"Shared" : "Опубліковано",
"Shared with {recipients}" : "Опубліковано для {recipients}",
@@ -116,7 +117,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
- "The update was unsuccessful." : "Оновлення завершилось невдачею.",
"The update was successful. Redirecting you to ownCloud now." : "Оновлення виконалось успішно. Перенаправляємо вас на ownCloud.",
"Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним",
"Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.",
diff --git a/core/l10n/uk.json b/core/l10n/uk.json
index 4e649b34ff4..2cec0288c4e 100644
--- a/core/l10n/uk.json
+++ b/core/l10n/uk.json
@@ -62,6 +62,7 @@
"Strong password" : "Надійний пароль",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Цей сервер не має під'єднання до Інтернету. Це означає, що деякі функції, такі як монтування зовнішніх сховищ, повідомлення про оновлення або встановлення допоміжних програм не будуть працювати. Віддалений доступ до файлів та надсилання повідомлень електронною поштою також може не працювати. Ми пропонуємо увімкнути під'єднання до Інтернету для даного сервера, якщо ви хочете мати всі можливості ownCloud.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера.",
"Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка",
"Shared" : "Опубліковано",
"Shared with {recipients}" : "Опубліковано для {recipients}",
@@ -114,7 +115,6 @@
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
- "The update was unsuccessful." : "Оновлення завершилось невдачею.",
"The update was successful. Redirecting you to ownCloud now." : "Оновлення виконалось успішно. Перенаправляємо вас на ownCloud.",
"Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним",
"Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.",
diff --git a/core/l10n/vi.js b/core/l10n/vi.js
index 6c53239cdf4..3740b1cd3c7 100644
--- a/core/l10n/vi.js
+++ b/core/l10n/vi.js
@@ -47,6 +47,7 @@ OC.L10N.register(
"(all selected)" : "(Tất cả các lựa chọn)",
"({count} selected)" : "({count} được chọn)",
"Error loading file exists template" : "Lỗi khi tải tập tin mẫu đã tồn tại",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Thư mục và các tập tin của bạn có thể được truy cập từ Internet. Tập tin .htaccess không làm việc. Chúng tôi đề nghị bạn cấu hình ebserver ,phân quyền lại thư mục dữ liệu và cấp quyền truy cập hoặc di chuyển thư mục dữ liệu bên ngoài tài liệu gốc máy chủ web.",
"Shared" : "Được chia sẻ",
"Share" : "Chia sẻ",
"Error" : "Lỗi",
diff --git a/core/l10n/vi.json b/core/l10n/vi.json
index 1670cad7777..7148a9bd6c2 100644
--- a/core/l10n/vi.json
+++ b/core/l10n/vi.json
@@ -45,6 +45,7 @@
"(all selected)" : "(Tất cả các lựa chọn)",
"({count} selected)" : "({count} được chọn)",
"Error loading file exists template" : "Lỗi khi tải tập tin mẫu đã tồn tại",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Thư mục và các tập tin của bạn có thể được truy cập từ Internet. Tập tin .htaccess không làm việc. Chúng tôi đề nghị bạn cấu hình ebserver ,phân quyền lại thư mục dữ liệu và cấp quyền truy cập hoặc di chuyển thư mục dữ liệu bên ngoài tài liệu gốc máy chủ web.",
"Shared" : "Được chia sẻ",
"Share" : "Chia sẻ",
"Error" : "Lỗi",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index 8a432e857ff..54c3d00ddae 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "强密码",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "您的Web服务器尚未正确设置以允许文件同步, 因为WebDAV的接口似乎已损坏.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "此服务器上没有可用的因特网连接. 这意味着某些特性将无法工作,例如挂载外部存储器, 提醒更新或安装第三方应用等. 从远程访问文件和发送提醒电子邮件也可能无法工作. 如果你想要ownCloud的所有特性, 我们建议启用此服务器的因特网连接.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。",
"Error occurred while checking server setup" : "当检查服务器启动时出错",
"Shared" : "已共享",
"Shared with {recipients}" : "由{recipients}分享",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "更新 {productName} 到版本 {version},这可能需要一些时间。",
"Please reload the page." : "请重新加载页面。",
- "The update was unsuccessful." : "更新未成功。",
"The update was successful. Redirecting you to ownCloud now." : "更新成功。正在重定向至 ownCloud。",
"Couldn't reset password because the token is invalid" : "令牌无效,无法重置密码",
"Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件,请检查您的用户名是否正确。",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index 7f2aa70e0cd..3b5e5d69848 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -62,6 +62,7 @@
"Strong password" : "强密码",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "您的Web服务器尚未正确设置以允许文件同步, 因为WebDAV的接口似乎已损坏.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "此服务器上没有可用的因特网连接. 这意味着某些特性将无法工作,例如挂载外部存储器, 提醒更新或安装第三方应用等. 从远程访问文件和发送提醒电子邮件也可能无法工作. 如果你想要ownCloud的所有特性, 我们建议启用此服务器的因特网连接.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。",
"Error occurred while checking server setup" : "当检查服务器启动时出错",
"Shared" : "已共享",
"Shared with {recipients}" : "由{recipients}分享",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "更新 {productName} 到版本 {version},这可能需要一些时间。",
"Please reload the page." : "请重新加载页面。",
- "The update was unsuccessful." : "更新未成功。",
"The update was successful. Redirecting you to ownCloud now." : "更新成功。正在重定向至 ownCloud。",
"Couldn't reset password because the token is invalid" : "令牌无效,无法重置密码",
"Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件,请检查您的用户名是否正确。",
diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js
index 2a3e38d6ff8..0c280be0caf 100644
--- a/core/l10n/zh_TW.js
+++ b/core/l10n/zh_TW.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"Strong password" : "很強的密碼",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "這臺 ownCloud 伺服器沒有連接到網際網路,因此有些功能像是掛載外部儲存空間、更新 ownCloud 或應用程式的通知沒有辦法運作。透過網際網路存取檔案還有電子郵件通知可能也無法運作。如果想要 ownCloud 完整的功能,建議您將這臺伺服器連接至網際網路。",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。",
"Error occurred while checking server setup" : "檢查伺服器配置時發生錯誤",
"Shared" : "已分享",
"Shared with {recipients}" : "與 {recipients} 分享",
@@ -112,7 +113,6 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "正在更新 {productName} 到版本 {version} ,請稍候",
"Please reload the page." : "請重新整理頁面",
- "The update was unsuccessful." : "更新失敗",
"The update was successful. Redirecting you to ownCloud now." : "升級成功,正將您重新導向至 ownCloud 。",
"Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效",
"Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確",
diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json
index c8db6e348c7..0c2b08724b9 100644
--- a/core/l10n/zh_TW.json
+++ b/core/l10n/zh_TW.json
@@ -62,6 +62,7 @@
"Strong password" : "很強的密碼",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "這臺 ownCloud 伺服器沒有連接到網際網路,因此有些功能像是掛載外部儲存空間、更新 ownCloud 或應用程式的通知沒有辦法運作。透過網際網路存取檔案還有電子郵件通知可能也無法運作。如果想要 ownCloud 完整的功能,建議您將這臺伺服器連接至網際網路。",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。",
"Error occurred while checking server setup" : "檢查伺服器配置時發生錯誤",
"Shared" : "已分享",
"Shared with {recipients}" : "與 {recipients} 分享",
@@ -110,7 +111,6 @@
"_download %n file_::_download %n files_" : [""],
"Updating {productName} to version {version}, this may take a while." : "正在更新 {productName} 到版本 {version} ,請稍候",
"Please reload the page." : "請重新整理頁面",
- "The update was unsuccessful." : "更新失敗",
"The update was successful. Redirecting you to ownCloud now." : "升級成功,正將您重新導向至 ownCloud 。",
"Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效",
"Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確",
diff --git a/core/setup/controller.php b/core/setup/controller.php
index 5a52b18f73b..ab4c351b1a0 100644
--- a/core/setup/controller.php
+++ b/core/setup/controller.php
@@ -9,13 +9,21 @@
namespace OC\Core\Setup;
+use bantu\IniGetWrapper\IniGetWrapper;
use OCP\IConfig;
+use OCP\IL10N;
class Controller {
/**
* @var \OCP\IConfig
*/
protected $config;
+ /** @var IniGetWrapper */
+ protected $iniWrapper;
+ /** @var IL10N */
+ protected $l10n;
+ /** @var \OC_Defaults */
+ protected $defaults;
/**
* @var string
@@ -24,12 +32,24 @@ class Controller {
/**
* @param IConfig $config
+ * @param IniGetWrapper $iniWrapper
+ * @param IL10N $l10n
+ * @param \OC_Defaults $defaults
*/
- function __construct(IConfig $config) {
+ function __construct(IConfig $config,
+ IniGetWrapper $iniWrapper,
+ IL10N $l10n,
+ \OC_Defaults $defaults) {
$this->autoConfigFile = \OC::$SERVERROOT.'/config/autoconfig.php';
$this->config = $config;
+ $this->iniWrapper = $iniWrapper;
+ $this->l10n = $l10n;
+ $this->defaults = $defaults;
}
+ /**
+ * @param $post
+ */
public function run($post) {
// Check for autosetup:
$post = $this->loadAutoConfig($post);
@@ -138,16 +158,36 @@ class Controller {
}
}
+
if (\OC_Util::runningOnMac()) {
- $l10n = \OC::$server->getL10N('core');
- $theme = new \OC_Defaults();
$errors[] = array(
- 'error' => $l10n->t(
+ 'error' => $this->l10n->t(
'Mac OS X is not supported and %s will not work properly on this platform. ' .
'Use it at your own risk! ',
- $theme->getName()
+ $this->defaults->getName()
+ ),
+ 'hint' => $this->l10n->t('For the best results, please consider using a GNU/Linux server instead.')
+ );
+ }
+
+ if($this->iniWrapper->getString('open_basedir') !== '' && PHP_INT_SIZE === 4) {
+ $errors[] = array(
+ 'error' => $this->l10n->t(
+ 'It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. ' .
+ 'This will lead to problems with files over 4GB and is highly discouraged.',
+ $this->defaults->getName()
+ ),
+ 'hint' => $this->l10n->t('Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.')
+ );
+ }
+ if(!function_exists('curl_init') && PHP_INT_SIZE === 4) {
+ $errors[] = array(
+ 'error' => $this->l10n->t(
+ 'It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. ' .
+ 'This will lead to problems with files over 4GB and is highly discouraged.',
+ $this->defaults->getName()
),
- 'hint' => $l10n->t('For the best results, please consider using a GNU/Linux server instead.')
+ 'hint' => $this->l10n->t('Please install the cURL extension and restart your webserver.')
);
}
diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php
index 2b496c23246..96229fd370a 100644
--- a/core/templates/layout.base.php
+++ b/core/templates/layout.base.php
@@ -6,7 +6,7 @@
<!--[if gt IE 9]><html class="ng-csp ie" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
<!--[if !IE]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
- <head>
+ <head data-requesttoken="<?php p($_['requesttoken']); ?>">
<title>
<?php p($theme->getTitle()); ?>
</title>
diff --git a/lib/base.php b/lib/base.php
index 74b668551ab..f2ff3bb4849 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -188,7 +188,15 @@ class OC {
public static function checkConfig() {
$l = \OC::$server->getL10N('lib');
- $configFileWritable = file_exists(self::$configDir . "/config.php") && is_writable(self::$configDir . "/config.php");
+
+ // Create config in case it does not already exists
+ $configFilePath = self::$configDir .'/config.php';
+ if(!file_exists($configFilePath)) {
+ @touch($configFilePath);
+ }
+
+ // Check if config is writable
+ $configFileWritable = is_writable($configFilePath);
if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
|| !$configFileWritable && \OCP\Util::needUpgrade()) {
if (self::$CLI) {
@@ -210,7 +218,7 @@ class OC {
public static function checkInstalled() {
// Redirect to installer if not installed
- if (!\OC::$server->getConfig()->getSystemValue('installed', false) && OC::$SUBURI != '/index.php') {
+ if (!\OC::$server->getSystemConfig()->getValue('installed', false) && OC::$SUBURI != '/index.php') {
if (OC::$CLI) {
throw new Exception('Not installed');
} else {
@@ -223,12 +231,12 @@ class OC {
public static function checkSSL() {
// redirect to https site if configured
- if (\OC::$server->getConfig()->getSystemValue('forcessl', false)) {
+ if (\OC::$server->getSystemConfig()->getValue('forcessl', false)) {
// Default HSTS policy
$header = 'Strict-Transport-Security: max-age=31536000';
// If SSL for subdomains is enabled add "; includeSubDomains" to the header
- if(\OC::$server->getConfig()->getSystemValue('forceSSLforSubdomains', false)) {
+ if(\OC::$server->getSystemConfig()->getValue('forceSSLforSubdomains', false)) {
$header .= '; includeSubDomains';
}
header($header);
@@ -248,7 +256,7 @@ class OC {
public static function checkMaintenanceMode() {
// Allow ajax update script to execute without being stopped
- if (\OC::$server->getConfig()->getSystemValue('maintenance', false) && OC::$SUBURI != '/core/ajax/update.php') {
+ if (\OC::$server->getSystemConfig()->getValue('maintenance', false) && OC::$SUBURI != '/core/ajax/update.php') {
// send http status 503
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -265,7 +273,7 @@ class OC {
public static function checkSingleUserMode() {
$user = OC_User::getUserSession()->getUser();
$group = OC_Group::getManager()->get('admin');
- if ($user && \OC::$server->getConfig()->getSystemValue('singleuser', false) && !$group->inGroup($user)) {
+ if ($user && \OC::$server->getSystemConfig()->getValue('singleuser', false) && !$group->inGroup($user)) {
// send http status 503
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -295,11 +303,11 @@ class OC {
*/
public static function checkUpgrade($showTemplate = true) {
if (\OCP\Util::needUpgrade()) {
- $config = \OC::$server->getConfig();
- if ($showTemplate && !$config->getSystemValue('maintenance', false)) {
+ $systemConfig = \OC::$server->getSystemConfig();
+ if ($showTemplate && !$systemConfig->getValue('maintenance', false)) {
$version = OC_Util::getVersion();
- $oldTheme = $config->getSystemValue('theme');
- $config->setSystemValue('theme', '');
+ $oldTheme = $systemConfig->getValue('theme');
+ $systemConfig->setValue('theme', '');
OC_Util::addScript('config'); // needed for web root
OC_Util::addScript('update');
$tmpl = new OC_Template('', 'update.admin', 'guest');
@@ -353,7 +361,7 @@ class OC {
OC_Util::addVendorScript('moment/min/moment-with-locales');
// avatars
- if (\OC::$server->getConfig()->getSystemValue('enable_avatars', true) === true) {
+ if (\OC::$server->getSystemConfig()->getValue('enable_avatars', true) === true) {
\OC_Util::addScript('placeholder');
\OC_Util::addVendorScript('blueimp-md5/js/md5');
\OC_Util::addScript('jquery.avatar');
@@ -481,10 +489,6 @@ class OC {
date_default_timezone_set('UTC');
ini_set('arg_separator.output', '&amp;');
- // try to switch magic quotes off.
- if (get_magic_quotes_gpc() == 1) {
- ini_set('magic_quotes_runtime', 0);
- }
//try to configure php to enable big file uploads.
//this doesn´t work always depending on the webserver and php configuration.
//Let´s try to overwrite some defaults anyways
@@ -553,10 +557,10 @@ class OC {
$sessionLifeTime = self::getSessionLifeTime();
@ini_set('gc_maxlifetime', (string)$sessionLifeTime);
- $config = \OC::$server->getConfig();
+ $systemConfig = \OC::$server->getSystemConfig();
// User and Groups
- if (!$config->getSystemValue("installed", false)) {
+ if (!$systemConfig->getValue("installed", false)) {
self::$server->getSession()->set('user_id', '');
}
@@ -579,14 +583,14 @@ class OC {
$tmpManager = \OC::$server->getTempManager();
register_shutdown_function(array($tmpManager, 'clean'));
- if ($config->getSystemValue('installed', false) && !self::checkUpgrade(false)) {
- if (\OC::$server->getAppConfig()->getValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
+ if ($systemConfig->getValue('installed', false) && !self::checkUpgrade(false)) {
+ if (\OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
OC_Util::addScript('backgroundjobs');
}
}
// Check whether the sample configuration has been copied
- if($config->getSystemValue('copied_sample_config', false)) {
+ if($systemConfig->getValue('copied_sample_config', false)) {
$l = \OC::$server->getL10N('lib');
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -628,7 +632,7 @@ class OC {
* register hooks for the cache
*/
public static function registerCacheHooks() {
- if (\OC::$server->getConfig()->getSystemValue('installed', false) && !\OCP\Util::needUpgrade()) { //don't try to do this before we are properly setup
+ if (\OC::$server->getSystemConfig()->getValue('installed', false) && !\OCP\Util::needUpgrade()) { //don't try to do this before we are properly setup
\OCP\BackgroundJob::registerJob('OC\Cache\FileGlobalGC');
// NOTE: This will be replaced to use OCP
@@ -641,11 +645,11 @@ class OC {
* register hooks for the cache
*/
public static function registerLogRotate() {
- $config = \OC::$server->getConfig();
- if ($config->getSystemValue('installed', false) && $config->getSystemValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
+ $systemConfig = \OC::$server->getSystemConfig();
+ if ($systemConfig->getValue('installed', false) && $systemConfig->getValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
//don't try to do this before we are properly setup
//use custom logfile path if defined, otherwise use default of owncloud.log in data directory
- \OCP\BackgroundJob::registerJob('OC\Log\Rotate', $config->getSystemValue('logfile', $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data') . '/owncloud.log'));
+ \OCP\BackgroundJob::registerJob('OC\Log\Rotate', $systemConfig->getValue('logfile', $systemConfig->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/owncloud.log'));
}
}
@@ -675,7 +679,7 @@ class OC {
* register hooks for sharing
*/
public static function registerShareHooks() {
- if (\OC::$server->getConfig()->getSystemValue('installed')) {
+ if (\OC::$server->getSystemConfig()->getValue('installed')) {
OC_Hook::connect('OC_User', 'post_deleteUser', 'OC\Share\Hooks', 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_addToGroup', 'OC\Share\Hooks', 'post_addToGroup');
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OC\Share\Hooks', 'post_removeFromGroup');
@@ -690,7 +694,7 @@ class OC {
// generate an instanceid via \OC_Util::getInstanceId() because the
// config file may not be writable. As such, we only register a class
// loader cache if instanceid is available without trying to create one.
- $instanceId = \OC::$server->getConfig()->getSystemValue('instanceid', null);
+ $instanceId = \OC::$server->getSystemConfig()->getValue('instanceid', null);
if ($instanceId) {
try {
$memcacheFactory = new \OC\Memcache\Factory($instanceId);
@@ -705,15 +709,15 @@ class OC {
*/
public static function handleRequest() {
\OC::$server->getEventLogger()->start('handle_request', 'Handle request');
- $config = \OC::$server->getConfig();
+ $systemConfig = \OC::$server->getSystemConfig();
// load all the classpaths from the enabled apps so they are available
// in the routing files of each app
OC::loadAppClassPaths();
// Check if ownCloud is installed or in maintenance (update) mode
- if (!$config->getSystemValue('installed', false)) {
+ if (!$systemConfig->getValue('installed', false)) {
\OC::$server->getSession()->clear();
- $controller = new OC\Core\Setup\Controller(\OC::$server->getConfig());
+ $controller = new OC\Core\Setup\Controller(\OC::$server->getConfig(), \OC::$server->getIniWrapper(), \OC::$server->getL10N('core'), new \OC_Defaults());
$controller->run($_POST);
exit();
}
@@ -726,7 +730,7 @@ class OC {
if (!self::$CLI and (!isset($_GET["logout"]) or ($_GET["logout"] !== 'true'))) {
try {
- if (!$config->getSystemValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
+ if (!$systemConfig->getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
OC_App::loadApps(array('authentication'));
OC_App::loadApps(array('filesystem', 'logging'));
OC_App::loadApps();
@@ -792,7 +796,7 @@ class OC {
if (isset($_GET["logout"]) and ($_GET["logout"])) {
OC_JSON::callCheck();
if (isset($_COOKIE['oc_token'])) {
- $config->deleteUserValue(OC_User::getUser(), 'login_token', $_COOKIE['oc_token']);
+ \OC::$server->getConfig()->deleteUserValue(OC_User::getUser(), 'login_token', $_COOKIE['oc_token']);
}
OC_User::logout();
// redirect to webroot and add slash if webroot is empty
diff --git a/lib/l10n/ach.js b/lib/l10n/ach.js
index 9ac3e05d6c6..9408adc0dc3 100644
--- a/lib/l10n/ach.js
+++ b/lib/l10n/ach.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/ach.json b/lib/l10n/ach.json
index 82a8a99d300..2a227e468c7 100644
--- a/lib/l10n/ach.json
+++ b/lib/l10n/ach.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ady.js b/lib/l10n/ady.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/ady.js
+++ b/lib/l10n/ady.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ady.json b/lib/l10n/ady.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/ady.json
+++ b/lib/l10n/ady.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/af_ZA.js b/lib/l10n/af_ZA.js
index af812fe1e97..953186be7fe 100644
--- a/lib/l10n/af_ZA.js
+++ b/lib/l10n/af_ZA.js
@@ -8,12 +8,13 @@ OC.L10N.register(
"Admin" : "Admin",
"Unknown filetype" : "Onbekende leertipe",
"Invalid image" : "Ongeldige prent",
- "web services under your control" : "webdienste onder jou beheer",
- "seconds ago" : "sekondes gelede",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
"today" : "vandag",
- "_%n day go_::_%n days ago_" : ["","%n dae gelede"],
- "_%n month ago_::_%n months ago_" : ["","%n maande gelede"]
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["","%n maande gelede"],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "sekondes gelede",
+ "web services under your control" : "webdienste onder jou beheer"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/af_ZA.json b/lib/l10n/af_ZA.json
index b3dedd54188..7dd4d1ef718 100644
--- a/lib/l10n/af_ZA.json
+++ b/lib/l10n/af_ZA.json
@@ -6,12 +6,13 @@
"Admin" : "Admin",
"Unknown filetype" : "Onbekende leertipe",
"Invalid image" : "Ongeldige prent",
- "web services under your control" : "webdienste onder jou beheer",
- "seconds ago" : "sekondes gelede",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
"today" : "vandag",
- "_%n day go_::_%n days ago_" : ["","%n dae gelede"],
- "_%n month ago_::_%n months ago_" : ["","%n maande gelede"]
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["","%n maande gelede"],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "sekondes gelede",
+ "web services under your control" : "webdienste onder jou beheer"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ak.js b/lib/l10n/ak.js
index 27ded1c7f3b..0f475bd29e9 100644
--- a/lib/l10n/ak.js
+++ b/lib/l10n/ak.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=n > 1;");
diff --git a/lib/l10n/ak.json b/lib/l10n/ak.json
index a488fce3cc6..e760ab2823c 100644
--- a/lib/l10n/ak.json
+++ b/lib/l10n/ak.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=n > 1;"
} \ No newline at end of file
diff --git a/lib/l10n/am_ET.js b/lib/l10n/am_ET.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/am_ET.js
+++ b/lib/l10n/am_ET.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/am_ET.json b/lib/l10n/am_ET.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/am_ET.json
+++ b/lib/l10n/am_ET.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ar.js b/lib/l10n/ar.js
index 5fec5a1a818..246bffb979c 100644
--- a/lib/l10n/ar.js
+++ b/lib/l10n/ar.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "لا يوجد برنامج بهذا الاسم",
"Unknown filetype" : "نوع الملف غير معروف",
"Invalid image" : "الصورة غير صالحة",
+ "today" : "اليوم",
+ "yesterday" : "يوم أمس",
+ "_%n day ago_::_%n days ago_" : ["","","","","",""],
+ "last month" : "الشهر الماضي",
+ "_%n month ago_::_%n months ago_" : ["","","","","",""],
+ "last year" : "السنةالماضية",
+ "_%n year ago_::_%n years ago_" : ["","","","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
+ "seconds ago" : "منذ ثواني",
"web services under your control" : "خدمات الشبكة تحت سيطرتك",
"App directory already exists" : "مجلد التطبيق موجود مسبقا",
"Can't create app folder. Please fix permissions. %s" : "لا يمكن إنشاء مجلد التطبيق. يرجى تعديل الصلاحيات. %s",
@@ -37,16 +47,6 @@ OC.L10N.register(
"Set an admin password." : "اعداد كلمة مرور للمدير",
"%s shared »%s« with you" : "%s شارك »%s« معك",
"Could not find category \"%s\"" : "تعذر العثور على المجلد \"%s\"",
- "seconds ago" : "منذ ثواني",
- "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
- "today" : "اليوم",
- "yesterday" : "يوم أمس",
- "_%n day go_::_%n days ago_" : ["","","","","",""],
- "last month" : "الشهر الماضي",
- "_%n month ago_::_%n months ago_" : ["","","","","",""],
- "last year" : "السنةالماضية",
- "years ago" : "سنة مضت",
"A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
"A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة"
},
diff --git a/lib/l10n/ar.json b/lib/l10n/ar.json
index 64af68df990..e2eb4272c3e 100644
--- a/lib/l10n/ar.json
+++ b/lib/l10n/ar.json
@@ -7,6 +7,16 @@
"No app name specified" : "لا يوجد برنامج بهذا الاسم",
"Unknown filetype" : "نوع الملف غير معروف",
"Invalid image" : "الصورة غير صالحة",
+ "today" : "اليوم",
+ "yesterday" : "يوم أمس",
+ "_%n day ago_::_%n days ago_" : ["","","","","",""],
+ "last month" : "الشهر الماضي",
+ "_%n month ago_::_%n months ago_" : ["","","","","",""],
+ "last year" : "السنةالماضية",
+ "_%n year ago_::_%n years ago_" : ["","","","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
+ "seconds ago" : "منذ ثواني",
"web services under your control" : "خدمات الشبكة تحت سيطرتك",
"App directory already exists" : "مجلد التطبيق موجود مسبقا",
"Can't create app folder. Please fix permissions. %s" : "لا يمكن إنشاء مجلد التطبيق. يرجى تعديل الصلاحيات. %s",
@@ -35,16 +45,6 @@
"Set an admin password." : "اعداد كلمة مرور للمدير",
"%s shared »%s« with you" : "%s شارك »%s« معك",
"Could not find category \"%s\"" : "تعذر العثور على المجلد \"%s\"",
- "seconds ago" : "منذ ثواني",
- "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
- "today" : "اليوم",
- "yesterday" : "يوم أمس",
- "_%n day go_::_%n days ago_" : ["","","","","",""],
- "last month" : "الشهر الماضي",
- "_%n month ago_::_%n months ago_" : ["","","","","",""],
- "last year" : "السنةالماضية",
- "years ago" : "سنة مضت",
"A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
"A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة"
},"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;"
diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js
index f1d66a1d91a..e98d8604551 100644
--- a/lib/l10n/ast.js
+++ b/lib/l10n/ast.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Nun s'especificó nome de l'aplicación",
"Unknown filetype" : "Triba de ficheru desconocida",
"Invalid image" : "Imaxe inválida",
+ "today" : "güei",
+ "yesterday" : "ayeri",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes caberu",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "añu caberu",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
+ "seconds ago" : "hai segundos",
"web services under your control" : "servicios web baxo'l to control",
"App directory already exists" : "El direutoriu de l'aplicación yá esiste",
"Can't create app folder. Please fix permissions. %s" : "Nun pue crease la carpeta de l'aplicación. Por favor, igua los permisos. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque'l motor compartíu pa %s podría nun atopar el so orixe",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartir %s falló, yá que'l ficheru nun pudo atopase na caché de ficheru",
"Could not find category \"%s\"" : "Nun pudo alcontrase la estaya \"%s.\"",
- "seconds ago" : "hai segundos",
- "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
- "today" : "güei",
- "yesterday" : "ayeri",
- "_%n day go_::_%n days ago_" : ["hai %n día","hai %n díes"],
- "last month" : "mes caberu",
- "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
- "last year" : "añu caberu",
- "years ago" : "hai años",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Namái tan permitíos los siguientes caráuteres nun nome d'usuariu: \"a-z\", \"A-Z\", \"0-9\", y \"_.@-\"",
"A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
"A valid password must be provided" : "Tien d'apurrise una contraseña válida",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
"PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Ta habilitáu'l mou seguru de PHP. ownCloud requier que tea deshabilitáu pa furrular afayadízamente",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Mou seguru de PHP ye un entornu en desusu que tien de desactivase. Contauta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Tán habilitaes les Magic Quotes. ownCloud requier que les deshabilites pa funcionar afayadizamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ye un entornu en desusu y tien de desactivase. Consulta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
"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",
diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json
index fcc52e8c679..29db56cf04c 100644
--- a/lib/l10n/ast.json
+++ b/lib/l10n/ast.json
@@ -16,6 +16,16 @@
"No app name specified" : "Nun s'especificó nome de l'aplicación",
"Unknown filetype" : "Triba de ficheru desconocida",
"Invalid image" : "Imaxe inválida",
+ "today" : "güei",
+ "yesterday" : "ayeri",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes caberu",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "añu caberu",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
+ "seconds ago" : "hai segundos",
"web services under your control" : "servicios web baxo'l to control",
"App directory already exists" : "El direutoriu de l'aplicación yá esiste",
"Can't create app folder. Please fix permissions. %s" : "Nun pue crease la carpeta de l'aplicación. Por favor, igua los permisos. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque'l motor compartíu pa %s podría nun atopar el so orixe",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartir %s falló, yá que'l ficheru nun pudo atopase na caché de ficheru",
"Could not find category \"%s\"" : "Nun pudo alcontrase la estaya \"%s.\"",
- "seconds ago" : "hai segundos",
- "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
- "today" : "güei",
- "yesterday" : "ayeri",
- "_%n day go_::_%n days ago_" : ["hai %n día","hai %n díes"],
- "last month" : "mes caberu",
- "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
- "last year" : "añu caberu",
- "years ago" : "hai años",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Namái tan permitíos los siguientes caráuteres nun nome d'usuariu: \"a-z\", \"A-Z\", \"0-9\", y \"_.@-\"",
"A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
"A valid password must be provided" : "Tien d'apurrise una contraseña válida",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
"PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Ta habilitáu'l mou seguru de PHP. ownCloud requier que tea deshabilitáu pa furrular afayadízamente",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Mou seguru de PHP ye un entornu en desusu que tien de desactivase. Contauta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Tán habilitaes les Magic Quotes. ownCloud requier que les deshabilites pa funcionar afayadizamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ye un entornu en desusu y tien de desactivase. Consulta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
"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",
diff --git a/lib/l10n/az.js b/lib/l10n/az.js
index 700c3353556..3d5793ef799 100644
--- a/lib/l10n/az.js
+++ b/lib/l10n/az.js
@@ -14,6 +14,11 @@ OC.L10N.register(
"No app name specified" : "Proqram adı təyin edilməyib",
"Unknown filetype" : "Fayl tipi bəlli deyil.",
"Invalid image" : "Yalnış şəkil",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
"App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
"Can't create app folder. Please fix permissions. %s" : "Proqram təminatı qovluğunu yaratmaq mümkün olmadı. Xahiş edilir yetkiləri düzgün təyin edəsiniz. %s",
"Application is not enabled" : "Proqram təminatı aktiv edilməyib",
@@ -35,10 +40,6 @@ OC.L10N.register(
"Sharing %s failed, because the file does not exist" : "%s yayımlanmasında səhv baş verdi ona görə ki, fayl mövcud deyil.",
"You are not allowed to share %s" : "%s-in yayimlanmasına sizə izin verilmir",
"Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""],
"A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
"A valid password must be provided" : "Düzgün şifrə daxil edilməlidir"
},
diff --git a/lib/l10n/az.json b/lib/l10n/az.json
index b0348a52ef3..49d2df41c96 100644
--- a/lib/l10n/az.json
+++ b/lib/l10n/az.json
@@ -12,6 +12,11 @@
"No app name specified" : "Proqram adı təyin edilməyib",
"Unknown filetype" : "Fayl tipi bəlli deyil.",
"Invalid image" : "Yalnış şəkil",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
"App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
"Can't create app folder. Please fix permissions. %s" : "Proqram təminatı qovluğunu yaratmaq mümkün olmadı. Xahiş edilir yetkiləri düzgün təyin edəsiniz. %s",
"Application is not enabled" : "Proqram təminatı aktiv edilməyib",
@@ -33,10 +38,6 @@
"Sharing %s failed, because the file does not exist" : "%s yayımlanmasında səhv baş verdi ona görə ki, fayl mövcud deyil.",
"You are not allowed to share %s" : "%s-in yayimlanmasına sizə izin verilmir",
"Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""],
"A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
"A valid password must be provided" : "Düzgün şifrə daxil edilməlidir"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/be.js b/lib/l10n/be.js
index b75e4fa2e67..f34545ade21 100644
--- a/lib/l10n/be.js
+++ b/lib/l10n/be.js
@@ -2,15 +2,15 @@ OC.L10N.register(
"lib",
{
"Settings" : "Налады",
- "seconds ago" : "Секунд таму",
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","",""],
"today" : "Сёння",
"yesterday" : "Ўчора",
- "_%n day go_::_%n days ago_" : ["","","",""],
+ "_%n day ago_::_%n days ago_" : ["","","",""],
"last month" : "У мінулым месяцы",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "У мінулым годзе",
- "years ago" : "Гадоў таму"
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "seconds ago" : "Секунд таму"
},
"nplurals=4; 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/lib/l10n/be.json b/lib/l10n/be.json
index 891b64361dc..91f99445d7a 100644
--- a/lib/l10n/be.json
+++ b/lib/l10n/be.json
@@ -1,14 +1,14 @@
{ "translations": {
"Settings" : "Налады",
- "seconds ago" : "Секунд таму",
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","",""],
"today" : "Сёння",
"yesterday" : "Ўчора",
- "_%n day go_::_%n days ago_" : ["","","",""],
+ "_%n day ago_::_%n days ago_" : ["","","",""],
"last month" : "У мінулым месяцы",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "У мінулым годзе",
- "years ago" : "Гадоў таму"
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "seconds ago" : "Секунд таму"
},"pluralForm" :"nplurals=4; 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/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js
index ab1da741b91..ad881bb4c38 100644
--- a/lib/l10n/bg_BG.js
+++ b/lib/l10n/bg_BG.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Не е зададено име на преложението",
"Unknown filetype" : "Непознат тип файл.",
"Invalid image" : "Невалидно изображение.",
+ "today" : "днес",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "миналия месец",
+ "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
+ "last year" : "миналата година",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
+ "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
+ "seconds ago" : "преди секунди",
"Database Error" : "Грешка в базата данни",
"Please contact your system administrator." : "Моля, свържи се с админстратора.",
"web services under your control" : "уеб услуги под твой контрол",
@@ -81,16 +91,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.",
"Sharing %s failed, because the file could not be found in the file cache" : "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.",
"Could not find category \"%s\"" : "Невъзможно откриване на категорията \"%s\".",
- "seconds ago" : "преди секунди",
- "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
- "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
- "today" : "днес",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["","преди %n дена"],
- "last month" : "миналия месец",
- "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
- "last year" : "миналата година",
- "years ago" : "преди години",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Само следните символи са разрешени в потребителското име: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\".",
"A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
"A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
@@ -107,10 +107,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
"PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode е включен. ownCloud изисква този режим да бъде изключен, за да функионира нормално.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes е включен. ownCloud изисква да е изключен, за да функнионира нормално.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
"Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
"PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json
index 137f6d20496..f92811686d7 100644
--- a/lib/l10n/bg_BG.json
+++ b/lib/l10n/bg_BG.json
@@ -16,6 +16,16 @@
"No app name specified" : "Не е зададено име на преложението",
"Unknown filetype" : "Непознат тип файл.",
"Invalid image" : "Невалидно изображение.",
+ "today" : "днес",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "миналия месец",
+ "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
+ "last year" : "миналата година",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
+ "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
+ "seconds ago" : "преди секунди",
"Database Error" : "Грешка в базата данни",
"Please contact your system administrator." : "Моля, свържи се с админстратора.",
"web services under your control" : "уеб услуги под твой контрол",
@@ -79,16 +89,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.",
"Sharing %s failed, because the file could not be found in the file cache" : "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.",
"Could not find category \"%s\"" : "Невъзможно откриване на категорията \"%s\".",
- "seconds ago" : "преди секунди",
- "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
- "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
- "today" : "днес",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["","преди %n дена"],
- "last month" : "миналия месец",
- "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
- "last year" : "миналата година",
- "years ago" : "преди години",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Само следните символи са разрешени в потребителското име: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\".",
"A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
"A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
@@ -105,10 +105,6 @@
"Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
"PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode е включен. ownCloud изисква този режим да бъде изключен, за да функионира нормално.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes е включен. ownCloud изисква да е изключен, за да функнионира нормално.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
"Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
"PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
diff --git a/lib/l10n/bn_BD.js b/lib/l10n/bn_BD.js
index ea94de9912e..432d033352f 100644
--- a/lib/l10n/bn_BD.js
+++ b/lib/l10n/bn_BD.js
@@ -14,6 +14,16 @@ OC.L10N.register(
"No app name specified" : "কোন অ্যাপ নাম সুনির্দিষ্ট নয়",
"Unknown filetype" : "অজানা প্রকৃতির ফাইল",
"Invalid image" : "অবৈধ চিত্র",
+ "today" : "আজ",
+ "yesterday" : "গতকাল",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "গত মাস",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "গত বছর",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "সেকেন্ড পূর্বে",
"web services under your control" : "ওয়েব সার্ভিস আপনার হাতের মুঠোয়",
"App directory already exists" : "এই অ্যাপ ডিরেক্টরিটি পূর্ব থেকেই বিদ্যমান",
"Can't create app folder. Please fix permissions. %s" : "অ্যাপ ফোল্ডার বানানো হেলনা। অনুমতি নির্ধারণ করুন। %s",
@@ -29,17 +39,6 @@ OC.L10N.register(
"Unknown user" : "অপরিচিত ব্যবহারকারী",
"%s shared »%s« with you" : "%s আপনার সাথে »%s« ভাগাভাগি করেছে",
"Sharing %s failed, because the file does not exist" : "%s ভাগাভাগি ব্যার্থ, কারণ ফাইলটি নেই",
- "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা",
- "seconds ago" : "সেকেন্ড পূর্বে",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "today" : "আজ",
- "yesterday" : "গতকাল",
- "_%n day go_::_%n days ago_" : ["",""],
- "last month" : "গত মাস",
- "_%n month ago_::_%n months ago_" : ["",""],
- "last year" : "গত বছর",
- "years ago" : "বছর পূর্বে",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "পিএইচপি সেফ মোড কার্যকর আছে। গউনক্লাউড সঠিকভাবে কাজ করতে হলে এটি অকার্যকর করা প্রয়োজন।"
+ "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/bn_BD.json b/lib/l10n/bn_BD.json
index bcf7ae8e1b7..08e5edc50d2 100644
--- a/lib/l10n/bn_BD.json
+++ b/lib/l10n/bn_BD.json
@@ -12,6 +12,16 @@
"No app name specified" : "কোন অ্যাপ নাম সুনির্দিষ্ট নয়",
"Unknown filetype" : "অজানা প্রকৃতির ফাইল",
"Invalid image" : "অবৈধ চিত্র",
+ "today" : "আজ",
+ "yesterday" : "গতকাল",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "গত মাস",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "গত বছর",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "সেকেন্ড পূর্বে",
"web services under your control" : "ওয়েব সার্ভিস আপনার হাতের মুঠোয়",
"App directory already exists" : "এই অ্যাপ ডিরেক্টরিটি পূর্ব থেকেই বিদ্যমান",
"Can't create app folder. Please fix permissions. %s" : "অ্যাপ ফোল্ডার বানানো হেলনা। অনুমতি নির্ধারণ করুন। %s",
@@ -27,17 +37,6 @@
"Unknown user" : "অপরিচিত ব্যবহারকারী",
"%s shared »%s« with you" : "%s আপনার সাথে »%s« ভাগাভাগি করেছে",
"Sharing %s failed, because the file does not exist" : "%s ভাগাভাগি ব্যার্থ, কারণ ফাইলটি নেই",
- "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা",
- "seconds ago" : "সেকেন্ড পূর্বে",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "today" : "আজ",
- "yesterday" : "গতকাল",
- "_%n day go_::_%n days ago_" : ["",""],
- "last month" : "গত মাস",
- "_%n month ago_::_%n months ago_" : ["",""],
- "last year" : "গত বছর",
- "years ago" : "বছর পূর্বে",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "পিএইচপি সেফ মোড কার্যকর আছে। গউনক্লাউড সঠিকভাবে কাজ করতে হলে এটি অকার্যকর করা প্রয়োজন।"
+ "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/bn_IN.js b/lib/l10n/bn_IN.js
index e8129c3586d..9933281c8d8 100644
--- a/lib/l10n/bn_IN.js
+++ b/lib/l10n/bn_IN.js
@@ -2,9 +2,10 @@ OC.L10N.register(
"lib",
{
"Settings" : "সেটিংস",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/bn_IN.json b/lib/l10n/bn_IN.json
index 052226c8728..239478adca6 100644
--- a/lib/l10n/bn_IN.json
+++ b/lib/l10n/bn_IN.json
@@ -1,8 +1,9 @@
{ "translations": {
"Settings" : "সেটিংস",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/bs.js b/lib/l10n/bs.js
index e977f036b3c..3753f51cba7 100644
--- a/lib/l10n/bs.js
+++ b/lib/l10n/bs.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
- "_%n day go_::_%n days ago_" : ["","",""],
- "_%n month ago_::_%n months ago_" : ["","",""]
+ "_%n minute ago_::_%n minutes ago_" : ["","",""]
},
"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/lib/l10n/bs.json b/lib/l10n/bs.json
index e6627bb2354..c07d5a6b611 100644
--- a/lib/l10n/bs.json
+++ b/lib/l10n/bs.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
- "_%n day go_::_%n days ago_" : ["","",""],
- "_%n month ago_::_%n months ago_" : ["","",""]
+ "_%n minute ago_::_%n minutes ago_" : ["","",""]
},"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/lib/l10n/ca.js b/lib/l10n/ca.js
index ef9d7a74768..25946231692 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "No heu especificat cap nom d'aplicació",
"Unknown filetype" : "Tipus de fitxer desconegut",
"Invalid image" : "Imatge no vàlida",
+ "today" : "avui",
+ "yesterday" : "ahir",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "el mes passat",
+ "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
+ "last year" : "l'any passat",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
+ "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
+ "seconds ago" : "segons enrere",
"web services under your control" : "controleu els vostres serveis web",
"App directory already exists" : "La carpeta de l'aplicació ja existeix",
"Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s",
@@ -78,16 +88,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font",
"Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau",
"Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"",
- "seconds ago" : "segons enrere",
- "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
- "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
- "today" : "avui",
- "yesterday" : "ahir",
- "_%n day go_::_%n days ago_" : ["fa %n dia","fa %n dies"],
- "last month" : "el mes passat",
- "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
- "last year" : "l'any passat",
- "years ago" : "anys enrere",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Només els caràcters següents estan permesos en el nom d'usuari: \"a-z\", \"A-Z\", \"0-9\" i \"_.@-\"",
"A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
"A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
@@ -104,10 +104,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
"PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "El mode segur de PHP està activat. OwnCloud requereix que es desactivi per funcionar correctament.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "El mode segur de PHP està desfasat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Les Magic Quotes estan activades. OwnCloud requereix que les desactiveu per funcionar correctament.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes està desfassat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
"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",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index 0277d0220f7..ed6dc3883ff 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -16,6 +16,16 @@
"No app name specified" : "No heu especificat cap nom d'aplicació",
"Unknown filetype" : "Tipus de fitxer desconegut",
"Invalid image" : "Imatge no vàlida",
+ "today" : "avui",
+ "yesterday" : "ahir",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "el mes passat",
+ "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
+ "last year" : "l'any passat",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
+ "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
+ "seconds ago" : "segons enrere",
"web services under your control" : "controleu els vostres serveis web",
"App directory already exists" : "La carpeta de l'aplicació ja existeix",
"Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s",
@@ -76,16 +86,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font",
"Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau",
"Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"",
- "seconds ago" : "segons enrere",
- "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
- "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
- "today" : "avui",
- "yesterday" : "ahir",
- "_%n day go_::_%n days ago_" : ["fa %n dia","fa %n dies"],
- "last month" : "el mes passat",
- "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
- "last year" : "l'any passat",
- "years ago" : "anys enrere",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Només els caràcters següents estan permesos en el nom d'usuari: \"a-z\", \"A-Z\", \"0-9\" i \"_.@-\"",
"A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
"A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
@@ -102,10 +102,6 @@
"Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
"PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "El mode segur de PHP està activat. OwnCloud requereix que es desactivi per funcionar correctament.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "El mode segur de PHP està desfasat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Les Magic Quotes estan activades. OwnCloud requereix que les desactiveu per funcionar correctament.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes està desfassat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
"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",
diff --git a/lib/l10n/ca@valencia.js b/lib/l10n/ca@valencia.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/ca@valencia.js
+++ b/lib/l10n/ca@valencia.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ca@valencia.json b/lib/l10n/ca@valencia.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/ca@valencia.json
+++ b/lib/l10n/ca@valencia.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
index 4f427778861..e541ae7f7e5 100644
--- a/lib/l10n/cs_CZ.js
+++ b/lib/l10n/cs_CZ.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Byla detekována vzorová konfigurace",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Pravděpodobně byla zkopírována konfigurační nastavení ze vzorových souborů. Toto není podporováno a může poškodit vaši instalaci. Nahlédněte prosím do dokumentace před prováděním změn v souboru config.php",
"PHP %s or higher is required." : "Je vyžadováno PHP %s nebo vyšší.",
+ "PHP with a version less then %s is required." : "Je vyžadováno PHP ve verzi nižší než %s.",
+ "Following databases are supported: %s" : "Jsou podporovány následující databáze: %s",
"Help" : "Nápověda",
"Personal" : "Osobní",
"Settings" : "Nastavení",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Nebyl zadan název aplikace",
"Unknown filetype" : "Neznámý typ souboru",
"Invalid image" : "Chybný obrázek",
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "last month" : "minulý měsíc",
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "last year" : "minulý rok",
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "seconds ago" : "před pár sekundami",
"Database Error" : "Chyba databáze",
"Please contact your system administrator." : "Kontaktujte prosím svého správce systému.",
"web services under your control" : "webové služby pod Vaší kontrolou",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Sdílení položky %s selhalo, protože úložiště sdílení %s nenalezla zdroj",
"Sharing %s failed, because the file could not be found in the file cache" : "Sdílení položky %s selhalo, protože soubor nebyl nalezen ve vyrovnávací paměti",
"Could not find category \"%s\"" : "Nelze nalézt kategorii \"%s\"",
- "seconds ago" : "před pár sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
- "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
- "today" : "dnes",
- "yesterday" : "včera",
- "_%n day go_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
- "last month" : "minulý měsíc",
- "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
- "last year" : "minulý rok",
- "years ago" : "před lety",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Pouze následující znaky jsou povoleny v uživatelském jménu: \"a-z\", \"A-Z\", \"0-9\" a \"_.@-\"",
"A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
"A valid password must be provided" : "Musíte zadat platné heslo",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Požádejte svého správce systému o instalaci tohoto modulu.",
"PHP module %s not installed." : "PHP modul %s není nainstalován.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Je zapnut PHP Safe Mode. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Je povoleno nastavení Magic Quotes. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
"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",
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
index 0cafc263cd7..b865716c3ce 100644
--- a/lib/l10n/cs_CZ.json
+++ b/lib/l10n/cs_CZ.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Byla detekována vzorová konfigurace",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Pravděpodobně byla zkopírována konfigurační nastavení ze vzorových souborů. Toto není podporováno a může poškodit vaši instalaci. Nahlédněte prosím do dokumentace před prováděním změn v souboru config.php",
"PHP %s or higher is required." : "Je vyžadováno PHP %s nebo vyšší.",
+ "PHP with a version less then %s is required." : "Je vyžadováno PHP ve verzi nižší než %s.",
+ "Following databases are supported: %s" : "Jsou podporovány následující databáze: %s",
"Help" : "Nápověda",
"Personal" : "Osobní",
"Settings" : "Nastavení",
@@ -16,6 +18,16 @@
"No app name specified" : "Nebyl zadan název aplikace",
"Unknown filetype" : "Neznámý typ souboru",
"Invalid image" : "Chybný obrázek",
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "last month" : "minulý měsíc",
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "last year" : "minulý rok",
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "seconds ago" : "před pár sekundami",
"Database Error" : "Chyba databáze",
"Please contact your system administrator." : "Kontaktujte prosím svého správce systému.",
"web services under your control" : "webové služby pod Vaší kontrolou",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Sdílení položky %s selhalo, protože úložiště sdílení %s nenalezla zdroj",
"Sharing %s failed, because the file could not be found in the file cache" : "Sdílení položky %s selhalo, protože soubor nebyl nalezen ve vyrovnávací paměti",
"Could not find category \"%s\"" : "Nelze nalézt kategorii \"%s\"",
- "seconds ago" : "před pár sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
- "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
- "today" : "dnes",
- "yesterday" : "včera",
- "_%n day go_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
- "last month" : "minulý měsíc",
- "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
- "last year" : "minulý rok",
- "years ago" : "před lety",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Pouze následující znaky jsou povoleny v uživatelském jménu: \"a-z\", \"A-Z\", \"0-9\" a \"_.@-\"",
"A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
"A valid password must be provided" : "Musíte zadat platné heslo",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Požádejte svého správce systému o instalaci tohoto modulu.",
"PHP module %s not installed." : "PHP modul %s není nainstalován.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Je zapnut PHP Safe Mode. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Je povoleno nastavení Magic Quotes. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
"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",
diff --git a/lib/l10n/cy_GB.js b/lib/l10n/cy_GB.js
index 1e9cae3d483..cd3772cd7c1 100644
--- a/lib/l10n/cy_GB.js
+++ b/lib/l10n/cy_GB.js
@@ -6,6 +6,16 @@ OC.L10N.register(
"Settings" : "Gosodiadau",
"Users" : "Defnyddwyr",
"Admin" : "Gweinyddu",
+ "today" : "heddiw",
+ "yesterday" : "ddoe",
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "last month" : "mis diwethaf",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "y llynedd",
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "seconds ago" : "eiliad yn ôl",
"web services under your control" : "gwasanaethau gwe a reolir gennych",
"Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
"Authentication error" : "Gwall dilysu",
@@ -22,16 +32,6 @@ OC.L10N.register(
"PostgreSQL username and/or password not valid" : "Enw a/neu gyfrinair PostgreSQL annilys",
"Set an admin username." : "Creu enw defnyddiwr i'r gweinyddwr.",
"Set an admin password." : "Gosod cyfrinair y gweinyddwr.",
- "Could not find category \"%s\"" : "Methu canfod categori \"%s\"",
- "seconds ago" : "eiliad yn ôl",
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","",""],
- "today" : "heddiw",
- "yesterday" : "ddoe",
- "_%n day go_::_%n days ago_" : ["","","",""],
- "last month" : "mis diwethaf",
- "_%n month ago_::_%n months ago_" : ["","","",""],
- "last year" : "y llynedd",
- "years ago" : "blwyddyn yn ôl"
+ "Could not find category \"%s\"" : "Methu canfod categori \"%s\""
},
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/lib/l10n/cy_GB.json b/lib/l10n/cy_GB.json
index c60d5ea976b..3d88f8b876b 100644
--- a/lib/l10n/cy_GB.json
+++ b/lib/l10n/cy_GB.json
@@ -4,6 +4,16 @@
"Settings" : "Gosodiadau",
"Users" : "Defnyddwyr",
"Admin" : "Gweinyddu",
+ "today" : "heddiw",
+ "yesterday" : "ddoe",
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "last month" : "mis diwethaf",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "y llynedd",
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "seconds ago" : "eiliad yn ôl",
"web services under your control" : "gwasanaethau gwe a reolir gennych",
"Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
"Authentication error" : "Gwall dilysu",
@@ -20,16 +30,6 @@
"PostgreSQL username and/or password not valid" : "Enw a/neu gyfrinair PostgreSQL annilys",
"Set an admin username." : "Creu enw defnyddiwr i'r gweinyddwr.",
"Set an admin password." : "Gosod cyfrinair y gweinyddwr.",
- "Could not find category \"%s\"" : "Methu canfod categori \"%s\"",
- "seconds ago" : "eiliad yn ôl",
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
- "_%n hour ago_::_%n hours ago_" : ["","","",""],
- "today" : "heddiw",
- "yesterday" : "ddoe",
- "_%n day go_::_%n days ago_" : ["","","",""],
- "last month" : "mis diwethaf",
- "_%n month ago_::_%n months ago_" : ["","","",""],
- "last year" : "y llynedd",
- "years ago" : "blwyddyn yn ôl"
+ "Could not find category \"%s\"" : "Methu canfod categori \"%s\""
},"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/lib/l10n/da.js b/lib/l10n/da.js
index f8154f68bdd..14e205c7ff9 100644
--- a/lib/l10n/da.js
+++ b/lib/l10n/da.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Eksempel for konfiguration registreret",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php",
"PHP %s or higher is required." : "Der kræves PHP %s eller nyere.",
+ "PHP with a version less then %s is required." : "Der kræves PHP i en version mindre end %s.",
+ "Following databases are supported: %s" : "Følgende databaser understøttes: %s",
"Help" : "Hjælp",
"Personal" : "Personligt",
"Settings" : "Indstillinger",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Intet app-navn angivet",
"Unknown filetype" : "Ukendt filtype",
"Invalid image" : "Ugyldigt billede",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dage siden"],
+ "last month" : "sidste måned",
+ "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
+ "last year" : "sidste år",
+ "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
+ "seconds ago" : "sekunder siden",
"Database Error" : "Databasefejl",
"Please contact your system administrator." : "Kontakt venligst din systemadministrator.",
"web services under your control" : "Webtjenester under din kontrol",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s",
"Sharing %s failed, because the file could not be found in the file cache" : "Deling af %s mislykkedes, fordi filen ikke kunne findes i fil-cachen",
"Could not find category \"%s\"" : "Kunne ikke finde kategorien \"%s\"",
- "seconds ago" : "sekunder siden",
- "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
- "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["%n dag siden","%n dage siden"],
- "last month" : "sidste måned",
- "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
- "last year" : "sidste år",
- "years ago" : "år siden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Det er kun tilladt at benytte følgene karakterer i et brugernavn \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Et gyldigt brugernavn skal angives",
"A valid password must be provided" : "En gyldig adgangskode skal angives",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Du bedes anmode din serveradministrator om at installere modulet.",
"PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er slået til. ownCload kræver at denne er slået fra, for at fungere ordentligt.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er slået til. ownCloud kræver at denne er slået fra, for at fungere ordentligt.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremgår stadig som fraværende?",
"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",
diff --git a/lib/l10n/da.json b/lib/l10n/da.json
index 39d2a4e4902..2ae138c6137 100644
--- a/lib/l10n/da.json
+++ b/lib/l10n/da.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Eksempel for konfiguration registreret",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php",
"PHP %s or higher is required." : "Der kræves PHP %s eller nyere.",
+ "PHP with a version less then %s is required." : "Der kræves PHP i en version mindre end %s.",
+ "Following databases are supported: %s" : "Følgende databaser understøttes: %s",
"Help" : "Hjælp",
"Personal" : "Personligt",
"Settings" : "Indstillinger",
@@ -16,6 +18,16 @@
"No app name specified" : "Intet app-navn angivet",
"Unknown filetype" : "Ukendt filtype",
"Invalid image" : "Ugyldigt billede",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dage siden"],
+ "last month" : "sidste måned",
+ "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
+ "last year" : "sidste år",
+ "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
+ "seconds ago" : "sekunder siden",
"Database Error" : "Databasefejl",
"Please contact your system administrator." : "Kontakt venligst din systemadministrator.",
"web services under your control" : "Webtjenester under din kontrol",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s",
"Sharing %s failed, because the file could not be found in the file cache" : "Deling af %s mislykkedes, fordi filen ikke kunne findes i fil-cachen",
"Could not find category \"%s\"" : "Kunne ikke finde kategorien \"%s\"",
- "seconds ago" : "sekunder siden",
- "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
- "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["%n dag siden","%n dage siden"],
- "last month" : "sidste måned",
- "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
- "last year" : "sidste år",
- "years ago" : "år siden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Det er kun tilladt at benytte følgene karakterer i et brugernavn \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Et gyldigt brugernavn skal angives",
"A valid password must be provided" : "En gyldig adgangskode skal angives",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Du bedes anmode din serveradministrator om at installere modulet.",
"PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er slået til. ownCload kræver at denne er slået fra, for at fungere ordentligt.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er slået til. ownCloud kræver at denne er slået fra, for at fungere ordentligt.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremgår stadig som fraværende?",
"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",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 8417825b4a9..b832480496d 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -6,8 +6,10 @@ OC.L10N.register(
"See %s" : "Siehe %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
"Sample configuration detected" : "Beispielkonfiguration gefunden",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies wird nicht unterstützt und kann zum Abruch Ihrer Installation führen. Bitte lies die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
+ "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Es wurde kein Applikation-Name angegeben",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "seconds ago" : "Gerade eben",
"Database Error" : "Datenbankfehler",
"Please contact your system administrator." : "Bitte kontaktiere Deinen Systemadministrator.",
"web services under your control" : "Web-Services unter Deiner Kontrolle",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
"Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
"Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
- "seconds ago" : "Gerade eben",
- "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
- "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
- "today" : "Heute",
- "yesterday" : "Gestern",
- "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
- "last month" : "Letzten Monat",
- "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
- "last year" : "Letztes Jahr",
- "years ago" : "Vor Jahren",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: \"a-z\", \"A-Z\", \"0-9\" und \"_.@-\"",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Bitte frage, für die Installation des Moduls, Deinen Server-Administrator.",
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte frage zur Aktualisierung von PHP auf die letzte Version Deinen Server-Administrator. Deine PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
"Please ask your server administrator to restart the web server." : "Bitte frage Deinen Server-Administrator zum Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 3ef5638db98..c52569f99de 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -4,8 +4,10 @@
"See %s" : "Siehe %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
"Sample configuration detected" : "Beispielkonfiguration gefunden",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies wird nicht unterstützt und kann zum Abruch Ihrer Installation führen. Bitte lies die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
+ "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
@@ -16,6 +18,16 @@
"No app name specified" : "Es wurde kein Applikation-Name angegeben",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "seconds ago" : "Gerade eben",
"Database Error" : "Datenbankfehler",
"Please contact your system administrator." : "Bitte kontaktiere Deinen Systemadministrator.",
"web services under your control" : "Web-Services unter Deiner Kontrolle",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
"Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
"Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
- "seconds ago" : "Gerade eben",
- "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
- "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
- "today" : "Heute",
- "yesterday" : "Gestern",
- "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
- "last month" : "Letzten Monat",
- "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
- "last year" : "Letztes Jahr",
- "years ago" : "Vor Jahren",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: \"a-z\", \"A-Z\", \"0-9\" und \"_.@-\"",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Bitte frage, für die Installation des Moduls, Deinen Server-Administrator.",
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte frage zur Aktualisierung von PHP auf die letzte Version Deinen Server-Administrator. Deine PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
"Please ask your server administrator to restart the web server." : "Bitte frage Deinen Server-Administrator zum Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
diff --git a/lib/l10n/de_AT.js b/lib/l10n/de_AT.js
index c36f0b9371d..3c567ba4d2d 100644
--- a/lib/l10n/de_AT.js
+++ b/lib/l10n/de_AT.js
@@ -4,9 +4,10 @@ OC.L10N.register(
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de_AT.json b/lib/l10n/de_AT.json
index da5c7feaad2..6e81c34cf1a 100644
--- a/lib/l10n/de_AT.json
+++ b/lib/l10n/de_AT.json
@@ -2,9 +2,10 @@
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index 087d771ee66..4d37b58a664 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Beispielkonfiguration gefunden",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lesen Sie die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
+ "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Es wurde kein Applikation-Name angegeben",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "seconds ago" : "Gerade eben",
"Database Error" : "Datenbankfehler",
"Please contact your system administrator." : "Bitte kontaktieren Sie Ihren Systemadministrator.",
"web services under your control" : "Web-Services unter Ihrer Kontrolle",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
"Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
"Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
- "seconds ago" : "Gerade eben",
- "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
- "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
- "today" : "Heute",
- "yesterday" : "Gestern",
- "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
- "last month" : "Letzten Monat",
- "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
- "last year" : "Letztes Jahr",
- "years ago" : "Vor Jahren",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: »a-z«, »A-Z«, »0-9« und »_.@-«",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Bitte fragen Sie, für die Installation des Moduls, Ihren Server-Administrator.",
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte fragen Sie zur Aktualisierung von PHP auf die letzte Version Ihren Server-Administrator. Ihre PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
"Please ask your server administrator to restart the web server." : "Bitte fragen Sie Ihren Server-Administrator zum Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index f67a201d32e..965713bdccb 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Beispielkonfiguration gefunden",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lesen Sie die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
+ "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
"Help" : "Hilfe",
"Personal" : "Persönlich",
"Settings" : "Einstellungen",
@@ -16,6 +18,16 @@
"No app name specified" : "Es wurde kein Applikation-Name angegeben",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "seconds ago" : "Gerade eben",
"Database Error" : "Datenbankfehler",
"Please contact your system administrator." : "Bitte kontaktieren Sie Ihren Systemadministrator.",
"web services under your control" : "Web-Services unter Ihrer Kontrolle",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
"Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
"Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
- "seconds ago" : "Gerade eben",
- "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
- "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
- "today" : "Heute",
- "yesterday" : "Gestern",
- "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
- "last month" : "Letzten Monat",
- "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
- "last year" : "Letztes Jahr",
- "years ago" : "Vor Jahren",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: »a-z«, »A-Z«, »0-9« und »_.@-«",
"A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
"A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Bitte fragen Sie, für die Installation des Moduls, Ihren Server-Administrator.",
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte fragen Sie zur Aktualisierung von PHP auf die letzte Version Ihren Server-Administrator. Ihre PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
"Please ask your server administrator to restart the web server." : "Bitte fragen Sie Ihren Server-Administrator zum Neustart des Webservers.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
diff --git a/lib/l10n/el.js b/lib/l10n/el.js
index f0643b73e37..39c9531b0cb 100644
--- a/lib/l10n/el.js
+++ b/lib/l10n/el.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής",
"Unknown filetype" : "Άγνωστος τύπος αρχείου",
"Invalid image" : "Μη έγκυρη εικόνα",
+ "today" : "σήμερα",
+ "yesterday" : "χτες",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "τελευταίο μήνα",
+ "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
+ "last year" : "τελευταίο χρόνο",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
+ "seconds ago" : "δευτερόλεπτα πριν",
"web services under your control" : "υπηρεσίες δικτύου υπό τον έλεγχό σας",
"App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη",
"Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ",
"Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων",
"Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"",
- "seconds ago" : "δευτερόλεπτα πριν",
- "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
- "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
- "today" : "σήμερα",
- "yesterday" : "χτες",
- "_%n day go_::_%n days ago_" : ["","%n ημέρες πριν"],
- "last month" : "τελευταίο μήνα",
- "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
- "last year" : "τελευταίο χρόνο",
- "years ago" : "χρόνια πριν",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Μόνο οι παρακάτων χαρακτήρες επιτρέπονται σε ένα όνομα χρήστη: \"a-z\", \"A-Z\", \"0-9\" και \"_.@-\"",
"A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
"A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.",
"PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Η Ασφαλής Λειτουργία PHP έχει ενεργοποιηθεί. Το ownCloud απαιτεί να είναι απενεργοποιημένη για να λειτουργεί σωστά.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Η Ασφαλής Λειτουργεία PHP είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Οι Magic Quotes είναι ενεργοποιημένες. Το ownCloud απαιτεί να είναι απενεργοποιημένες για να λειτουργεί σωστά.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Οι Magic Quotes είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
"PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
"Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
"PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
diff --git a/lib/l10n/el.json b/lib/l10n/el.json
index b1895fbb79b..14b0757f7ed 100644
--- a/lib/l10n/el.json
+++ b/lib/l10n/el.json
@@ -16,6 +16,16 @@
"No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής",
"Unknown filetype" : "Άγνωστος τύπος αρχείου",
"Invalid image" : "Μη έγκυρη εικόνα",
+ "today" : "σήμερα",
+ "yesterday" : "χτες",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "τελευταίο μήνα",
+ "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
+ "last year" : "τελευταίο χρόνο",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
+ "seconds ago" : "δευτερόλεπτα πριν",
"web services under your control" : "υπηρεσίες δικτύου υπό τον έλεγχό σας",
"App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη",
"Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ",
"Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων",
"Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"",
- "seconds ago" : "δευτερόλεπτα πριν",
- "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
- "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
- "today" : "σήμερα",
- "yesterday" : "χτες",
- "_%n day go_::_%n days ago_" : ["","%n ημέρες πριν"],
- "last month" : "τελευταίο μήνα",
- "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
- "last year" : "τελευταίο χρόνο",
- "years ago" : "χρόνια πριν",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Μόνο οι παρακάτων χαρακτήρες επιτρέπονται σε ένα όνομα χρήστη: \"a-z\", \"A-Z\", \"0-9\" και \"_.@-\"",
"A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
"A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.",
"PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Η Ασφαλής Λειτουργία PHP έχει ενεργοποιηθεί. Το ownCloud απαιτεί να είναι απενεργοποιημένη για να λειτουργεί σωστά.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Η Ασφαλής Λειτουργεία PHP είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Οι Magic Quotes είναι ενεργοποιημένες. Το ownCloud απαιτεί να είναι απενεργοποιημένες για να λειτουργεί σωστά.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Οι Magic Quotes είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
"PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
"Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
"PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
diff --git a/lib/l10n/en@pirate.js b/lib/l10n/en@pirate.js
index ad57745199e..f1dac5a791a 100644
--- a/lib/l10n/en@pirate.js
+++ b/lib/l10n/en@pirate.js
@@ -1,10 +1,11 @@
OC.L10N.register(
"lib",
{
- "web services under your control" : "web services under your control",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "web services under your control" : "web services under your control"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/en@pirate.json b/lib/l10n/en@pirate.json
index c2cd03ea8f3..911734b3804 100644
--- a/lib/l10n/en@pirate.json
+++ b/lib/l10n/en@pirate.json
@@ -1,8 +1,9 @@
{ "translations": {
- "web services under your control" : "web services under your control",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "web services under your control" : "web services under your control"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index ad098f96a77..861fc29290e 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Sample configuration detected",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php",
"PHP %s or higher is required." : "PHP %s or higher is required.",
+ "PHP with a version less then %s is required." : "PHP with a version earlier than %s is required.",
+ "Following databases are supported: %s" : "Following databases are supported: %s",
"Help" : "Help",
"Personal" : "Personal",
"Settings" : "Settings",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "No app name specified",
"Unknown filetype" : "Unknown filetype",
"Invalid image" : "Invalid image",
+ "today" : "today",
+ "yesterday" : "yesterday",
+ "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"],
+ "last month" : "last month",
+ "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
+ "last year" : "last year",
+ "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"],
+ "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
+ "seconds ago" : "seconds ago",
"Database Error" : "Database Error",
"Please contact your system administrator." : "Please contact your system administrator.",
"web services under your control" : "web services under your control",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Sharing %s failed, because the sharing backend for %s could not find its source",
"Sharing %s failed, because the file could not be found in the file cache" : "Sharing %s failed, because the file could not be found in the file cache",
"Could not find category \"%s\"" : "Could not find category \"%s\"",
- "seconds ago" : "seconds ago",
- "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
- "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
- "today" : "today",
- "yesterday" : "yesterday",
- "_%n day go_::_%n days ago_" : ["%n day go","%n days ago"],
- "last month" : "last month",
- "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
- "last year" : "last year",
- "years ago" : "years ago",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "A valid username must be provided",
"A valid password must be provided" : "A valid password must be provided",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Please ask your server administrator to install the module.",
"PHP module %s not installed." : "PHP module %s not installed.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
"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",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index bdd63ddfa14..054f4255212 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Sample configuration detected",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php",
"PHP %s or higher is required." : "PHP %s or higher is required.",
+ "PHP with a version less then %s is required." : "PHP with a version earlier than %s is required.",
+ "Following databases are supported: %s" : "Following databases are supported: %s",
"Help" : "Help",
"Personal" : "Personal",
"Settings" : "Settings",
@@ -16,6 +18,16 @@
"No app name specified" : "No app name specified",
"Unknown filetype" : "Unknown filetype",
"Invalid image" : "Invalid image",
+ "today" : "today",
+ "yesterday" : "yesterday",
+ "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"],
+ "last month" : "last month",
+ "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
+ "last year" : "last year",
+ "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"],
+ "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
+ "seconds ago" : "seconds ago",
"Database Error" : "Database Error",
"Please contact your system administrator." : "Please contact your system administrator.",
"web services under your control" : "web services under your control",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Sharing %s failed, because the sharing backend for %s could not find its source",
"Sharing %s failed, because the file could not be found in the file cache" : "Sharing %s failed, because the file could not be found in the file cache",
"Could not find category \"%s\"" : "Could not find category \"%s\"",
- "seconds ago" : "seconds ago",
- "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
- "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
- "today" : "today",
- "yesterday" : "yesterday",
- "_%n day go_::_%n days ago_" : ["%n day go","%n days ago"],
- "last month" : "last month",
- "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
- "last year" : "last year",
- "years ago" : "years ago",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "A valid username must be provided",
"A valid password must be provided" : "A valid password must be provided",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Please ask your server administrator to install the module.",
"PHP module %s not installed." : "PHP module %s not installed.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
"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",
diff --git a/lib/l10n/en_NZ.js b/lib/l10n/en_NZ.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/en_NZ.js
+++ b/lib/l10n/en_NZ.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/en_NZ.json b/lib/l10n/en_NZ.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/en_NZ.json
+++ b/lib/l10n/en_NZ.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/eo.js b/lib/l10n/eo.js
index 92c9bf52df5..fdf8d5b5ab0 100644
--- a/lib/l10n/eo.js
+++ b/lib/l10n/eo.js
@@ -11,6 +11,16 @@ OC.L10N.register(
"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplikaĵo “%s” ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud.",
"Unknown filetype" : "Ne konatas dosiertipo",
"Invalid image" : "Ne validas bildo",
+ "today" : "hodiaŭ",
+ "yesterday" : "hieraŭ",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "lastamonate",
+ "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
+ "last year" : "lastajare",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
+ "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
+ "seconds ago" : "sekundoj antaŭe",
"web services under your control" : "TTT-servoj regataj de vi",
"App directory already exists" : "La dosierujo de la aplikaĵo jam ekzistas",
"App does not provide an info.xml file" : "La aplikaĵo ne provizas dosieron info.xml",
@@ -35,16 +45,6 @@ OC.L10N.register(
"%s shared »%s« with you" : "%s kunhavigis “%s” kun vi",
"You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s",
"Could not find category \"%s\"" : "Ne troviĝis kategorio “%s”",
- "seconds ago" : "sekundoj antaŭe",
- "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
- "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
- "today" : "hodiaŭ",
- "yesterday" : "hieraŭ",
- "_%n day go_::_%n days ago_" : ["","antaŭ %n tagoj"],
- "last month" : "lastamonate",
- "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
- "last year" : "lastajare",
- "years ago" : "jaroj antaŭe",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Nur la jenaj signoj permesatas en uzantonomo: «a-z», «A-Z», «0-9» kaj «_.@-»",
"A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
"A valid password must be provided" : "Valida pasvorto devas proviziĝi",
diff --git a/lib/l10n/eo.json b/lib/l10n/eo.json
index b1d12a9ce7b..bd433423828 100644
--- a/lib/l10n/eo.json
+++ b/lib/l10n/eo.json
@@ -9,6 +9,16 @@
"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplikaĵo “%s” ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud.",
"Unknown filetype" : "Ne konatas dosiertipo",
"Invalid image" : "Ne validas bildo",
+ "today" : "hodiaŭ",
+ "yesterday" : "hieraŭ",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "lastamonate",
+ "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
+ "last year" : "lastajare",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
+ "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
+ "seconds ago" : "sekundoj antaŭe",
"web services under your control" : "TTT-servoj regataj de vi",
"App directory already exists" : "La dosierujo de la aplikaĵo jam ekzistas",
"App does not provide an info.xml file" : "La aplikaĵo ne provizas dosieron info.xml",
@@ -33,16 +43,6 @@
"%s shared »%s« with you" : "%s kunhavigis “%s” kun vi",
"You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s",
"Could not find category \"%s\"" : "Ne troviĝis kategorio “%s”",
- "seconds ago" : "sekundoj antaŭe",
- "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
- "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
- "today" : "hodiaŭ",
- "yesterday" : "hieraŭ",
- "_%n day go_::_%n days ago_" : ["","antaŭ %n tagoj"],
- "last month" : "lastamonate",
- "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
- "last year" : "lastajare",
- "years ago" : "jaroj antaŭe",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Nur la jenaj signoj permesatas en uzantonomo: «a-z», «A-Z», «0-9» kaj «_.@-»",
"A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
"A valid password must be provided" : "Valida pasvorto devas proviziĝi",
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index e332a693b05..fdbac2de6f6 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "No se ha especificado nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "hace segundos",
"Database Error" : "Error en la base de datos",
"Please contact your system administrator." : "Por favor contacte al administrador del sistema.",
"web services under your control" : "Servicios web bajo su control",
@@ -81,16 +91,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque el motor compartido para %s podría no encontrar su origen",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartiendo %s ha fallado, ya que el archivo no pudo ser encontrado en el cache de archivo",
"Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
- "seconds ago" : "hace segundos",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "año pasado",
- "years ago" : "hace años",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
@@ -107,10 +107,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Consulte al administrador de su servidor para instalar el módulo.",
"PHP module %s not installed." : "El ódulo PHP %s no está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe mode está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Modo Seguro de PHP es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Contacte al administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Consulte a su administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
"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.",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index be4d69b63cd..2f46806394a 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -16,6 +16,16 @@
"No app name specified" : "No se ha especificado nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "hace segundos",
"Database Error" : "Error en la base de datos",
"Please contact your system administrator." : "Por favor contacte al administrador del sistema.",
"web services under your control" : "Servicios web bajo su control",
@@ -79,16 +89,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque el motor compartido para %s podría no encontrar su origen",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartiendo %s ha fallado, ya que el archivo no pudo ser encontrado en el cache de archivo",
"Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
- "seconds ago" : "hace segundos",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "año pasado",
- "years ago" : "hace años",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
@@ -105,10 +105,6 @@
"Please ask your server administrator to install the module." : "Consulte al administrador de su servidor para instalar el módulo.",
"PHP module %s not installed." : "El ódulo PHP %s no está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe mode está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Modo Seguro de PHP es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Contacte al administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Consulte a su administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
"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.",
diff --git a/lib/l10n/es_AR.js b/lib/l10n/es_AR.js
index eb60e6eacbe..bc291ddb3b6 100644
--- a/lib/l10n/es_AR.js
+++ b/lib/l10n/es_AR.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "No fue especificado el nombre de la app",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "el mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "el año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "segundos atrás",
"web services under your control" : "servicios web sobre los que tenés control",
"App directory already exists" : "El directorio de la app ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio para la app. Corregí los permisos. %s",
@@ -40,16 +50,6 @@ OC.L10N.register(
"Set an admin password." : "Configurar una contraseña de administrador.",
"%s shared »%s« with you" : "%s compartió \"%s\" con vos",
"Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "el mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "el año pasado",
- "years ago" : "años atrás",
"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"
},
diff --git a/lib/l10n/es_AR.json b/lib/l10n/es_AR.json
index 237819d2837..e1245fabfef 100644
--- a/lib/l10n/es_AR.json
+++ b/lib/l10n/es_AR.json
@@ -7,6 +7,16 @@
"No app name specified" : "No fue especificado el nombre de la app",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "el mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "el año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "segundos atrás",
"web services under your control" : "servicios web sobre los que tenés control",
"App directory already exists" : "El directorio de la app ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio para la app. Corregí los permisos. %s",
@@ -38,16 +48,6 @@
"Set an admin password." : "Configurar una contraseña de administrador.",
"%s shared »%s« with you" : "%s compartió \"%s\" con vos",
"Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "el mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "el año pasado",
- "years ago" : "años atrás",
"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"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_BO.js b/lib/l10n/es_BO.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_BO.js
+++ b/lib/l10n/es_BO.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_BO.json b/lib/l10n/es_BO.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_BO.json
+++ b/lib/l10n/es_BO.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_CL.js b/lib/l10n/es_CL.js
index 12f107f8ddf..84e47673937 100644
--- a/lib/l10n/es_CL.js
+++ b/lib/l10n/es_CL.js
@@ -14,19 +14,19 @@ OC.L10N.register(
"No app name specified" : "No se especificó el nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen no válida",
- "web services under your control" : "Servicios Web bajo su control",
- "App directory already exists" : "El directorio de la aplicación ya existe",
- "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
- "No source specified when installing app" : "No se especificó el origen al instalar la aplicación",
- "seconds ago" : "segundos antes",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "hoy",
"yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "mes anterior",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "último año",
- "years ago" : "años anteriores"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "segundos antes",
+ "web services under your control" : "Servicios Web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la aplicación"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CL.json b/lib/l10n/es_CL.json
index 4c66ed935ac..946cf11dc09 100644
--- a/lib/l10n/es_CL.json
+++ b/lib/l10n/es_CL.json
@@ -12,19 +12,19 @@
"No app name specified" : "No se especificó el nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen no válida",
- "web services under your control" : "Servicios Web bajo su control",
- "App directory already exists" : "El directorio de la aplicación ya existe",
- "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
- "No source specified when installing app" : "No se especificó el origen al instalar la aplicación",
- "seconds ago" : "segundos antes",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "hoy",
"yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "mes anterior",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "último año",
- "years ago" : "años anteriores"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "segundos antes",
+ "web services under your control" : "Servicios Web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la aplicación"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_CO.js b/lib/l10n/es_CO.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_CO.js
+++ b/lib/l10n/es_CO.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CO.json b/lib/l10n/es_CO.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_CO.json
+++ b/lib/l10n/es_CO.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_CR.js b/lib/l10n/es_CR.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_CR.js
+++ b/lib/l10n/es_CR.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CR.json b/lib/l10n/es_CR.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_CR.json
+++ b/lib/l10n/es_CR.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_EC.js b/lib/l10n/es_EC.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_EC.js
+++ b/lib/l10n/es_EC.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_EC.json b/lib/l10n/es_EC.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_EC.json
+++ b/lib/l10n/es_EC.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js
index 2e2083415e5..e739b14c9fd 100644
--- a/lib/l10n/es_MX.js
+++ b/lib/l10n/es_MX.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "No se ha especificado nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "hace segundos",
"web services under your control" : "Servicios web bajo su control",
"App directory already exists" : "El directorio de la aplicación ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
@@ -40,16 +50,6 @@ OC.L10N.register(
"Set an admin password." : "Configurar la contraseña del administrador.",
"%s shared »%s« with you" : "%s ha compartido »%s« contigo",
"Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
- "seconds ago" : "hace segundos",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "año pasado",
- "years ago" : "hace años",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida"
},
diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json
index b9fe48a6eea..9b63e52244c 100644
--- a/lib/l10n/es_MX.json
+++ b/lib/l10n/es_MX.json
@@ -7,6 +7,16 @@
"No app name specified" : "No se ha especificado nombre de la aplicación",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "seconds ago" : "hace segundos",
"web services under your control" : "Servicios web bajo su control",
"App directory already exists" : "El directorio de la aplicación ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
@@ -38,16 +48,6 @@
"Set an admin password." : "Configurar la contraseña del administrador.",
"%s shared »%s« with you" : "%s ha compartido »%s« contigo",
"Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
- "seconds ago" : "hace segundos",
- "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
- "today" : "hoy",
- "yesterday" : "ayer",
- "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
- "last month" : "mes pasado",
- "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
- "last year" : "año pasado",
- "years ago" : "hace años",
"A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_PE.js b/lib/l10n/es_PE.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_PE.js
+++ b/lib/l10n/es_PE.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_PE.json b/lib/l10n/es_PE.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_PE.json
+++ b/lib/l10n/es_PE.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_PY.js b/lib/l10n/es_PY.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_PY.js
+++ b/lib/l10n/es_PY.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_PY.json b/lib/l10n/es_PY.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_PY.json
+++ b/lib/l10n/es_PY.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_US.js b/lib/l10n/es_US.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_US.js
+++ b/lib/l10n/es_US.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_US.json b/lib/l10n/es_US.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_US.json
+++ b/lib/l10n/es_US.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/es_UY.js b/lib/l10n/es_UY.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/es_UY.js
+++ b/lib/l10n/es_UY.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_UY.json b/lib/l10n/es_UY.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/es_UY.json
+++ b/lib/l10n/es_UY.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"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 b8a5e326086..1e48fc90216 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Ühegi rakendi nime pole määratletud",
"Unknown filetype" : "Tundmatu failitüüp",
"Invalid image" : "Vigane pilt",
+ "today" : "täna",
+ "yesterday" : "eile",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "viimasel kuul",
+ "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
+ "last year" : "viimasel aastal",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
+ "seconds ago" : "sekundit tagasi",
"web services under your control" : "veebitenused sinu kontrolli all",
"App directory already exists" : "Rakendi kataloog on juba olemas",
"Can't create app folder. Please fix permissions. %s" : "Ei saa luua rakendi kataloogi. Palun korrigeeri õigusi. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat",
"Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist",
"Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
- "seconds ago" : "sekundit tagasi",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
- "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
- "today" : "täna",
- "yesterday" : "eile",
- "_%n day go_::_%n days ago_" : ["","%n päeva tagasi"],
- "last month" : "viimasel kuul",
- "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
- "last year" : "viimasel aastal",
- "years ago" : "aastat tagasi",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kasutajanimes on lubatud ainult järgnevad tähemärgid: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
"A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
"A valid password must be provided" : "Sisesta nõuetele vastav parool",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"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",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index d3bdd8ece8c..05486f6d8a0 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -16,6 +16,16 @@
"No app name specified" : "Ühegi rakendi nime pole määratletud",
"Unknown filetype" : "Tundmatu failitüüp",
"Invalid image" : "Vigane pilt",
+ "today" : "täna",
+ "yesterday" : "eile",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "viimasel kuul",
+ "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
+ "last year" : "viimasel aastal",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
+ "seconds ago" : "sekundit tagasi",
"web services under your control" : "veebitenused sinu kontrolli all",
"App directory already exists" : "Rakendi kataloog on juba olemas",
"Can't create app folder. Please fix permissions. %s" : "Ei saa luua rakendi kataloogi. Palun korrigeeri õigusi. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat",
"Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist",
"Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
- "seconds ago" : "sekundit tagasi",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
- "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
- "today" : "täna",
- "yesterday" : "eile",
- "_%n day go_::_%n days ago_" : ["","%n päeva tagasi"],
- "last month" : "viimasel kuul",
- "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
- "last year" : "viimasel aastal",
- "years ago" : "aastat tagasi",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kasutajanimes on lubatud ainult järgnevad tähemärgid: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
"A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
"A valid password must be provided" : "Sisesta nõuetele vastav parool",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"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",
diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js
index a312260ce51..7af354cdf6c 100644
--- a/lib/l10n/eu.js
+++ b/lib/l10n/eu.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Ez da aplikazioaren izena zehaztu",
"Unknown filetype" : "Fitxategi mota ezezaguna",
"Invalid image" : "Baliogabeko irudia",
+ "today" : "gaur",
+ "yesterday" : "atzo",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "joan den hilabetean",
+ "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
+ "last year" : "joan den urtean",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
+ "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
+ "seconds ago" : "segundu",
"web services under your control" : "web zerbitzuak zure kontrolpean",
"App directory already exists" : "Aplikazioaren karpeta dagoeneko existitzen da",
"Can't create app folder. Please fix permissions. %s" : "Ezin izan da aplikazioaren karpeta sortu. Mesdez konpondu baimenak. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s elkarbanatzeak huts egin du, %sren elkarbanaketa motorrak bere iturria aurkitu ezin duelako",
"Sharing %s failed, because the file could not be found in the file cache" : "%s elkarbanatzeak huts egin du, fitxategia katxean aurkitu ez delako",
"Could not find category \"%s\"" : "Ezin da \"%s\" kategoria aurkitu",
- "seconds ago" : "segundu",
- "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
- "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
- "today" : "gaur",
- "yesterday" : "atzo",
- "_%n day go_::_%n days ago_" : ["orain dela egun %n","orain dela %n egun"],
- "last month" : "joan den hilabetean",
- "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
- "last year" : "joan den urtean",
- "years ago" : "urte",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bakarrik hurrengo karaketerak onartzen dira erabiltzaile izenean: \"a-z\", \"A-Z\", \"0-9\", eta \"_.@-\"",
"A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
"A valid password must be provided" : "Baliozko pasahitza eman behar da",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
"PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP SafeMode gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
"Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json
index 39c82354efd..3735988aab8 100644
--- a/lib/l10n/eu.json
+++ b/lib/l10n/eu.json
@@ -16,6 +16,16 @@
"No app name specified" : "Ez da aplikazioaren izena zehaztu",
"Unknown filetype" : "Fitxategi mota ezezaguna",
"Invalid image" : "Baliogabeko irudia",
+ "today" : "gaur",
+ "yesterday" : "atzo",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "joan den hilabetean",
+ "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
+ "last year" : "joan den urtean",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
+ "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
+ "seconds ago" : "segundu",
"web services under your control" : "web zerbitzuak zure kontrolpean",
"App directory already exists" : "Aplikazioaren karpeta dagoeneko existitzen da",
"Can't create app folder. Please fix permissions. %s" : "Ezin izan da aplikazioaren karpeta sortu. Mesdez konpondu baimenak. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s elkarbanatzeak huts egin du, %sren elkarbanaketa motorrak bere iturria aurkitu ezin duelako",
"Sharing %s failed, because the file could not be found in the file cache" : "%s elkarbanatzeak huts egin du, fitxategia katxean aurkitu ez delako",
"Could not find category \"%s\"" : "Ezin da \"%s\" kategoria aurkitu",
- "seconds ago" : "segundu",
- "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
- "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
- "today" : "gaur",
- "yesterday" : "atzo",
- "_%n day go_::_%n days ago_" : ["orain dela egun %n","orain dela %n egun"],
- "last month" : "joan den hilabetean",
- "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
- "last year" : "joan den urtean",
- "years ago" : "urte",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bakarrik hurrengo karaketerak onartzen dira erabiltzaile izenean: \"a-z\", \"A-Z\", \"0-9\", eta \"_.@-\"",
"A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
"A valid password must be provided" : "Baliozko pasahitza eman behar da",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
"PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP SafeMode gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
"Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
diff --git a/lib/l10n/eu_ES.js b/lib/l10n/eu_ES.js
index a9f41884d58..554bbf836a5 100644
--- a/lib/l10n/eu_ES.js
+++ b/lib/l10n/eu_ES.js
@@ -2,9 +2,10 @@ OC.L10N.register(
"lib",
{
"Personal" : "Pertsonala",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/eu_ES.json b/lib/l10n/eu_ES.json
index 9ac9f22cb92..eecaa4e9aea 100644
--- a/lib/l10n/eu_ES.json
+++ b/lib/l10n/eu_ES.json
@@ -1,8 +1,9 @@
{ "translations": {
"Personal" : "Pertsonala",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
index 451274e4767..e5cacb279d4 100644
--- a/lib/l10n/fa.js
+++ b/lib/l10n/fa.js
@@ -8,6 +8,16 @@ OC.L10N.register(
"Admin" : "مدیر",
"Unknown filetype" : "نوع فایل ناشناخته",
"Invalid image" : "عکس نامعتبر",
+ "today" : "امروز",
+ "yesterday" : "دیروز",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "ماه قبل",
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "last year" : "سال قبل",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "seconds ago" : "ثانیه‌ها پیش",
"web services under your control" : "سرویس های تحت وب در کنترل شما",
"Application is not enabled" : "برنامه فعال نشده است",
"Authentication error" : "خطا در اعتبار سنجی",
@@ -27,16 +37,6 @@ OC.L10N.register(
"Set an admin password." : "یک رمزعبور برای مدیر تنظیم نمایید.",
"%s shared »%s« with you" : "%s به اشتراک گذاشته شده است »%s« توسط شما",
"Could not find category \"%s\"" : "دسته بندی %s یافت نشد",
- "seconds ago" : "ثانیه‌ها پیش",
- "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
- "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
- "today" : "امروز",
- "yesterday" : "دیروز",
- "_%n day go_::_%n days ago_" : ["%n روز قبل"],
- "last month" : "ماه قبل",
- "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
- "last year" : "سال قبل",
- "years ago" : "سال‌های قبل",
"A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
"A valid password must be provided" : "رمز عبور صحیح باید وارد شود"
},
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
index 9dfeaa59954..608d66645da 100644
--- a/lib/l10n/fa.json
+++ b/lib/l10n/fa.json
@@ -6,6 +6,16 @@
"Admin" : "مدیر",
"Unknown filetype" : "نوع فایل ناشناخته",
"Invalid image" : "عکس نامعتبر",
+ "today" : "امروز",
+ "yesterday" : "دیروز",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "ماه قبل",
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "last year" : "سال قبل",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "seconds ago" : "ثانیه‌ها پیش",
"web services under your control" : "سرویس های تحت وب در کنترل شما",
"Application is not enabled" : "برنامه فعال نشده است",
"Authentication error" : "خطا در اعتبار سنجی",
@@ -25,16 +35,6 @@
"Set an admin password." : "یک رمزعبور برای مدیر تنظیم نمایید.",
"%s shared »%s« with you" : "%s به اشتراک گذاشته شده است »%s« توسط شما",
"Could not find category \"%s\"" : "دسته بندی %s یافت نشد",
- "seconds ago" : "ثانیه‌ها پیش",
- "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
- "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
- "today" : "امروز",
- "yesterday" : "دیروز",
- "_%n day go_::_%n days ago_" : ["%n روز قبل"],
- "last month" : "ماه قبل",
- "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
- "last year" : "سال قبل",
- "years ago" : "سال‌های قبل",
"A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
"A valid password must be provided" : "رمز عبور صحیح باید وارد شود"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
index 4e609e2ac28..e8cd3e7dc69 100644
--- a/lib/l10n/fi_FI.js
+++ b/lib/l10n/fi_FI.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.",
"Sample configuration detected" : "Esimerkkimääritykset havaittu",
"PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.",
+ "Following databases are supported: %s" : "Seuraavat tietokannat ovat tuettuja: %s",
"Help" : "Ohje",
"Personal" : "Henkilökohtainen",
"Settings" : "Asetukset",
@@ -17,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Sovelluksen nimeä ei määritelty",
"Unknown filetype" : "Tuntematon tiedostotyyppi",
"Invalid image" : "Virheellinen kuva",
+ "today" : "tänään",
+ "yesterday" : "eilen",
+ "_%n day ago_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
+ "last month" : "viime kuussa",
+ "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
+ "last year" : "viime vuonna",
+ "_%n year ago_::_%n years ago_" : ["%n vuosi sitten","%n vuotta sitten"],
+ "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
+ "seconds ago" : "sekuntia sitten",
"Database Error" : "Tietokantavirhe",
"Please contact your system administrator." : "Ole yhteydessä järjestelmän ylläpitäjään.",
"web services under your control" : "verkkopalvelut hallinnassasi",
@@ -70,16 +81,6 @@ OC.L10N.register(
"Sharing %s failed, because resharing is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen uudelleen ei ole sallittu",
"Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista",
"Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt",
- "seconds ago" : "sekuntia sitten",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
- "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
- "today" : "tänään",
- "yesterday" : "eilen",
- "_%n day go_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
- "last month" : "viime kuussa",
- "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
- "last year" : "viime vuonna",
- "years ago" : "vuotta sitten",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Vain seuraavat merkit ovat sallittuja käyttäjätunnuksessa: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
"A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
"A valid password must be provided" : "Anna kelvollinen salasana",
@@ -94,10 +95,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Pyydä palvelimen ylläpitäjää asentamaan moduulin.",
"PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP:n \"Safe Mode\" on käytössä. ownCloud vaatii toimiakseen \"Safe Moden\" poistamisen käytöstä.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP:n Safe Mode on vanhennettu ja muutenkin lähes hyödytön asetus, joka tulee poistaa käytöstä. Pyydä järjestelmän ylläpitäjää poistamaan ominaisuus käytöstä php.ini-tiedoston kautta tai http-palvelimen asetuksista.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes -asetus on käytössä. ownCloud vaatii toimiakseen kyseisen asetuksen poistamisen käytöstä.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes -asetus on vanhennettu ja pääosin hyödytön, joten se tulisi poistaa käytöstä. Pyydä palvelimen ylläpitäjää poistamaan asetus käytöstä php.ini-tiedoston avulla tai http-palvelimen asetuksista.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
"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",
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
index adedc8bf4e2..e4ca796dc55 100644
--- a/lib/l10n/fi_FI.json
+++ b/lib/l10n/fi_FI.json
@@ -5,6 +5,7 @@
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.",
"Sample configuration detected" : "Esimerkkimääritykset havaittu",
"PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.",
+ "Following databases are supported: %s" : "Seuraavat tietokannat ovat tuettuja: %s",
"Help" : "Ohje",
"Personal" : "Henkilökohtainen",
"Settings" : "Asetukset",
@@ -15,6 +16,16 @@
"No app name specified" : "Sovelluksen nimeä ei määritelty",
"Unknown filetype" : "Tuntematon tiedostotyyppi",
"Invalid image" : "Virheellinen kuva",
+ "today" : "tänään",
+ "yesterday" : "eilen",
+ "_%n day ago_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
+ "last month" : "viime kuussa",
+ "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
+ "last year" : "viime vuonna",
+ "_%n year ago_::_%n years ago_" : ["%n vuosi sitten","%n vuotta sitten"],
+ "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
+ "seconds ago" : "sekuntia sitten",
"Database Error" : "Tietokantavirhe",
"Please contact your system administrator." : "Ole yhteydessä järjestelmän ylläpitäjään.",
"web services under your control" : "verkkopalvelut hallinnassasi",
@@ -68,16 +79,6 @@
"Sharing %s failed, because resharing is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen uudelleen ei ole sallittu",
"Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista",
"Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt",
- "seconds ago" : "sekuntia sitten",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
- "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
- "today" : "tänään",
- "yesterday" : "eilen",
- "_%n day go_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
- "last month" : "viime kuussa",
- "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
- "last year" : "viime vuonna",
- "years ago" : "vuotta sitten",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Vain seuraavat merkit ovat sallittuja käyttäjätunnuksessa: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
"A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
"A valid password must be provided" : "Anna kelvollinen salasana",
@@ -92,10 +93,6 @@
"Please ask your server administrator to install the module." : "Pyydä palvelimen ylläpitäjää asentamaan moduulin.",
"PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP:n \"Safe Mode\" on käytössä. ownCloud vaatii toimiakseen \"Safe Moden\" poistamisen käytöstä.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP:n Safe Mode on vanhennettu ja muutenkin lähes hyödytön asetus, joka tulee poistaa käytöstä. Pyydä järjestelmän ylläpitäjää poistamaan ominaisuus käytöstä php.ini-tiedoston kautta tai http-palvelimen asetuksista.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes -asetus on käytössä. ownCloud vaatii toimiakseen kyseisen asetuksen poistamisen käytöstä.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes -asetus on vanhennettu ja pääosin hyödytön, joten se tulisi poistaa käytöstä. Pyydä palvelimen ylläpitäjää poistamaan asetus käytöstä php.ini-tiedoston avulla tai http-palvelimen asetuksista.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
"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",
diff --git a/lib/l10n/fil.js b/lib/l10n/fil.js
index 9ac3e05d6c6..9408adc0dc3 100644
--- a/lib/l10n/fil.js
+++ b/lib/l10n/fil.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/fil.json b/lib/l10n/fil.json
index 82a8a99d300..2a227e468c7 100644
--- a/lib/l10n/fil.json
+++ b/lib/l10n/fil.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 9fc1557c86c..a5c70a5507b 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Configuration d'exemple détectée",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
"PHP %s or higher is required." : "PHP %s ou supérieur est requis.",
+ "PHP with a version less then %s is required." : "PHP avec une version antérieure à %s est requis.",
+ "Following databases are supported: %s" : "Les bases de données suivantes sont supportées: %s",
"Help" : "Aide",
"Personal" : "Personnel",
"Settings" : "Paramètres",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Aucun nom d'application spécifié",
"Unknown filetype" : "Type de fichier inconnu",
"Invalid image" : "Image non valable",
+ "today" : "aujourd'hui",
+ "yesterday" : "hier",
+ "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"],
+ "last month" : "le mois dernier",
+ "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
+ "last year" : "l'année dernière",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
+ "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
+ "seconds ago" : "il y a quelques secondes",
"Database Error" : "Erreur dans la base de données",
"Please contact your system administrator." : "Veuillez contacter votre administrateur système.",
"web services under your control" : "services web sous votre contrôle",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
"Sharing %s failed, because the file could not be found in the file cache" : "Le partage de %s a échoué car le fichier n'a pas été trouvé dans les fichiers mis en cache.",
"Could not find category \"%s\"" : "Impossible de trouver la catégorie \"%s\"",
- "seconds ago" : "il y a quelques secondes",
- "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
- "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
- "today" : "aujourd'hui",
- "yesterday" : "hier",
- "_%n day go_::_%n days ago_" : ["","il y a %n jours"],
- "last month" : "le mois dernier",
- "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
- "last year" : "l'année dernière",
- "years ago" : "il y a plusieurs années",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Seuls les caractères suivants sont autorisés dans un nom d'utilisateur : \"a-z\", \"A-Z\", \"0-9\", et \"_.@-\"",
"A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
"A valid password must be provided" : "Un mot de passe valide doit être saisi",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.",
"PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
"PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
"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",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 80eb7b85b4e..078197282a5 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Configuration d'exemple détectée",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
"PHP %s or higher is required." : "PHP %s ou supérieur est requis.",
+ "PHP with a version less then %s is required." : "PHP avec une version antérieure à %s est requis.",
+ "Following databases are supported: %s" : "Les bases de données suivantes sont supportées: %s",
"Help" : "Aide",
"Personal" : "Personnel",
"Settings" : "Paramètres",
@@ -16,6 +18,16 @@
"No app name specified" : "Aucun nom d'application spécifié",
"Unknown filetype" : "Type de fichier inconnu",
"Invalid image" : "Image non valable",
+ "today" : "aujourd'hui",
+ "yesterday" : "hier",
+ "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"],
+ "last month" : "le mois dernier",
+ "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
+ "last year" : "l'année dernière",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
+ "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
+ "seconds ago" : "il y a quelques secondes",
"Database Error" : "Erreur dans la base de données",
"Please contact your system administrator." : "Veuillez contacter votre administrateur système.",
"web services under your control" : "services web sous votre contrôle",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
"Sharing %s failed, because the file could not be found in the file cache" : "Le partage de %s a échoué car le fichier n'a pas été trouvé dans les fichiers mis en cache.",
"Could not find category \"%s\"" : "Impossible de trouver la catégorie \"%s\"",
- "seconds ago" : "il y a quelques secondes",
- "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
- "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
- "today" : "aujourd'hui",
- "yesterday" : "hier",
- "_%n day go_::_%n days ago_" : ["","il y a %n jours"],
- "last month" : "le mois dernier",
- "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
- "last year" : "l'année dernière",
- "years ago" : "il y a plusieurs années",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Seuls les caractères suivants sont autorisés dans un nom d'utilisateur : \"a-z\", \"A-Z\", \"0-9\", et \"_.@-\"",
"A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
"A valid password must be provided" : "Un mot de passe valide doit être saisi",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.",
"PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
"PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
"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",
diff --git a/lib/l10n/fr_CA.js b/lib/l10n/fr_CA.js
index 9ac3e05d6c6..9408adc0dc3 100644
--- a/lib/l10n/fr_CA.js
+++ b/lib/l10n/fr_CA.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/fr_CA.json b/lib/l10n/fr_CA.json
index 82a8a99d300..2a227e468c7 100644
--- a/lib/l10n/fr_CA.json
+++ b/lib/l10n/fr_CA.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fy_NL.js b/lib/l10n/fy_NL.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/fy_NL.js
+++ b/lib/l10n/fy_NL.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/fy_NL.json b/lib/l10n/fy_NL.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/fy_NL.json
+++ b/lib/l10n/fy_NL.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 08b923c6d0f..dc49a5f2877 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Non se especificou o nome da aplicación",
"Unknown filetype" : "Tipo de ficheiro descoñecido",
"Invalid image" : "Imaxe incorrecta",
+ "today" : "hoxe",
+ "yesterday" : "onte",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "último mes",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "último ano",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
+ "seconds ago" : "segundos atrás",
"Database Error" : "Produciuse un erro na base de datos",
"Please contact your system administrator." : "Contacte co administrador.",
"web services under your control" : "servizos web baixo o seu control",
@@ -81,16 +91,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Fallou a compartición de %s, a infraestrutura de compartición para %s non foi quen de atopar a orixe",
"Sharing %s failed, because the file could not be found in the file cache" : "Fallou a compartición de %s, non foi posíbel atopar o ficheiro na caché de ficheiros",
"Could not find category \"%s\"" : "Non foi posíbel atopar a categoría «%s»",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
- "today" : "hoxe",
- "yesterday" : "onte",
- "_%n day go_::_%n days ago_" : ["hai %n día","vai %n días"],
- "last month" : "último mes",
- "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
- "last year" : "último ano",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Só se permiten os seguintes caracteres no nome de usuario: «a-z», «A-Z», «0-9», e «_.@-»",
"A valid username must be provided" : "Debe fornecer un nome de usuario",
"A valid password must be provided" : "Debe fornecer un contrasinal",
@@ -107,10 +107,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Pregúntelle ao administrador do servidor pola instalación do módulo.",
"PHP module %s not installed." : "O módulo PHP %s non está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro de PHP é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "«Magic Quotes» está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "«Magic Quotes» é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
"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",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index 060b559cee2..8f342057868 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -16,6 +16,16 @@
"No app name specified" : "Non se especificou o nome da aplicación",
"Unknown filetype" : "Tipo de ficheiro descoñecido",
"Invalid image" : "Imaxe incorrecta",
+ "today" : "hoxe",
+ "yesterday" : "onte",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "último mes",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "último ano",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
+ "seconds ago" : "segundos atrás",
"Database Error" : "Produciuse un erro na base de datos",
"Please contact your system administrator." : "Contacte co administrador.",
"web services under your control" : "servizos web baixo o seu control",
@@ -79,16 +89,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Fallou a compartición de %s, a infraestrutura de compartición para %s non foi quen de atopar a orixe",
"Sharing %s failed, because the file could not be found in the file cache" : "Fallou a compartición de %s, non foi posíbel atopar o ficheiro na caché de ficheiros",
"Could not find category \"%s\"" : "Non foi posíbel atopar a categoría «%s»",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
- "today" : "hoxe",
- "yesterday" : "onte",
- "_%n day go_::_%n days ago_" : ["hai %n día","vai %n días"],
- "last month" : "último mes",
- "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
- "last year" : "último ano",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Só se permiten os seguintes caracteres no nome de usuario: «a-z», «A-Z», «0-9», e «_.@-»",
"A valid username must be provided" : "Debe fornecer un nome de usuario",
"A valid password must be provided" : "Debe fornecer un contrasinal",
@@ -105,10 +105,6 @@
"Please ask your server administrator to install the module." : "Pregúntelle ao administrador do servidor pola instalación do módulo.",
"PHP module %s not installed." : "O módulo PHP %s non está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro de PHP é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "«Magic Quotes» está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "«Magic Quotes» é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
"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",
diff --git a/lib/l10n/gu.js b/lib/l10n/gu.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/gu.js
+++ b/lib/l10n/gu.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/gu.json b/lib/l10n/gu.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/gu.json
+++ b/lib/l10n/gu.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/he.js b/lib/l10n/he.js
index c34ce27bb01..200d3d7035a 100644
--- a/lib/l10n/he.js
+++ b/lib/l10n/he.js
@@ -6,22 +6,22 @@ OC.L10N.register(
"Settings" : "הגדרות",
"Users" : "משתמשים",
"Admin" : "מנהל",
+ "today" : "היום",
+ "yesterday" : "אתמול",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "חודש שעבר",
+ "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
+ "last year" : "שנה שעברה",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
+ "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
+ "seconds ago" : "שניות",
"web services under your control" : "שירותי רשת תחת השליטה שלך",
"Application is not enabled" : "יישומים אינם מופעלים",
"Authentication error" : "שגיאת הזדהות",
"Token expired. Please reload page." : "פג תוקף. נא לטעון שוב את הדף.",
"%s shared »%s« with you" : "%s שיתף/שיתפה איתך את »%s«",
"Could not find category \"%s\"" : "לא ניתן למצוא את הקטגוריה „%s“",
- "seconds ago" : "שניות",
- "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
- "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
- "today" : "היום",
- "yesterday" : "אתמול",
- "_%n day go_::_%n days ago_" : ["","לפני %n ימים"],
- "last month" : "חודש שעבר",
- "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
- "last year" : "שנה שעברה",
- "years ago" : "שנים",
"A valid username must be provided" : "יש לספק שם משתמש תקני",
"A valid password must be provided" : "יש לספק ססמה תקנית"
},
diff --git a/lib/l10n/he.json b/lib/l10n/he.json
index c97d585b901..0cadc7beba2 100644
--- a/lib/l10n/he.json
+++ b/lib/l10n/he.json
@@ -4,22 +4,22 @@
"Settings" : "הגדרות",
"Users" : "משתמשים",
"Admin" : "מנהל",
+ "today" : "היום",
+ "yesterday" : "אתמול",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "חודש שעבר",
+ "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
+ "last year" : "שנה שעברה",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
+ "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
+ "seconds ago" : "שניות",
"web services under your control" : "שירותי רשת תחת השליטה שלך",
"Application is not enabled" : "יישומים אינם מופעלים",
"Authentication error" : "שגיאת הזדהות",
"Token expired. Please reload page." : "פג תוקף. נא לטעון שוב את הדף.",
"%s shared »%s« with you" : "%s שיתף/שיתפה איתך את »%s«",
"Could not find category \"%s\"" : "לא ניתן למצוא את הקטגוריה „%s“",
- "seconds ago" : "שניות",
- "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
- "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
- "today" : "היום",
- "yesterday" : "אתמול",
- "_%n day go_::_%n days ago_" : ["","לפני %n ימים"],
- "last month" : "חודש שעבר",
- "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
- "last year" : "שנה שעברה",
- "years ago" : "שנים",
"A valid username must be provided" : "יש לספק שם משתמש תקני",
"A valid password must be provided" : "יש לספק ססמה תקנית"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/hi.js b/lib/l10n/hi.js
index cc987c48024..fdc0ecac1a2 100644
--- a/lib/l10n/hi.js
+++ b/lib/l10n/hi.js
@@ -5,9 +5,10 @@ OC.L10N.register(
"Personal" : "यक्तिगत",
"Settings" : "सेटिंग्स",
"Users" : "उपयोगकर्ता",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hi.json b/lib/l10n/hi.json
index bf18b7731ad..b231ead2917 100644
--- a/lib/l10n/hi.json
+++ b/lib/l10n/hi.json
@@ -3,9 +3,10 @@
"Personal" : "यक्तिगत",
"Settings" : "सेटिंग्स",
"Users" : "उपयोगकर्ता",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js
index e5f9cfd044d..03323882399 100644
--- a/lib/l10n/hr.js
+++ b/lib/l10n/hr.js
@@ -17,6 +17,16 @@ OC.L10N.register(
"No app name specified" : "Nikakav naziv aplikacije nije naveden",
"Unknown filetype" : "Vrsta datoteke nepoznata",
"Invalid image" : "Neispravna slika",
+ "today" : "Danas",
+ "yesterday" : "Jučer",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "Prošli mjesec",
+ "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
+ "last year" : "Prošle godine",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
+ "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
+ "seconds ago" : "prije par sekundi",
"web services under your control" : "web usluge pod vašom kontrolom",
"App directory already exists" : "Direktorij aplikacije već postoji",
"Can't create app folder. Please fix permissions. %s" : "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s",
@@ -77,16 +87,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor",
"Sharing %s failed, because the file could not be found in the file cache" : "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.",
"Could not find category \"%s\"" : "Kategorija \"%s\" nije nađena",
- "seconds ago" : "prije par sekundi",
- "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
- "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
- "today" : "Danas",
- "yesterday" : "Jučer",
- "_%n day go_::_%n days ago_" : ["prije %n dana","prije %n dana","prije %n dana"],
- "last month" : "Prošli mjesec",
- "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
- "last year" : "Prošle godine",
- "years ago" : "Prije više godina",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Nužno je navesti ispravno korisničko ime",
"A valid password must be provided" : "Nužno je navesti ispravnu lozinku",
@@ -103,10 +103,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
"PHP module %s not installed." : "PHP modul %s nije instaliran.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
"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",
diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json
index 64c94528af0..22beeba3f94 100644
--- a/lib/l10n/hr.json
+++ b/lib/l10n/hr.json
@@ -15,6 +15,16 @@
"No app name specified" : "Nikakav naziv aplikacije nije naveden",
"Unknown filetype" : "Vrsta datoteke nepoznata",
"Invalid image" : "Neispravna slika",
+ "today" : "Danas",
+ "yesterday" : "Jučer",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "Prošli mjesec",
+ "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
+ "last year" : "Prošle godine",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
+ "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
+ "seconds ago" : "prije par sekundi",
"web services under your control" : "web usluge pod vašom kontrolom",
"App directory already exists" : "Direktorij aplikacije već postoji",
"Can't create app folder. Please fix permissions. %s" : "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s",
@@ -75,16 +85,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor",
"Sharing %s failed, because the file could not be found in the file cache" : "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.",
"Could not find category \"%s\"" : "Kategorija \"%s\" nije nađena",
- "seconds ago" : "prije par sekundi",
- "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
- "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
- "today" : "Danas",
- "yesterday" : "Jučer",
- "_%n day go_::_%n days ago_" : ["prije %n dana","prije %n dana","prije %n dana"],
- "last month" : "Prošli mjesec",
- "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
- "last year" : "Prošle godine",
- "years ago" : "Prije više godina",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Nužno je navesti ispravno korisničko ime",
"A valid password must be provided" : "Nužno je navesti ispravnu lozinku",
@@ -101,10 +101,6 @@
"Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
"PHP module %s not installed." : "PHP modul %s nije instaliran.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
"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",
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
index cc336e5e5cd..55581474e8f 100644
--- a/lib/l10n/hu_HU.js
+++ b/lib/l10n/hu_HU.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Nincs az alkalmazás név megadva.",
"Unknown filetype" : "Ismeretlen file tipús",
"Invalid image" : "Hibás kép",
+ "today" : "ma",
+ "yesterday" : "tegnap",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "múlt hónapban",
+ "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
+ "last year" : "tavaly",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
+ "seconds ago" : "pár másodperce",
"web services under your control" : "webszolgáltatások saját kézben",
"App directory already exists" : "Az alkalmazás mappája már létezik",
"Can't create app folder. Please fix permissions. %s" : "Nem lehetett létrehozni az alkalmazás mappáját. Kérem ellenőrizze a jogosultságokat. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s megosztása nem sikerült, mert %s megosztási alrendszere nem találja",
"Sharing %s failed, because the file could not be found in the file cache" : "%s megosztása nem sikerült, mert a fájl nem található a gyorsítótárban",
"Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"",
- "seconds ago" : "pár másodperce",
- "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
- "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
- "today" : "ma",
- "yesterday" : "tegnap",
- "_%n day go_::_%n days ago_" : ["%n nappal ezelőtt","%n nappal ezelőtt"],
- "last month" : "múlt hónapban",
- "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
- "last year" : "tavaly",
- "years ago" : "több éve",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "A felhasználónévben csak a következő karakterek fordulhatnak elő: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-\"",
"A valid username must be provided" : "Érvényes felhasználónevet kell megadnia",
"A valid password must be provided" : "Érvényes jelszót kell megadnia",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
"PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Be van állítva a PHP Safe Mode. Az ownCloud megfelelő működéséhez szükséges, hogy ez ki legyen kapcsolva.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A PHP Safe Mode egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Be van álltva a Magic Quotes. Az ownCloud megfelelő működéséhez szükséges, hogy ez le legyen tiltva.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A Magic Quotes egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
"PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
"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",
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
index 58847746ece..cc95cceae5e 100644
--- a/lib/l10n/hu_HU.json
+++ b/lib/l10n/hu_HU.json
@@ -16,6 +16,16 @@
"No app name specified" : "Nincs az alkalmazás név megadva.",
"Unknown filetype" : "Ismeretlen file tipús",
"Invalid image" : "Hibás kép",
+ "today" : "ma",
+ "yesterday" : "tegnap",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "múlt hónapban",
+ "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
+ "last year" : "tavaly",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
+ "seconds ago" : "pár másodperce",
"web services under your control" : "webszolgáltatások saját kézben",
"App directory already exists" : "Az alkalmazás mappája már létezik",
"Can't create app folder. Please fix permissions. %s" : "Nem lehetett létrehozni az alkalmazás mappáját. Kérem ellenőrizze a jogosultságokat. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s megosztása nem sikerült, mert %s megosztási alrendszere nem találja",
"Sharing %s failed, because the file could not be found in the file cache" : "%s megosztása nem sikerült, mert a fájl nem található a gyorsítótárban",
"Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"",
- "seconds ago" : "pár másodperce",
- "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
- "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
- "today" : "ma",
- "yesterday" : "tegnap",
- "_%n day go_::_%n days ago_" : ["%n nappal ezelőtt","%n nappal ezelőtt"],
- "last month" : "múlt hónapban",
- "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
- "last year" : "tavaly",
- "years ago" : "több éve",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "A felhasználónévben csak a következő karakterek fordulhatnak elő: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-\"",
"A valid username must be provided" : "Érvényes felhasználónevet kell megadnia",
"A valid password must be provided" : "Érvényes jelszót kell megadnia",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
"PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Be van állítva a PHP Safe Mode. Az ownCloud megfelelő működéséhez szükséges, hogy ez ki legyen kapcsolva.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A PHP Safe Mode egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Be van álltva a Magic Quotes. Az ownCloud megfelelő működéséhez szükséges, hogy ez le legyen tiltva.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A Magic Quotes egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
"PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
"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",
diff --git a/lib/l10n/hy.js b/lib/l10n/hy.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/hy.js
+++ b/lib/l10n/hy.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hy.json b/lib/l10n/hy.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/hy.json
+++ b/lib/l10n/hy.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ia.js b/lib/l10n/ia.js
index 938d9c4a680..345df54ec33 100644
--- a/lib/l10n/ia.js
+++ b/lib/l10n/ia.js
@@ -8,16 +8,16 @@ OC.L10N.register(
"Admin" : "Administration",
"Unknown filetype" : "Typo de file incognite",
"Invalid image" : "Imagine invalide",
- "web services under your control" : "servicios web sub tu controlo",
- "seconds ago" : "secundas passate",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
- "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
"today" : "hodie",
"yesterday" : "heri",
- "_%n day go_::_%n days ago_" : ["","%n dies ante"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "ultime mense",
"_%n month ago_::_%n months ago_" : ["","%n menses ante"],
"last year" : "ultime anno",
- "years ago" : "annos passate"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
+ "seconds ago" : "secundas passate",
+ "web services under your control" : "servicios web sub tu controlo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ia.json b/lib/l10n/ia.json
index 21c437af71a..3f722b77a0d 100644
--- a/lib/l10n/ia.json
+++ b/lib/l10n/ia.json
@@ -6,16 +6,16 @@
"Admin" : "Administration",
"Unknown filetype" : "Typo de file incognite",
"Invalid image" : "Imagine invalide",
- "web services under your control" : "servicios web sub tu controlo",
- "seconds ago" : "secundas passate",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
- "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
"today" : "hodie",
"yesterday" : "heri",
- "_%n day go_::_%n days ago_" : ["","%n dies ante"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "ultime mense",
"_%n month ago_::_%n months ago_" : ["","%n menses ante"],
"last year" : "ultime anno",
- "years ago" : "annos passate"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
+ "seconds ago" : "secundas passate",
+ "web services under your control" : "servicios web sub tu controlo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/id.js b/lib/l10n/id.js
index 92594afcde6..0ad97244098 100644
--- a/lib/l10n/id.js
+++ b/lib/l10n/id.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Tidak ada nama apl yang ditentukan",
"Unknown filetype" : "Tipe berkas tak dikenal",
"Invalid image" : "Gambar tidak sah",
+ "today" : "hari ini",
+ "yesterday" : "kemarin",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "bulan kemarin",
+ "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
+ "last year" : "tahun kemarin",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
+ "seconds ago" : "beberapa detik yang lalu",
"web services under your control" : "layanan web dalam kendali anda",
"App directory already exists" : "Direktori Apl sudah ada",
"Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s",
@@ -75,16 +85,6 @@ OC.L10N.register(
"Sharing %s failed, because resharing is not allowed" : "Gagal berbagi %s, karena membagikan ulang tidak diizinkan",
"Sharing %s failed, because the file could not be found in the file cache" : "Gagal berbagi %s, karena berkas tidak ditemukan di berkas cache",
"Could not find category \"%s\"" : "Tidak menemukan kategori \"%s\"",
- "seconds ago" : "beberapa detik yang lalu",
- "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
- "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
- "today" : "hari ini",
- "yesterday" : "kemarin",
- "_%n day go_::_%n days ago_" : ["%n hari yang lalu"],
- "last month" : "bulan kemarin",
- "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
- "last year" : "tahun kemarin",
- "years ago" : "beberapa tahun lalu",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Hanya karakter berikut yang diizinkan dalam nama pengguna: \"a-z\", \"A-Z\", \"0-9\", dan \"_.@-\"",
"A valid username must be provided" : "Tuliskan nama pengguna yang valid",
"A valid password must be provided" : "Tuliskan sandi yang valid",
@@ -101,7 +101,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Mohon tanyakan administrator Anda untuk menginstal module.",
"PHP module %s not installed." : "Module PHP %s tidak terinstal.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mohon tanyakan administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode diaktifkan. ownCloud memerlukan ini untuk dinonaktifkan untuk dapat bekerja dengan banar.",
"PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
"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",
diff --git a/lib/l10n/id.json b/lib/l10n/id.json
index 9b9f9202eb5..26add369e59 100644
--- a/lib/l10n/id.json
+++ b/lib/l10n/id.json
@@ -16,6 +16,16 @@
"No app name specified" : "Tidak ada nama apl yang ditentukan",
"Unknown filetype" : "Tipe berkas tak dikenal",
"Invalid image" : "Gambar tidak sah",
+ "today" : "hari ini",
+ "yesterday" : "kemarin",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "bulan kemarin",
+ "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
+ "last year" : "tahun kemarin",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
+ "seconds ago" : "beberapa detik yang lalu",
"web services under your control" : "layanan web dalam kendali anda",
"App directory already exists" : "Direktori Apl sudah ada",
"Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s",
@@ -73,16 +83,6 @@
"Sharing %s failed, because resharing is not allowed" : "Gagal berbagi %s, karena membagikan ulang tidak diizinkan",
"Sharing %s failed, because the file could not be found in the file cache" : "Gagal berbagi %s, karena berkas tidak ditemukan di berkas cache",
"Could not find category \"%s\"" : "Tidak menemukan kategori \"%s\"",
- "seconds ago" : "beberapa detik yang lalu",
- "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
- "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
- "today" : "hari ini",
- "yesterday" : "kemarin",
- "_%n day go_::_%n days ago_" : ["%n hari yang lalu"],
- "last month" : "bulan kemarin",
- "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
- "last year" : "tahun kemarin",
- "years ago" : "beberapa tahun lalu",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Hanya karakter berikut yang diizinkan dalam nama pengguna: \"a-z\", \"A-Z\", \"0-9\", dan \"_.@-\"",
"A valid username must be provided" : "Tuliskan nama pengguna yang valid",
"A valid password must be provided" : "Tuliskan sandi yang valid",
@@ -99,7 +99,6 @@
"Please ask your server administrator to install the module." : "Mohon tanyakan administrator Anda untuk menginstal module.",
"PHP module %s not installed." : "Module PHP %s tidak terinstal.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mohon tanyakan administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode diaktifkan. ownCloud memerlukan ini untuk dinonaktifkan untuk dapat bekerja dengan banar.",
"PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
"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",
diff --git a/lib/l10n/io.js b/lib/l10n/io.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/io.js
+++ b/lib/l10n/io.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/io.json b/lib/l10n/io.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/io.json
+++ b/lib/l10n/io.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/is.js b/lib/l10n/is.js
index 8a9b95c6120..712b8bbd10a 100644
--- a/lib/l10n/is.js
+++ b/lib/l10n/is.js
@@ -6,20 +6,20 @@ OC.L10N.register(
"Settings" : "Stillingar",
"Users" : "Notendur",
"Admin" : "Stjórnun",
- "web services under your control" : "vefþjónusta undir þinni stjórn",
- "Application is not enabled" : "Forrit ekki virkt",
- "Authentication error" : "Villa við auðkenningu",
- "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
- "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\"",
- "seconds ago" : "sek.",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "í dag",
"yesterday" : "í gær",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "síðasta mánuði",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "síðasta ári",
- "years ago" : "einhverjum árum"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "sek.",
+ "web services under your control" : "vefþjónusta undir þinni stjórn",
+ "Application is not enabled" : "Forrit ekki virkt",
+ "Authentication error" : "Villa við auðkenningu",
+ "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
+ "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\""
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/is.json b/lib/l10n/is.json
index 9d168fc2aca..fd0291c96c3 100644
--- a/lib/l10n/is.json
+++ b/lib/l10n/is.json
@@ -4,20 +4,20 @@
"Settings" : "Stillingar",
"Users" : "Notendur",
"Admin" : "Stjórnun",
- "web services under your control" : "vefþjónusta undir þinni stjórn",
- "Application is not enabled" : "Forrit ekki virkt",
- "Authentication error" : "Villa við auðkenningu",
- "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
- "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\"",
- "seconds ago" : "sek.",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "í dag",
"yesterday" : "í gær",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "síðasta mánuði",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "síðasta ári",
- "years ago" : "einhverjum árum"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "sek.",
+ "web services under your control" : "vefþjónusta undir þinni stjórn",
+ "Application is not enabled" : "Forrit ekki virkt",
+ "Authentication error" : "Villa við auðkenningu",
+ "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
+ "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index fca3e291a43..eb274943cc5 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Configurazione di esempio rilevata",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php",
"PHP %s or higher is required." : "Richiesto PHP %s o superiore",
+ "PHP with a version less then %s is required." : "È richiesta una versione di PHP inferiore a %s.",
+ "Following databases are supported: %s" : "I seguenti database sono supportati: %s",
"Help" : "Aiuto",
"Personal" : "Personale",
"Settings" : "Impostazioni",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Il nome dell'applicazione non è specificato",
"Unknown filetype" : "Tipo di file sconosciuto",
"Invalid image" : "Immagine non valida",
+ "today" : "oggi",
+ "yesterday" : "ieri",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mese scorso",
+ "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
+ "last year" : "anno scorso",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
+ "seconds ago" : "secondi fa",
"Database Error" : "Errore del database",
"Please contact your system administrator." : "Contatta il tuo amministratore di sistema.",
"web services under your control" : "servizi web nelle tue mani",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Condivisione di %s non riuscita, poiché il motore di condivisione per %s non riesce a trovare la sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "Condivisione di %s non riuscita, poiché il file non è stato trovato nella cache",
"Could not find category \"%s\"" : "Impossibile trovare la categoria \"%s\"",
- "seconds ago" : "secondi fa",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
- "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
- "today" : "oggi",
- "yesterday" : "ieri",
- "_%n day go_::_%n days ago_" : ["%n giorno fa","%n giorni fa"],
- "last month" : "mese scorso",
- "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
- "last year" : "anno scorso",
- "years ago" : "anni fa",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo i seguenti caratteri sono ammessi in un nome utente: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Deve essere fornito un nome utente valido",
"A valid password must be provided" : "Deve essere fornita una password valida",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Chiedi all'amministratore del tuo server di installare il modulo.",
"PHP module %s not installed." : "Il modulo PHP %s non è installato.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
"PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
"Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
"PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index 5f5e77d0232..057df780b39 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Configurazione di esempio rilevata",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php",
"PHP %s or higher is required." : "Richiesto PHP %s o superiore",
+ "PHP with a version less then %s is required." : "È richiesta una versione di PHP inferiore a %s.",
+ "Following databases are supported: %s" : "I seguenti database sono supportati: %s",
"Help" : "Aiuto",
"Personal" : "Personale",
"Settings" : "Impostazioni",
@@ -16,6 +18,16 @@
"No app name specified" : "Il nome dell'applicazione non è specificato",
"Unknown filetype" : "Tipo di file sconosciuto",
"Invalid image" : "Immagine non valida",
+ "today" : "oggi",
+ "yesterday" : "ieri",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "mese scorso",
+ "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
+ "last year" : "anno scorso",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
+ "seconds ago" : "secondi fa",
"Database Error" : "Errore del database",
"Please contact your system administrator." : "Contatta il tuo amministratore di sistema.",
"web services under your control" : "servizi web nelle tue mani",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Condivisione di %s non riuscita, poiché il motore di condivisione per %s non riesce a trovare la sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "Condivisione di %s non riuscita, poiché il file non è stato trovato nella cache",
"Could not find category \"%s\"" : "Impossibile trovare la categoria \"%s\"",
- "seconds ago" : "secondi fa",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
- "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
- "today" : "oggi",
- "yesterday" : "ieri",
- "_%n day go_::_%n days ago_" : ["%n giorno fa","%n giorni fa"],
- "last month" : "mese scorso",
- "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
- "last year" : "anno scorso",
- "years ago" : "anni fa",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo i seguenti caratteri sono ammessi in un nome utente: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Deve essere fornito un nome utente valido",
"A valid password must be provided" : "Deve essere fornita una password valida",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Chiedi all'amministratore del tuo server di installare il modulo.",
"PHP module %s not installed." : "Il modulo PHP %s non è installato.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
"PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
"Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
"PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index 96472897aa7..1c607bd4041 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "サンプル設定が見つかりました。",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。",
"PHP %s or higher is required." : "PHP %s 以上が必要です。",
+ "PHP with a version less then %s is required." : "%s 以前のバージョンのPHPが必要です。",
+ "Following databases are supported: %s" : "次のデータベースをサポートしています: %s",
"Help" : "ヘルプ",
"Personal" : "個人",
"Settings" : "設定",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "アプリ名が未指定",
"Unknown filetype" : "不明なファイルタイプ",
"Invalid image" : "無効な画像",
+ "today" : "今日",
+ "yesterday" : "1日前",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "1ヶ月前",
+ "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
+ "last year" : "1年前",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "seconds ago" : "数秒前",
"Database Error" : "データベースエラー",
"Please contact your system administrator." : "システム管理者に問い合わせてください。",
"web services under your control" : "あなたの管理下のウェブサービス",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s の共有に失敗しました。%s のバックエンド共有に必要なソースが見つかりませんでした。",
"Sharing %s failed, because the file could not be found in the file cache" : "%s の共有に失敗しました。ファイルキャッシュにファイルがありませんでした。",
"Could not find category \"%s\"" : "カテゴリ \"%s\" が見つかりませんでした",
- "seconds ago" : "数秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
- "today" : "今日",
- "yesterday" : "1日前",
- "_%n day go_::_%n days ago_" : ["%n日前"],
- "last month" : "1ヶ月前",
- "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
- "last year" : "1年前",
- "years ago" : "年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "ユーザー名で利用できる文字列は、次のものです: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "有効なユーザー名を指定する必要があります",
"A valid password must be provided" : "有効なパスワードを指定する必要があります",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "サーバー管理者にモジュールのインストールを依頼してください。",
"PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHPセーフモードは有効です。ownCloudを適切に動作させるには無効化する必要があります。",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHPセーフモードは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "マジッククォートは有効です。ownCloudを適切に動作させるには無効にする必要があります。",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "マジッククォートは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index ec3a1a4fa22..47fd2ab6896 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "サンプル設定が見つかりました。",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。",
"PHP %s or higher is required." : "PHP %s 以上が必要です。",
+ "PHP with a version less then %s is required." : "%s 以前のバージョンのPHPが必要です。",
+ "Following databases are supported: %s" : "次のデータベースをサポートしています: %s",
"Help" : "ヘルプ",
"Personal" : "個人",
"Settings" : "設定",
@@ -16,6 +18,16 @@
"No app name specified" : "アプリ名が未指定",
"Unknown filetype" : "不明なファイルタイプ",
"Invalid image" : "無効な画像",
+ "today" : "今日",
+ "yesterday" : "1日前",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "1ヶ月前",
+ "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
+ "last year" : "1年前",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "seconds ago" : "数秒前",
"Database Error" : "データベースエラー",
"Please contact your system administrator." : "システム管理者に問い合わせてください。",
"web services under your control" : "あなたの管理下のウェブサービス",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s の共有に失敗しました。%s のバックエンド共有に必要なソースが見つかりませんでした。",
"Sharing %s failed, because the file could not be found in the file cache" : "%s の共有に失敗しました。ファイルキャッシュにファイルがありませんでした。",
"Could not find category \"%s\"" : "カテゴリ \"%s\" が見つかりませんでした",
- "seconds ago" : "数秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
- "today" : "今日",
- "yesterday" : "1日前",
- "_%n day go_::_%n days ago_" : ["%n日前"],
- "last month" : "1ヶ月前",
- "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
- "last year" : "1年前",
- "years ago" : "年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "ユーザー名で利用できる文字列は、次のものです: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "有効なユーザー名を指定する必要があります",
"A valid password must be provided" : "有効なパスワードを指定する必要があります",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "サーバー管理者にモジュールのインストールを依頼してください。",
"PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHPセーフモードは有効です。ownCloudを適切に動作させるには無効化する必要があります。",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHPセーフモードは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "マジッククォートは有効です。ownCloudを適切に動作させるには無効にする必要があります。",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "マジッククォートは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
diff --git a/lib/l10n/jv.js b/lib/l10n/jv.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/jv.js
+++ b/lib/l10n/jv.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/jv.json b/lib/l10n/jv.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/jv.json
+++ b/lib/l10n/jv.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ka_GE.js b/lib/l10n/ka_GE.js
index 756f13f67b9..63b886e6ce1 100644
--- a/lib/l10n/ka_GE.js
+++ b/lib/l10n/ka_GE.js
@@ -6,6 +6,16 @@ OC.L10N.register(
"Settings" : "პარამეტრები",
"Users" : "მომხმარებელი",
"Admin" : "ადმინისტრატორი",
+ "today" : "დღეს",
+ "yesterday" : "გუშინ",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "გასულ თვეში",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ბოლო წელს",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "წამის წინ",
"web services under your control" : "web services under your control",
"Application is not enabled" : "აპლიკაცია არ არის აქტიური",
"Authentication error" : "ავთენტიფიკაციის შეცდომა",
@@ -23,16 +33,6 @@ OC.L10N.register(
"Set an admin username." : "დააყენეთ ადმინისტრატორის სახელი.",
"Set an admin password." : "დააყენეთ ადმინისტრატორის პაროლი.",
"Could not find category \"%s\"" : "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა",
- "seconds ago" : "წამის წინ",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
- "today" : "დღეს",
- "yesterday" : "გუშინ",
- "_%n day go_::_%n days ago_" : [""],
- "last month" : "გასულ თვეში",
- "_%n month ago_::_%n months ago_" : [""],
- "last year" : "ბოლო წელს",
- "years ago" : "წლის წინ",
"A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
"A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი"
},
diff --git a/lib/l10n/ka_GE.json b/lib/l10n/ka_GE.json
index a9e86ecb1ab..0371cfcfc90 100644
--- a/lib/l10n/ka_GE.json
+++ b/lib/l10n/ka_GE.json
@@ -4,6 +4,16 @@
"Settings" : "პარამეტრები",
"Users" : "მომხმარებელი",
"Admin" : "ადმინისტრატორი",
+ "today" : "დღეს",
+ "yesterday" : "გუშინ",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "გასულ თვეში",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ბოლო წელს",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "წამის წინ",
"web services under your control" : "web services under your control",
"Application is not enabled" : "აპლიკაცია არ არის აქტიური",
"Authentication error" : "ავთენტიფიკაციის შეცდომა",
@@ -21,16 +31,6 @@
"Set an admin username." : "დააყენეთ ადმინისტრატორის სახელი.",
"Set an admin password." : "დააყენეთ ადმინისტრატორის პაროლი.",
"Could not find category \"%s\"" : "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა",
- "seconds ago" : "წამის წინ",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
- "today" : "დღეს",
- "yesterday" : "გუშინ",
- "_%n day go_::_%n days ago_" : [""],
- "last month" : "გასულ თვეში",
- "_%n month ago_::_%n months ago_" : [""],
- "last year" : "ბოლო წელს",
- "years ago" : "წლის წინ",
"A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
"A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/km.js b/lib/l10n/km.js
index cfa1ea89ebb..4f96e661179 100644
--- a/lib/l10n/km.js
+++ b/lib/l10n/km.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "មិន​បាន​បញ្ជាក់​ឈ្មោះ​កម្មវិធី",
"Unknown filetype" : "មិន​ស្គាល់​ប្រភេទ​ឯកសារ",
"Invalid image" : "រូបភាព​មិន​ត្រឹម​ត្រូវ",
+ "today" : "ថ្ងៃនេះ",
+ "yesterday" : "ម្សិលមិញ",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "ខែមុន",
+ "_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
+ "last year" : "ឆ្នាំ​មុន",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
+ "seconds ago" : "វិនាទី​មុន",
"web services under your control" : "សេវាកម្ម​វេប​ក្រោម​ការ​ការ​បញ្ជា​របស់​អ្នក",
"App directory already exists" : "មាន​ទីតាំង​ផ្ទុក​កម្មវិធី​រួច​ហើយ",
"Can't create app folder. Please fix permissions. %s" : "មិន​អាច​បង្កើត​ថត​កម្មវិធី។ សូម​កែ​សម្រួល​សិទ្ធិ។ %s",
@@ -24,16 +34,6 @@ OC.L10N.register(
"Set an admin username." : "កំណត់​ឈ្មោះ​អ្នក​គ្រប់គ្រង។",
"Set an admin password." : "កំណត់​ពាក្យ​សម្ងាត់​អ្នក​គ្រប់គ្រង។",
"Could not find category \"%s\"" : "រក​មិន​ឃើញ​ចំណាត់​ក្រុម \"%s\"",
- "seconds ago" : "វិនាទី​មុន",
- "_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
- "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
- "today" : "ថ្ងៃនេះ",
- "yesterday" : "ម្សិលមិញ",
- "_%n day go_::_%n days ago_" : ["%n ថ្ងៃ​មុន"],
- "last month" : "ខែមុន",
- "_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
- "last year" : "ឆ្នាំ​មុន",
- "years ago" : "ឆ្នាំ​មុន",
"A valid username must be provided" : "ត្រូវ​ផ្ដល់​ឈ្មោះ​អ្នក​ប្រើ​ឲ្យ​បាន​ត្រឹម​ត្រូវ",
"A valid password must be provided" : "ត្រូវ​ផ្ដល់​ពាក្យ​សម្ងាត់​ឲ្យ​បាន​ត្រឹម​ត្រូវ"
},
diff --git a/lib/l10n/km.json b/lib/l10n/km.json
index 32b6173ba0d..9c1010b0020 100644
--- a/lib/l10n/km.json
+++ b/lib/l10n/km.json
@@ -7,6 +7,16 @@
"No app name specified" : "មិន​បាន​បញ្ជាក់​ឈ្មោះ​កម្មវិធី",
"Unknown filetype" : "មិន​ស្គាល់​ប្រភេទ​ឯកសារ",
"Invalid image" : "រូបភាព​មិន​ត្រឹម​ត្រូវ",
+ "today" : "ថ្ងៃនេះ",
+ "yesterday" : "ម្សិលមិញ",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "ខែមុន",
+ "_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
+ "last year" : "ឆ្នាំ​មុន",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
+ "seconds ago" : "វិនាទី​មុន",
"web services under your control" : "សេវាកម្ម​វេប​ក្រោម​ការ​ការ​បញ្ជា​របស់​អ្នក",
"App directory already exists" : "មាន​ទីតាំង​ផ្ទុក​កម្មវិធី​រួច​ហើយ",
"Can't create app folder. Please fix permissions. %s" : "មិន​អាច​បង្កើត​ថត​កម្មវិធី។ សូម​កែ​សម្រួល​សិទ្ធិ។ %s",
@@ -22,16 +32,6 @@
"Set an admin username." : "កំណត់​ឈ្មោះ​អ្នក​គ្រប់គ្រង។",
"Set an admin password." : "កំណត់​ពាក្យ​សម្ងាត់​អ្នក​គ្រប់គ្រង។",
"Could not find category \"%s\"" : "រក​មិន​ឃើញ​ចំណាត់​ក្រុម \"%s\"",
- "seconds ago" : "វិនាទី​មុន",
- "_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
- "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
- "today" : "ថ្ងៃនេះ",
- "yesterday" : "ម្សិលមិញ",
- "_%n day go_::_%n days ago_" : ["%n ថ្ងៃ​មុន"],
- "last month" : "ខែមុន",
- "_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
- "last year" : "ឆ្នាំ​មុន",
- "years ago" : "ឆ្នាំ​មុន",
"A valid username must be provided" : "ត្រូវ​ផ្ដល់​ឈ្មោះ​អ្នក​ប្រើ​ឲ្យ​បាន​ត្រឹម​ត្រូវ",
"A valid password must be provided" : "ត្រូវ​ផ្ដល់​ពាក្យ​សម្ងាត់​ឲ្យ​បាន​ត្រឹម​ត្រូវ"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/kn.js b/lib/l10n/kn.js
index 0f4a002019e..784e8271ef3 100644
--- a/lib/l10n/kn.js
+++ b/lib/l10n/kn.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/kn.json b/lib/l10n/kn.json
index 4a03cf5047e..3a3512d508d 100644
--- a/lib/l10n/kn.json
+++ b/lib/l10n/kn.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js
index 97acbb9c006..2ae43854873 100644
--- a/lib/l10n/ko.js
+++ b/lib/l10n/ko.js
@@ -10,6 +10,16 @@ OC.L10N.register(
"No app name specified" : "앱 이름이 지정되지 않았습니다.",
"Unknown filetype" : "알 수 없는 파일 형식",
"Invalid image" : "잘못된 그림",
+ "today" : "오늘",
+ "yesterday" : "어제",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "지난 달",
+ "_%n month ago_::_%n months ago_" : ["%n달 전 "],
+ "last year" : "작년",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
+ "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
+ "seconds ago" : "초 전",
"web services under your control" : "내가 관리하는 웹 서비스",
"App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
"Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
@@ -47,16 +57,6 @@ OC.L10N.register(
"Set an admin password." : "관리자의 암호를 설정합니다.",
"%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
"Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다.",
- "seconds ago" : "초 전",
- "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
- "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
- "today" : "오늘",
- "yesterday" : "어제",
- "_%n day go_::_%n days ago_" : ["%n일 전 "],
- "last month" : "지난 달",
- "_%n month ago_::_%n months ago_" : ["%n달 전 "],
- "last year" : "작년",
- "years ago" : "년 전",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "사용자 명에는 다음과 같은 문자만 사용이 가능합니다: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
"A valid password must be provided" : "올바른 암호를 입력해야 함",
diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json
index b3d3abcffb9..a021fb34dd2 100644
--- a/lib/l10n/ko.json
+++ b/lib/l10n/ko.json
@@ -8,6 +8,16 @@
"No app name specified" : "앱 이름이 지정되지 않았습니다.",
"Unknown filetype" : "알 수 없는 파일 형식",
"Invalid image" : "잘못된 그림",
+ "today" : "오늘",
+ "yesterday" : "어제",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "지난 달",
+ "_%n month ago_::_%n months ago_" : ["%n달 전 "],
+ "last year" : "작년",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
+ "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
+ "seconds ago" : "초 전",
"web services under your control" : "내가 관리하는 웹 서비스",
"App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
"Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
@@ -45,16 +55,6 @@
"Set an admin password." : "관리자의 암호를 설정합니다.",
"%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
"Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다.",
- "seconds ago" : "초 전",
- "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
- "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
- "today" : "오늘",
- "yesterday" : "어제",
- "_%n day go_::_%n days ago_" : ["%n일 전 "],
- "last month" : "지난 달",
- "_%n month ago_::_%n months ago_" : ["%n달 전 "],
- "last year" : "작년",
- "years ago" : "년 전",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "사용자 명에는 다음과 같은 문자만 사용이 가능합니다: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
"A valid password must be provided" : "올바른 암호를 입력해야 함",
diff --git a/lib/l10n/ku_IQ.js b/lib/l10n/ku_IQ.js
index 11313e28323..eea2d55138e 100644
--- a/lib/l10n/ku_IQ.js
+++ b/lib/l10n/ku_IQ.js
@@ -5,10 +5,11 @@ OC.L10N.register(
"Settings" : "ده‌ستكاری",
"Users" : "به‌كارهێنه‌ر",
"Admin" : "به‌ڕێوه‌به‌ری سه‌ره‌كی",
- "web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ku_IQ.json b/lib/l10n/ku_IQ.json
index 6a40446ac9d..b2ab2dc219d 100644
--- a/lib/l10n/ku_IQ.json
+++ b/lib/l10n/ku_IQ.json
@@ -3,10 +3,11 @@
"Settings" : "ده‌ستكاری",
"Users" : "به‌كارهێنه‌ر",
"Admin" : "به‌ڕێوه‌به‌ری سه‌ره‌كی",
- "web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/lb.js b/lib/l10n/lb.js
index 4a8b8277bbc..470652f4017 100644
--- a/lib/l10n/lb.js
+++ b/lib/l10n/lb.js
@@ -8,18 +8,18 @@ OC.L10N.register(
"Admin" : "Admin",
"Unknown filetype" : "Onbekannten Fichier Typ",
"Invalid image" : "Ongülteg d'Bild",
- "web services under your control" : "Web-Servicer ënnert denger Kontroll",
- "Authentication error" : "Authentifikatioun's Fehler",
- "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt",
- "seconds ago" : "Sekonnen hir",
- "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "haut",
"yesterday" : "gëschter",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "Läschte Mount",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "Läscht Joer",
- "years ago" : "Joren hier"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
+ "seconds ago" : "Sekonnen hir",
+ "web services under your control" : "Web-Servicer ënnert denger Kontroll",
+ "Authentication error" : "Authentifikatioun's Fehler",
+ "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/lb.json b/lib/l10n/lb.json
index e205f5e2fc3..2f63f042538 100644
--- a/lib/l10n/lb.json
+++ b/lib/l10n/lb.json
@@ -6,18 +6,18 @@
"Admin" : "Admin",
"Unknown filetype" : "Onbekannten Fichier Typ",
"Invalid image" : "Ongülteg d'Bild",
- "web services under your control" : "Web-Servicer ënnert denger Kontroll",
- "Authentication error" : "Authentifikatioun's Fehler",
- "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt",
- "seconds ago" : "Sekonnen hir",
- "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "haut",
"yesterday" : "gëschter",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "Läschte Mount",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "Läscht Joer",
- "years ago" : "Joren hier"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
+ "seconds ago" : "Sekonnen hir",
+ "web services under your control" : "Web-Servicer ënnert denger Kontroll",
+ "Authentication error" : "Authentifikatioun's Fehler",
+ "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js
index 999be472453..1f05855b77e 100644
--- a/lib/l10n/lt_LT.js
+++ b/lib/l10n/lt_LT.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "Nenurodytas programos pavadinimas",
"Unknown filetype" : "Nežinomas failo tipas",
"Invalid image" : "Netinkamas paveikslėlis",
+ "today" : "šiandien",
+ "yesterday" : "vakar",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "praeitą mėnesį",
+ "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
+ "last year" : "praeitais metais",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
+ "seconds ago" : "prieš sekundę",
"web services under your control" : "jūsų valdomos web paslaugos",
"App directory already exists" : "Programos aplankas jau egzistuoja",
"Can't create app folder. Please fix permissions. %s" : "Nepavyksta sukurti aplanko. Prašome pataisyti leidimus. %s",
@@ -40,16 +50,6 @@ OC.L10N.register(
"Set an admin password." : "Nustatyti administratoriaus slaptažodį.",
"%s shared »%s« with you" : "%s pasidalino »%s« su tavimi",
"Could not find category \"%s\"" : "Nepavyko rasti kategorijos „%s“",
- "seconds ago" : "prieš sekundę",
- "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
- "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
- "today" : "šiandien",
- "yesterday" : "vakar",
- "_%n day go_::_%n days ago_" : ["Prieš %n dieną","Prieš %n dienas","Prieš %n dienų"],
- "last month" : "praeitą mėnesį",
- "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
- "last year" : "praeitais metais",
- "years ago" : "prieš metus",
"A valid username must be provided" : "Vartotojo vardas turi būti tinkamas",
"A valid password must be provided" : "Slaptažodis turi būti tinkamas"
},
diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json
index fb4908440fb..a3a53baf010 100644
--- a/lib/l10n/lt_LT.json
+++ b/lib/l10n/lt_LT.json
@@ -7,6 +7,16 @@
"No app name specified" : "Nenurodytas programos pavadinimas",
"Unknown filetype" : "Nežinomas failo tipas",
"Invalid image" : "Netinkamas paveikslėlis",
+ "today" : "šiandien",
+ "yesterday" : "vakar",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "praeitą mėnesį",
+ "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
+ "last year" : "praeitais metais",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
+ "seconds ago" : "prieš sekundę",
"web services under your control" : "jūsų valdomos web paslaugos",
"App directory already exists" : "Programos aplankas jau egzistuoja",
"Can't create app folder. Please fix permissions. %s" : "Nepavyksta sukurti aplanko. Prašome pataisyti leidimus. %s",
@@ -38,16 +48,6 @@
"Set an admin password." : "Nustatyti administratoriaus slaptažodį.",
"%s shared »%s« with you" : "%s pasidalino »%s« su tavimi",
"Could not find category \"%s\"" : "Nepavyko rasti kategorijos „%s“",
- "seconds ago" : "prieš sekundę",
- "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
- "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
- "today" : "šiandien",
- "yesterday" : "vakar",
- "_%n day go_::_%n days ago_" : ["Prieš %n dieną","Prieš %n dienas","Prieš %n dienų"],
- "last month" : "praeitą mėnesį",
- "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
- "last year" : "praeitais metais",
- "years ago" : "prieš metus",
"A valid username must be provided" : "Vartotojo vardas turi būti tinkamas",
"A valid password must be provided" : "Slaptažodis turi būti tinkamas"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
diff --git a/lib/l10n/lv.js b/lib/l10n/lv.js
index 666d2e9d5f6..590aa136914 100644
--- a/lib/l10n/lv.js
+++ b/lib/l10n/lv.js
@@ -6,6 +6,16 @@ OC.L10N.register(
"Settings" : "Iestatījumi",
"Users" : "Lietotāji",
"Admin" : "Administratori",
+ "today" : "šodien",
+ "yesterday" : "vakar",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "pagājušajā mēnesī",
+ "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
+ "last year" : "gājušajā gadā",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
+ "seconds ago" : "sekundes atpakaļ",
"web services under your control" : "tīmekļa servisi tavā varā",
"Application is not enabled" : "Lietotne nav aktivēta",
"Authentication error" : "Autentifikācijas kļūda",
@@ -25,16 +35,6 @@ OC.L10N.register(
"Set an admin password." : "Iestatiet administratora paroli.",
"%s shared »%s« with you" : "%s kopīgots »%s« ar jums",
"Could not find category \"%s\"" : "Nevarēja atrast kategoriju “%s”",
- "seconds ago" : "sekundes atpakaļ",
- "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
- "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
- "today" : "šodien",
- "yesterday" : "vakar",
- "_%n day go_::_%n days ago_" : ["","","Pirms %n dienām"],
- "last month" : "pagājušajā mēnesī",
- "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
- "last year" : "gājušajā gadā",
- "years ago" : "gadus atpakaļ",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
"A valid password must be provided" : "Jānorāda derīga parole",
"The username is already being used" : "Šāds lietotājvārds jau tiek izmantots"
diff --git a/lib/l10n/lv.json b/lib/l10n/lv.json
index 42bcc70e12d..983de7afa5d 100644
--- a/lib/l10n/lv.json
+++ b/lib/l10n/lv.json
@@ -4,6 +4,16 @@
"Settings" : "Iestatījumi",
"Users" : "Lietotāji",
"Admin" : "Administratori",
+ "today" : "šodien",
+ "yesterday" : "vakar",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "pagājušajā mēnesī",
+ "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
+ "last year" : "gājušajā gadā",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
+ "seconds ago" : "sekundes atpakaļ",
"web services under your control" : "tīmekļa servisi tavā varā",
"Application is not enabled" : "Lietotne nav aktivēta",
"Authentication error" : "Autentifikācijas kļūda",
@@ -23,16 +33,6 @@
"Set an admin password." : "Iestatiet administratora paroli.",
"%s shared »%s« with you" : "%s kopīgots »%s« ar jums",
"Could not find category \"%s\"" : "Nevarēja atrast kategoriju “%s”",
- "seconds ago" : "sekundes atpakaļ",
- "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
- "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
- "today" : "šodien",
- "yesterday" : "vakar",
- "_%n day go_::_%n days ago_" : ["","","Pirms %n dienām"],
- "last month" : "pagājušajā mēnesī",
- "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
- "last year" : "gājušajā gadā",
- "years ago" : "gadus atpakaļ",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
"A valid password must be provided" : "Jānorāda derīga parole",
"The username is already being used" : "Šāds lietotājvārds jau tiek izmantots"
diff --git a/lib/l10n/mg.js b/lib/l10n/mg.js
index 9ac3e05d6c6..9408adc0dc3 100644
--- a/lib/l10n/mg.js
+++ b/lib/l10n/mg.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/mg.json b/lib/l10n/mg.json
index 82a8a99d300..2a227e468c7 100644
--- a/lib/l10n/mg.json
+++ b/lib/l10n/mg.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/mk.js b/lib/l10n/mk.js
index 35166454dd2..5ab596f4c95 100644
--- a/lib/l10n/mk.js
+++ b/lib/l10n/mk.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"No app name specified" : "Не е специфицирано име на апликацијата",
"Unknown filetype" : "Непознат тип на датотека",
"Invalid image" : "Невалидна фотографија",
+ "today" : "денеска",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "минатиот месец",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "минатата година",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "пред секунди",
"web services under your control" : "веб сервиси под Ваша контрола",
"Application is not enabled" : "Апликацијата не е овозможена",
"Authentication error" : "Грешка во автентикација",
@@ -25,16 +35,6 @@ OC.L10N.register(
"Set an admin password." : "Постави администраторска лозинка.",
"%s shared »%s« with you" : "%s споделено »%s« со вас",
"Could not find category \"%s\"" : "Не можам да најдам категорија „%s“",
- "seconds ago" : "пред секунди",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "today" : "денеска",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["",""],
- "last month" : "минатиот месец",
- "_%n month ago_::_%n months ago_" : ["",""],
- "last year" : "минатата година",
- "years ago" : "пред години",
"A valid username must be provided" : "Мора да се обезбеди валидно корисничко име ",
"A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
"The username is already being used" : "Корисничкото име е веќе во употреба"
diff --git a/lib/l10n/mk.json b/lib/l10n/mk.json
index 89e839919b9..de9fff6b1a1 100644
--- a/lib/l10n/mk.json
+++ b/lib/l10n/mk.json
@@ -7,6 +7,16 @@
"No app name specified" : "Не е специфицирано име на апликацијата",
"Unknown filetype" : "Непознат тип на датотека",
"Invalid image" : "Невалидна фотографија",
+ "today" : "денеска",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "минатиот месец",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "минатата година",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "пред секунди",
"web services under your control" : "веб сервиси под Ваша контрола",
"Application is not enabled" : "Апликацијата не е овозможена",
"Authentication error" : "Грешка во автентикација",
@@ -23,16 +33,6 @@
"Set an admin password." : "Постави администраторска лозинка.",
"%s shared »%s« with you" : "%s споделено »%s« со вас",
"Could not find category \"%s\"" : "Не можам да најдам категорија „%s“",
- "seconds ago" : "пред секунди",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
- "today" : "денеска",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["",""],
- "last month" : "минатиот месец",
- "_%n month ago_::_%n months ago_" : ["",""],
- "last year" : "минатата година",
- "years ago" : "пред години",
"A valid username must be provided" : "Мора да се обезбеди валидно корисничко име ",
"A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
"The username is already being used" : "Корисничкото име е веќе во употреба"
diff --git a/lib/l10n/ml.js b/lib/l10n/ml.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/ml.js
+++ b/lib/l10n/ml.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ml.json b/lib/l10n/ml.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/ml.json
+++ b/lib/l10n/ml.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ml_IN.js b/lib/l10n/ml_IN.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/ml_IN.js
+++ b/lib/l10n/ml_IN.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ml_IN.json b/lib/l10n/ml_IN.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/ml_IN.json
+++ b/lib/l10n/ml_IN.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/mn.js b/lib/l10n/mn.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/mn.js
+++ b/lib/l10n/mn.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/mn.json b/lib/l10n/mn.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/mn.json
+++ b/lib/l10n/mn.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ms_MY.js b/lib/l10n/ms_MY.js
index 2a74f51e2f6..a501399af5c 100644
--- a/lib/l10n/ms_MY.js
+++ b/lib/l10n/ms_MY.js
@@ -6,11 +6,12 @@ OC.L10N.register(
"Settings" : "Tetapan",
"Users" : "Pengguna",
"Admin" : "Admin",
- "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
- "Authentication error" : "Ralat pengesahan",
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
+ "Authentication error" : "Ralat pengesahan"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/ms_MY.json b/lib/l10n/ms_MY.json
index 5285610e70a..8c2a83136ee 100644
--- a/lib/l10n/ms_MY.json
+++ b/lib/l10n/ms_MY.json
@@ -4,11 +4,12 @@
"Settings" : "Tetapan",
"Users" : "Pengguna",
"Admin" : "Admin",
- "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
- "Authentication error" : "Ralat pengesahan",
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
+ "Authentication error" : "Ralat pengesahan"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/mt_MT.js b/lib/l10n/mt_MT.js
index 9112b35ebe4..b26809fe0cb 100644
--- a/lib/l10n/mt_MT.js
+++ b/lib/l10n/mt_MT.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
- "_%n day go_::_%n days ago_" : ["","","",""],
- "_%n month ago_::_%n months ago_" : ["","","",""]
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""]
},
"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);");
diff --git a/lib/l10n/mt_MT.json b/lib/l10n/mt_MT.json
index 6b794297014..e87af1606cd 100644
--- a/lib/l10n/mt_MT.json
+++ b/lib/l10n/mt_MT.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
- "_%n day go_::_%n days ago_" : ["","","",""],
- "_%n month ago_::_%n months ago_" : ["","","",""]
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""]
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"
} \ No newline at end of file
diff --git a/lib/l10n/my_MM.js b/lib/l10n/my_MM.js
index c08021fdbd3..50489cd16c2 100644
--- a/lib/l10n/my_MM.js
+++ b/lib/l10n/my_MM.js
@@ -4,18 +4,18 @@ OC.L10N.register(
"Help" : "အကူအညီ",
"Users" : "သုံးစွဲသူ",
"Admin" : "အက်ဒမင်",
- "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
- "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
- "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ",
- "seconds ago" : "စက္ကန့်အနည်းငယ်က",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "ယနေ့",
"yesterday" : "မနေ့က",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "ပြီးခဲ့သောလ",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "မနှစ်က",
- "years ago" : "နှစ် အရင်က"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "စက္ကန့်အနည်းငယ်က",
+ "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
+ "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
+ "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/my_MM.json b/lib/l10n/my_MM.json
index 3756c65ae0b..c0b2bd97df3 100644
--- a/lib/l10n/my_MM.json
+++ b/lib/l10n/my_MM.json
@@ -2,18 +2,18 @@
"Help" : "အကူအညီ",
"Users" : "သုံးစွဲသူ",
"Admin" : "အက်ဒမင်",
- "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
- "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
- "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ",
- "seconds ago" : "စက္ကန့်အနည်းငယ်က",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "ယနေ့",
"yesterday" : "မနေ့က",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "ပြီးခဲ့သောလ",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "မနှစ်က",
- "years ago" : "နှစ် အရင်က"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "စက္ကန့်အနည်းငယ်က",
+ "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
+ "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
+ "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js
index ff563266f66..2094a3bb6e6 100644
--- a/lib/l10n/nb_NO.js
+++ b/lib/l10n/nb_NO.js
@@ -17,6 +17,16 @@ OC.L10N.register(
"No app name specified" : "Intet app-navn spesifisert",
"Unknown filetype" : "Ukjent filtype",
"Invalid image" : "Ugyldig bilde",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "forrige måned",
+ "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
+ "last year" : "forrige år",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
+ "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
+ "seconds ago" : "for få sekunder siden",
"web services under your control" : "webtjenester som du kontrollerer",
"App directory already exists" : "App-mappe finnes allerede",
"Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s",
@@ -78,16 +88,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s feilet, fordi delings-serveren for %s ikke kunne finne kilden",
"Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s feilet, fordi filen ikke ble funnet i fil-mellomlageret",
"Could not find category \"%s\"" : "Kunne ikke finne kategori \"%s\"",
- "seconds ago" : "for få sekunder siden",
- "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
- "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["for %n dag siden","for %n dager siden"],
- "last month" : "forrige måned",
- "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
- "last year" : "forrige år",
- "years ago" : "årevis siden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bare disse tegnene tillates i et brukernavn: \"a-z\", \"A-Z\", \"0-9\" og \"_.@-\"",
"A valid username must be provided" : "Oppgi et gyldig brukernavn",
"A valid password must be provided" : "Oppgi et gyldig passord",
@@ -104,10 +104,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Be server-administratoren om å installere modulen.",
"PHP module %s not installed." : "PHP-modul %s er ikke installert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
"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",
diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json
index 5ae49378b6f..b42f8c3132d 100644
--- a/lib/l10n/nb_NO.json
+++ b/lib/l10n/nb_NO.json
@@ -15,6 +15,16 @@
"No app name specified" : "Intet app-navn spesifisert",
"Unknown filetype" : "Ukjent filtype",
"Invalid image" : "Ugyldig bilde",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "forrige måned",
+ "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
+ "last year" : "forrige år",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
+ "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
+ "seconds ago" : "for få sekunder siden",
"web services under your control" : "webtjenester som du kontrollerer",
"App directory already exists" : "App-mappe finnes allerede",
"Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s",
@@ -76,16 +86,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s feilet, fordi delings-serveren for %s ikke kunne finne kilden",
"Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s feilet, fordi filen ikke ble funnet i fil-mellomlageret",
"Could not find category \"%s\"" : "Kunne ikke finne kategori \"%s\"",
- "seconds ago" : "for få sekunder siden",
- "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
- "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["for %n dag siden","for %n dager siden"],
- "last month" : "forrige måned",
- "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
- "last year" : "forrige år",
- "years ago" : "årevis siden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bare disse tegnene tillates i et brukernavn: \"a-z\", \"A-Z\", \"0-9\" og \"_.@-\"",
"A valid username must be provided" : "Oppgi et gyldig brukernavn",
"A valid password must be provided" : "Oppgi et gyldig passord",
@@ -102,10 +102,6 @@
"Please ask your server administrator to install the module." : "Be server-administratoren om å installere modulen.",
"PHP module %s not installed." : "PHP-modul %s er ikke installert.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
"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",
diff --git a/lib/l10n/nds.js b/lib/l10n/nds.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/nds.js
+++ b/lib/l10n/nds.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/nds.json b/lib/l10n/nds.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/nds.json
+++ b/lib/l10n/nds.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ne.js b/lib/l10n/ne.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/ne.js
+++ b/lib/l10n/ne.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ne.json b/lib/l10n/ne.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/ne.json
+++ b/lib/l10n/ne.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index 5bd8569ad87..c1447dc930f 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Voorbeeldconfiguratie gevonden",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Blijkbaar is de voorbeeldconfiguratie gekopieerd. Dit kan uw installatie beschadigen en wordt niet dan ook ondersteund. Lees de documentatie voordat u wijzigingen aan config.php doorvoert",
"PHP %s or higher is required." : "PHP %s of hoger vereist.",
+ "PHP with a version less then %s is required." : "PHP met een versie lager dan %s is vereist.",
+ "Following databases are supported: %s" : "De volgende databases worden ondersteund: %s",
"Help" : "Help",
"Personal" : "Persoonlijk",
"Settings" : "Instellingen",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Geen app naam opgegeven.",
"Unknown filetype" : "Onbekend bestandsformaat",
"Invalid image" : "Ongeldige afbeelding",
+ "today" : "vandaag",
+ "yesterday" : "gisteren",
+ "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"],
+ "last month" : "vorige maand",
+ "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
+ "last year" : "vorig jaar",
+ "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaar geleden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
+ "seconds ago" : "seconden geleden",
"Database Error" : "Database fout",
"Please contact your system administrator." : "Neem contact op met uw systeembeheerder.",
"web services under your control" : "Webdiensten in eigen beheer",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Delen van %s is mislukt, omdat de share-backend voor %s de bron niet kon vinden",
"Sharing %s failed, because the file could not be found in the file cache" : "Delen van %s is mislukt, omdat het bestand niet in de bestandscache kon worden gevonden",
"Could not find category \"%s\"" : "Kon categorie \"%s\" niet vinden",
- "seconds ago" : "seconden geleden",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
- "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
- "today" : "vandaag",
- "yesterday" : "gisteren",
- "_%n day go_::_%n days ago_" : ["%n dag terug","%n dagen geleden"],
- "last month" : "vorige maand",
- "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
- "last year" : "vorig jaar",
- "years ago" : "jaar geleden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Alleen de volgende tekens zijn toegestaan in een gebruikersnaam: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
"A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Vraag uw beheerder om de module te installeren.",
"PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is ingeschakeld. Voor een goede werking van ownCloud moet die modus zijn uitgeschakeld.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is geactiveerd. Voor een goede werking van ownCloud moet dit zijn uitgeschakeld.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
"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",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index f504ecdcad1..974b69a7270 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Voorbeeldconfiguratie gevonden",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Blijkbaar is de voorbeeldconfiguratie gekopieerd. Dit kan uw installatie beschadigen en wordt niet dan ook ondersteund. Lees de documentatie voordat u wijzigingen aan config.php doorvoert",
"PHP %s or higher is required." : "PHP %s of hoger vereist.",
+ "PHP with a version less then %s is required." : "PHP met een versie lager dan %s is vereist.",
+ "Following databases are supported: %s" : "De volgende databases worden ondersteund: %s",
"Help" : "Help",
"Personal" : "Persoonlijk",
"Settings" : "Instellingen",
@@ -16,6 +18,16 @@
"No app name specified" : "Geen app naam opgegeven.",
"Unknown filetype" : "Onbekend bestandsformaat",
"Invalid image" : "Ongeldige afbeelding",
+ "today" : "vandaag",
+ "yesterday" : "gisteren",
+ "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"],
+ "last month" : "vorige maand",
+ "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
+ "last year" : "vorig jaar",
+ "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaar geleden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
+ "seconds ago" : "seconden geleden",
"Database Error" : "Database fout",
"Please contact your system administrator." : "Neem contact op met uw systeembeheerder.",
"web services under your control" : "Webdiensten in eigen beheer",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Delen van %s is mislukt, omdat de share-backend voor %s de bron niet kon vinden",
"Sharing %s failed, because the file could not be found in the file cache" : "Delen van %s is mislukt, omdat het bestand niet in de bestandscache kon worden gevonden",
"Could not find category \"%s\"" : "Kon categorie \"%s\" niet vinden",
- "seconds ago" : "seconden geleden",
- "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
- "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
- "today" : "vandaag",
- "yesterday" : "gisteren",
- "_%n day go_::_%n days ago_" : ["%n dag terug","%n dagen geleden"],
- "last month" : "vorige maand",
- "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
- "last year" : "vorig jaar",
- "years ago" : "jaar geleden",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Alleen de volgende tekens zijn toegestaan in een gebruikersnaam: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
"A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Vraag uw beheerder om de module te installeren.",
"PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is ingeschakeld. Voor een goede werking van ownCloud moet die modus zijn uitgeschakeld.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is geactiveerd. Voor een goede werking van ownCloud moet dit zijn uitgeschakeld.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
"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",
diff --git a/lib/l10n/nn_NO.js b/lib/l10n/nn_NO.js
index a8424759edd..b16dd54cc18 100644
--- a/lib/l10n/nn_NO.js
+++ b/lib/l10n/nn_NO.js
@@ -8,19 +8,19 @@ OC.L10N.register(
"Admin" : "Administrer",
"Unknown filetype" : "Ukjend filtype",
"Invalid image" : "Ugyldig bilete",
- "web services under your control" : "Vev tjenester under din kontroll",
- "Authentication error" : "Feil i autentisering",
- "%s shared »%s« with you" : "%s delte «%s» med deg",
- "seconds ago" : "sekund sidan",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
- "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
"today" : "i dag",
"yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["","%n dagar sidan"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "førre månad",
"_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
"last year" : "i fjor",
- "years ago" : "år sidan",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
+ "seconds ago" : "sekund sidan",
+ "web services under your control" : "Vev tjenester under din kontroll",
+ "Authentication error" : "Feil i autentisering",
+ "%s shared »%s« with you" : "%s delte «%s» med deg",
"A valid username must be provided" : "Du må oppgje eit gyldig brukarnamn",
"A valid password must be provided" : "Du må oppgje eit gyldig passord"
},
diff --git a/lib/l10n/nn_NO.json b/lib/l10n/nn_NO.json
index 582a7289718..6dad7797027 100644
--- a/lib/l10n/nn_NO.json
+++ b/lib/l10n/nn_NO.json
@@ -6,19 +6,19 @@
"Admin" : "Administrer",
"Unknown filetype" : "Ukjend filtype",
"Invalid image" : "Ugyldig bilete",
- "web services under your control" : "Vev tjenester under din kontroll",
- "Authentication error" : "Feil i autentisering",
- "%s shared »%s« with you" : "%s delte «%s» med deg",
- "seconds ago" : "sekund sidan",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
- "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
"today" : "i dag",
"yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["","%n dagar sidan"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "førre månad",
"_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
"last year" : "i fjor",
- "years ago" : "år sidan",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
+ "seconds ago" : "sekund sidan",
+ "web services under your control" : "Vev tjenester under din kontroll",
+ "Authentication error" : "Feil i autentisering",
+ "%s shared »%s« with you" : "%s delte «%s» med deg",
"A valid username must be provided" : "Du må oppgje eit gyldig brukarnamn",
"A valid password must be provided" : "Du må oppgje eit gyldig passord"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/nqo.js b/lib/l10n/nqo.js
index 0f4a002019e..784e8271ef3 100644
--- a/lib/l10n/nqo.js
+++ b/lib/l10n/nqo.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/nqo.json b/lib/l10n/nqo.json
index 4a03cf5047e..3a3512d508d 100644
--- a/lib/l10n/nqo.json
+++ b/lib/l10n/nqo.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/oc.js b/lib/l10n/oc.js
index b6419372101..4c16d7ec821 100644
--- a/lib/l10n/oc.js
+++ b/lib/l10n/oc.js
@@ -6,17 +6,17 @@ OC.L10N.register(
"Settings" : "Configuracion",
"Users" : "Usancièrs",
"Admin" : "Admin",
- "web services under your control" : "Services web jos ton contraròtle",
- "Authentication error" : "Error d'autentificacion",
- "seconds ago" : "segonda a",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "uèi",
"yesterday" : "ièr",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "mes passat",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "an passat",
- "years ago" : "ans a"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "segonda a",
+ "web services under your control" : "Services web jos ton contraròtle",
+ "Authentication error" : "Error d'autentificacion"
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/oc.json b/lib/l10n/oc.json
index df72d194def..9ebedb6f913 100644
--- a/lib/l10n/oc.json
+++ b/lib/l10n/oc.json
@@ -4,17 +4,17 @@
"Settings" : "Configuracion",
"Users" : "Usancièrs",
"Admin" : "Admin",
- "web services under your control" : "Services web jos ton contraròtle",
- "Authentication error" : "Error d'autentificacion",
- "seconds ago" : "segonda a",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "uèi",
"yesterday" : "ièr",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "mes passat",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "an passat",
- "years ago" : "ans a"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "segonda a",
+ "web services under your control" : "Services web jos ton contraròtle",
+ "Authentication error" : "Error d'autentificacion"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/or_IN.js b/lib/l10n/or_IN.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/or_IN.js
+++ b/lib/l10n/or_IN.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/or_IN.json b/lib/l10n/or_IN.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/or_IN.json
+++ b/lib/l10n/or_IN.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/pa.js b/lib/l10n/pa.js
index 0c3dd4c553e..5b3f0a80f6a 100644
--- a/lib/l10n/pa.js
+++ b/lib/l10n/pa.js
@@ -2,15 +2,15 @@ OC.L10N.register(
"lib",
{
"Settings" : "ਸੈਟਿੰਗ",
- "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "ਅੱਜ",
"yesterday" : "ਕੱਲ੍ਹ",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "ਪਿਛਲੇ ਸਾਲ",
- "years ago" : "ਸਾਲਾਂ ਪਹਿਲਾਂ"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/pa.json b/lib/l10n/pa.json
index 4fc6757c692..254909bc8b4 100644
--- a/lib/l10n/pa.json
+++ b/lib/l10n/pa.json
@@ -1,14 +1,14 @@
{ "translations": {
"Settings" : "ਸੈਟਿੰਗ",
- "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "ਅੱਜ",
"yesterday" : "ਕੱਲ੍ਹ",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "ਪਿਛਲੇ ਸਾਲ",
- "years ago" : "ਸਾਲਾਂ ਪਹਿਲਾਂ"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js
index 33a91c57d9a..4382655be43 100644
--- a/lib/l10n/pl.js
+++ b/lib/l10n/pl.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Nie określono nazwy aplikacji",
"Unknown filetype" : "Nieznany typ pliku",
"Invalid image" : "Błędne zdjęcie",
+ "today" : "dziś",
+ "yesterday" : "wczoraj",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "w zeszłym miesiącu",
+ "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
+ "last year" : "w zeszłym roku",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
+ "seconds ago" : "sekund temu",
"web services under your control" : "Kontrolowane serwisy",
"App directory already exists" : "Katalog aplikacji już isnieje",
"Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Współdzielenie %s nie powiodło się, ponieważ zaplecze współdzielenia dla %s nie mogło znaleźć jego źródła",
"Sharing %s failed, because the file could not be found in the file cache" : "Współdzielenie %s nie powiodło się, ponieważ plik nie może zostać odnaleziony w buforze plików",
"Could not find category \"%s\"" : "Nie można odnaleźć kategorii \"%s\"",
- "seconds ago" : "sekund temu",
- "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
- "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
- "today" : "dziś",
- "yesterday" : "wczoraj",
- "_%n day go_::_%n days ago_" : ["%n dzień temu","%n dni temu","%n dni temu"],
- "last month" : "w zeszłym miesiącu",
- "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
- "last year" : "w zeszłym roku",
- "years ago" : "lat temu",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "W nazwach użytkowników dozwolone są wyłącznie następujące znaki: \"a-z\", \"A-Z\", \"0-9\", oraz \"_.@-\"",
"A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
"A valid password must be provided" : "Należy podać prawidłowe hasło",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
"PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Bezpieczny tryb PHP jest aktywny. ownCloud do poprawnej pracy wymaga aby był on wyłączony.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Bezpieczny tryb PHP jest przestarzały i w większości bezużyteczny i powinien być wyłączony. Proszę poproś administratora serwera aby wyłączył go w php.ini lub w pliku konfiguracyjnym serwera www.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes są włączone. Do poprawnego działania ownCloud wymagane jest ich wyłączenie.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes to przestarzałe i zasadniczo bezużyteczne ustawienie, które powinno być wyłączone. Poproś administratora serwera, by wyłączył je w php.ini albo w konfiguracji serwera www.",
"PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
"Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
"PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json
index 896757fecda..05da756aff4 100644
--- a/lib/l10n/pl.json
+++ b/lib/l10n/pl.json
@@ -16,6 +16,16 @@
"No app name specified" : "Nie określono nazwy aplikacji",
"Unknown filetype" : "Nieznany typ pliku",
"Invalid image" : "Błędne zdjęcie",
+ "today" : "dziś",
+ "yesterday" : "wczoraj",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "w zeszłym miesiącu",
+ "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
+ "last year" : "w zeszłym roku",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
+ "seconds ago" : "sekund temu",
"web services under your control" : "Kontrolowane serwisy",
"App directory already exists" : "Katalog aplikacji już isnieje",
"Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Współdzielenie %s nie powiodło się, ponieważ zaplecze współdzielenia dla %s nie mogło znaleźć jego źródła",
"Sharing %s failed, because the file could not be found in the file cache" : "Współdzielenie %s nie powiodło się, ponieważ plik nie może zostać odnaleziony w buforze plików",
"Could not find category \"%s\"" : "Nie można odnaleźć kategorii \"%s\"",
- "seconds ago" : "sekund temu",
- "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
- "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
- "today" : "dziś",
- "yesterday" : "wczoraj",
- "_%n day go_::_%n days ago_" : ["%n dzień temu","%n dni temu","%n dni temu"],
- "last month" : "w zeszłym miesiącu",
- "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
- "last year" : "w zeszłym roku",
- "years ago" : "lat temu",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "W nazwach użytkowników dozwolone są wyłącznie następujące znaki: \"a-z\", \"A-Z\", \"0-9\", oraz \"_.@-\"",
"A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
"A valid password must be provided" : "Należy podać prawidłowe hasło",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
"PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Bezpieczny tryb PHP jest aktywny. ownCloud do poprawnej pracy wymaga aby był on wyłączony.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Bezpieczny tryb PHP jest przestarzały i w większości bezużyteczny i powinien być wyłączony. Proszę poproś administratora serwera aby wyłączył go w php.ini lub w pliku konfiguracyjnym serwera www.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes są włączone. Do poprawnego działania ownCloud wymagane jest ich wyłączenie.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes to przestarzałe i zasadniczo bezużyteczne ustawienie, które powinno być wyłączone. Poproś administratora serwera, by wyłączył je w php.ini albo w konfiguracji serwera www.",
"PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
"Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
"PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 8e0b5f3bf08..dc1ce447b61 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Exemplo de configuração detectada",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
"PHP %s or higher is required." : "É requerido PHP %s ou superior.",
+ "PHP with a version less then %s is required." : "É requerida uma versão PHP mais antiga que a %s .",
+ "Following databases are supported: %s" : "Following databases are supported: %s",
"Help" : "Ajuda",
"Personal" : "Pessoal",
"Settings" : "Configurações",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "O nome do aplicativo não foi especificado.",
"Unknown filetype" : "Tipo de arquivo desconhecido",
"Invalid image" : "Imagem inválida",
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"],
+ "last month" : "último mês",
+ "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
+ "last year" : "último ano",
+ "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"],
+ "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
+ "seconds ago" : "segundos atrás",
"Database Error" : "Erro no Banco de Dados",
"Please contact your system administrator." : "Por favor cotactar seu administrador do sistema.",
"web services under your control" : "serviços web sob seu controle",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartilhamento %s falhou, porque a infra-estrutura de compartilhamento para %s não conseguiu encontrar a sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartilhamento %s falhou, porque o arquivo não pôde ser encontrado no cache de arquivos",
"Could not find category \"%s\"" : "Impossível localizar categoria \"%s\"",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
- "today" : "hoje",
- "yesterday" : "ontem",
- "_%n day go_::_%n days ago_" : ["","ha %n dias"],
- "last month" : "último mês",
- "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
- "last year" : "último ano",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Somente os seguintes caracteres são permitidos no nome do usuário: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Forneça um nome de usuário válido",
"A valid password must be provided" : "Forneça uma senha válida",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Por favor, peça ao seu administrador do servidor para instalar o módulo.",
"PHP module %s not installed." : "Módulo PHP %s não instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
"PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
"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",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index 9b4983f6dfb..18fa28d1d7c 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Exemplo de configuração detectada",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
"PHP %s or higher is required." : "É requerido PHP %s ou superior.",
+ "PHP with a version less then %s is required." : "É requerida uma versão PHP mais antiga que a %s .",
+ "Following databases are supported: %s" : "Following databases are supported: %s",
"Help" : "Ajuda",
"Personal" : "Pessoal",
"Settings" : "Configurações",
@@ -16,6 +18,16 @@
"No app name specified" : "O nome do aplicativo não foi especificado.",
"Unknown filetype" : "Tipo de arquivo desconhecido",
"Invalid image" : "Imagem inválida",
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"],
+ "last month" : "último mês",
+ "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
+ "last year" : "último ano",
+ "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"],
+ "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
+ "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
+ "seconds ago" : "segundos atrás",
"Database Error" : "Erro no Banco de Dados",
"Please contact your system administrator." : "Por favor cotactar seu administrador do sistema.",
"web services under your control" : "serviços web sob seu controle",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartilhamento %s falhou, porque a infra-estrutura de compartilhamento para %s não conseguiu encontrar a sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "Compartilhamento %s falhou, porque o arquivo não pôde ser encontrado no cache de arquivos",
"Could not find category \"%s\"" : "Impossível localizar categoria \"%s\"",
- "seconds ago" : "segundos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
- "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
- "today" : "hoje",
- "yesterday" : "ontem",
- "_%n day go_::_%n days ago_" : ["","ha %n dias"],
- "last month" : "último mês",
- "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
- "last year" : "último ano",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Somente os seguintes caracteres são permitidos no nome do usuário: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Forneça um nome de usuário válido",
"A valid password must be provided" : "Forneça uma senha válida",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Por favor, peça ao seu administrador do servidor para instalar o módulo.",
"PHP module %s not installed." : "Módulo PHP %s não instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
"PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
"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",
diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js
index ebb5ddd8d45..5629ffc2037 100644
--- a/lib/l10n/pt_PT.js
+++ b/lib/l10n/pt_PT.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "O nome da aplicação não foi especificado",
"Unknown filetype" : "Ficheiro desconhecido",
"Invalid image" : "Imagem inválida",
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "ultímo mês",
+ "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
+ "last year" : "ano passado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
+ "seconds ago" : "Minutos atrás",
"Database Error" : "Erro da Base de Dados",
"Please contact your system administrator." : "Por favor contacte o administrador do sistema.",
"web services under your control" : "serviços web sob o seu controlo",
@@ -81,16 +91,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "A partilha %s falhou, devido a partilha em segundo plano para %s não conseguir encontrar a sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "A partilha %s falhou, devido ao ficheiro não poder ser encontrado na cache de ficheiros",
"Could not find category \"%s\"" : "Não foi encontrado a categoria \"%s\"",
- "seconds ago" : "Minutos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
- "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
- "today" : "hoje",
- "yesterday" : "ontem",
- "_%n day go_::_%n days ago_" : ["","%n dias atrás"],
- "last month" : "ultímo mês",
- "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
- "last year" : "ano passado",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Apenas os seguintes caracteres são permitidos no nome de utilizador: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Um nome de utilizador válido deve ser fornecido",
"A valid password must be provided" : "Uma password válida deve ser fornecida",
@@ -107,10 +107,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Por favor pergunte ao seu administrador do servidor para instalar o modulo.",
"PHP module %s not installed." : "O modulo %s PHP não está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activo. O ownCloud requer que isto esteja desactivado para funcionar em condições.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro PHP está obsoleto e a maior parte das definições inúteis devem ser desactivadas. Por favor pessa ao seu administrador de servidor para desactivar isto em php.ini ou no seu config do servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Aspas mágicas estão activadas. O ownCloud requere que isto esteja desactivado para trabalhar em condições.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "As aspas mágicas é uma definição obsoleta e inútil que deve ser desactivada. Por favor pessa ao seu administrador do servidor para desactivar isto em php.ini ou no config do seu servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
"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",
diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json
index ae35da25bdc..7f1a1e5e1bf 100644
--- a/lib/l10n/pt_PT.json
+++ b/lib/l10n/pt_PT.json
@@ -16,6 +16,16 @@
"No app name specified" : "O nome da aplicação não foi especificado",
"Unknown filetype" : "Ficheiro desconhecido",
"Invalid image" : "Imagem inválida",
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "ultímo mês",
+ "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
+ "last year" : "ano passado",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
+ "seconds ago" : "Minutos atrás",
"Database Error" : "Erro da Base de Dados",
"Please contact your system administrator." : "Por favor contacte o administrador do sistema.",
"web services under your control" : "serviços web sob o seu controlo",
@@ -79,16 +89,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "A partilha %s falhou, devido a partilha em segundo plano para %s não conseguir encontrar a sua fonte",
"Sharing %s failed, because the file could not be found in the file cache" : "A partilha %s falhou, devido ao ficheiro não poder ser encontrado na cache de ficheiros",
"Could not find category \"%s\"" : "Não foi encontrado a categoria \"%s\"",
- "seconds ago" : "Minutos atrás",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
- "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
- "today" : "hoje",
- "yesterday" : "ontem",
- "_%n day go_::_%n days ago_" : ["","%n dias atrás"],
- "last month" : "ultímo mês",
- "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
- "last year" : "ano passado",
- "years ago" : "anos atrás",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Apenas os seguintes caracteres são permitidos no nome de utilizador: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
"A valid username must be provided" : "Um nome de utilizador válido deve ser fornecido",
"A valid password must be provided" : "Uma password válida deve ser fornecida",
@@ -105,10 +105,6 @@
"Please ask your server administrator to install the module." : "Por favor pergunte ao seu administrador do servidor para instalar o modulo.",
"PHP module %s not installed." : "O modulo %s PHP não está instalado.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activo. O ownCloud requer que isto esteja desactivado para funcionar em condições.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro PHP está obsoleto e a maior parte das definições inúteis devem ser desactivadas. Por favor pessa ao seu administrador de servidor para desactivar isto em php.ini ou no seu config do servidor web.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Aspas mágicas estão activadas. O ownCloud requere que isto esteja desactivado para trabalhar em condições.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "As aspas mágicas é uma definição obsoleta e inútil que deve ser desactivada. Por favor pessa ao seu administrador do servidor para desactivar isto em php.ini ou no config do seu servidor web.",
"PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
"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",
diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js
index e7596313c1f..08d5d9bb5b4 100644
--- a/lib/l10n/ro.js
+++ b/lib/l10n/ro.js
@@ -13,6 +13,16 @@ OC.L10N.register(
"No app name specified" : "Niciun nume de aplicație specificat",
"Unknown filetype" : "Tip fișier necunoscut",
"Invalid image" : "Imagine invalidă",
+ "today" : "astăzi",
+ "yesterday" : "ieri",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "ultima lună",
+ "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
+ "last year" : "ultimul an",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
+ "seconds ago" : "secunde în urmă",
"web services under your control" : "servicii web controlate de tine",
"Application is not enabled" : "Aplicația nu este activată",
"Authentication error" : "Eroare la autentificare",
@@ -34,16 +44,6 @@ OC.L10N.register(
"You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
"Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
"Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
- "seconds ago" : "secunde în urmă",
- "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
- "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
- "today" : "astăzi",
- "yesterday" : "ieri",
- "_%n day go_::_%n days ago_" : ["","","acum %n zile"],
- "last month" : "ultima lună",
- "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
- "last year" : "ultimul an",
- "years ago" : "ani în urmă",
"A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid",
"A valid password must be provided" : "Trebuie să furnizaţi o parolă validă",
"The username is already being used" : "Numele de utilizator este deja folosit",
diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json
index 9fb7f014389..9a0a316a57d 100644
--- a/lib/l10n/ro.json
+++ b/lib/l10n/ro.json
@@ -11,6 +11,16 @@
"No app name specified" : "Niciun nume de aplicație specificat",
"Unknown filetype" : "Tip fișier necunoscut",
"Invalid image" : "Imagine invalidă",
+ "today" : "astăzi",
+ "yesterday" : "ieri",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "ultima lună",
+ "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
+ "last year" : "ultimul an",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
+ "seconds ago" : "secunde în urmă",
"web services under your control" : "servicii web controlate de tine",
"Application is not enabled" : "Aplicația nu este activată",
"Authentication error" : "Eroare la autentificare",
@@ -32,16 +42,6 @@
"You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
"Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
"Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
- "seconds ago" : "secunde în urmă",
- "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
- "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
- "today" : "astăzi",
- "yesterday" : "ieri",
- "_%n day go_::_%n days ago_" : ["","","acum %n zile"],
- "last month" : "ultima lună",
- "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
- "last year" : "ultimul an",
- "years ago" : "ani în urmă",
"A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid",
"A valid password must be provided" : "Trebuie să furnizaţi o parolă validă",
"The username is already being used" : "Numele de utilizator este deja folosit",
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 15e80df0b30..ed7ac0e3d8d 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Обнаружена конфигурация из примера",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Это может повредить вашей системе и это не поддерживается. Пожалуйста прочтите доументацию перед внесением изменений в файл config.php",
"PHP %s or higher is required." : "Требуется PHP %s или выше",
+ "PHP with a version less then %s is required." : "Требуется версия PHP ниже %s",
+ "Following databases are supported: %s" : "Поддерживаются следующие СУБД: %s",
"Help" : "Помощь",
"Personal" : "Личное",
"Settings" : "Настройки",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Не указано имя приложения",
"Unknown filetype" : "Неизвестный тип файла",
"Invalid image" : "Изображение повреждено",
+ "today" : "сегодня",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "в прошлом месяце",
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "last year" : "в прошлом году",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "seconds ago" : "несколько секунд назад",
"Database Error" : "Ошибка базы данных",
"Please contact your system administrator." : "Пожалуйста, свяжитесь с вашим администратором.",
"web services under your control" : "веб-сервисы под вашим управлением",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Не удалось опубликовать %s, т.к. опубликованный бэкенд для %s не смог найти свой источник",
"Sharing %s failed, because the file could not be found in the file cache" : "Не удалось опубликовать %s, т.к. файл не был обнаружен в файловом кеше.",
"Could not find category \"%s\"" : "Категория \"%s\" не найдена",
- "seconds ago" : "несколько секунд назад",
- "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
- "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
- "today" : "сегодня",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад"],
- "last month" : "в прошлом месяце",
- "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
- "last year" : "в прошлом году",
- "years ago" : "несколько лет назад",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Только следующие символы допускаются в имени пользователя: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\"",
"A valid username must be provided" : "Укажите правильное имя пользователя",
"A valid password must be provided" : "Укажите валидный пароль",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Ваша версия PHP больше не поддерживается ownCloud и сообществом PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Включен безопасный режим PHP. ownCloud требует, чтобы он был выключен для корректной работы.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Безопасный режим PHP не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Включен режим Magic Quotes. ownCloud требует, чтобы он был выключен для корректной работы.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
"PHP modules have been installed, but they are still listed as missing?" : "Модули PHP был установлены, но все еще в списке как недостающие?",
"Please ask your server administrator to restart the web server." : "Пожалуйста, попросите администратора вашего сервера перезапустить веб-сервер.",
"PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index 3058c0282de..dc22f19a8be 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Обнаружена конфигурация из примера",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Это может повредить вашей системе и это не поддерживается. Пожалуйста прочтите доументацию перед внесением изменений в файл config.php",
"PHP %s or higher is required." : "Требуется PHP %s или выше",
+ "PHP with a version less then %s is required." : "Требуется версия PHP ниже %s",
+ "Following databases are supported: %s" : "Поддерживаются следующие СУБД: %s",
"Help" : "Помощь",
"Personal" : "Личное",
"Settings" : "Настройки",
@@ -16,6 +18,16 @@
"No app name specified" : "Не указано имя приложения",
"Unknown filetype" : "Неизвестный тип файла",
"Invalid image" : "Изображение повреждено",
+ "today" : "сегодня",
+ "yesterday" : "вчера",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "в прошлом месяце",
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "last year" : "в прошлом году",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "seconds ago" : "несколько секунд назад",
"Database Error" : "Ошибка базы данных",
"Please contact your system administrator." : "Пожалуйста, свяжитесь с вашим администратором.",
"web services under your control" : "веб-сервисы под вашим управлением",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Не удалось опубликовать %s, т.к. опубликованный бэкенд для %s не смог найти свой источник",
"Sharing %s failed, because the file could not be found in the file cache" : "Не удалось опубликовать %s, т.к. файл не был обнаружен в файловом кеше.",
"Could not find category \"%s\"" : "Категория \"%s\" не найдена",
- "seconds ago" : "несколько секунд назад",
- "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
- "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
- "today" : "сегодня",
- "yesterday" : "вчера",
- "_%n day go_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад"],
- "last month" : "в прошлом месяце",
- "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
- "last year" : "в прошлом году",
- "years ago" : "несколько лет назад",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Только следующие символы допускаются в имени пользователя: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\"",
"A valid username must be provided" : "Укажите правильное имя пользователя",
"A valid password must be provided" : "Укажите валидный пароль",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Ваша версия PHP больше не поддерживается ownCloud и сообществом PHP.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Включен безопасный режим PHP. ownCloud требует, чтобы он был выключен для корректной работы.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Безопасный режим PHP не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Включен режим Magic Quotes. ownCloud требует, чтобы он был выключен для корректной работы.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
"PHP modules have been installed, but they are still listed as missing?" : "Модули PHP был установлены, но все еще в списке как недостающие?",
"Please ask your server administrator to restart the web server." : "Пожалуйста, попросите администратора вашего сервера перезапустить веб-сервер.",
"PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
diff --git a/lib/l10n/si_LK.js b/lib/l10n/si_LK.js
index 76ad1716ce2..09d5d0c84da 100644
--- a/lib/l10n/si_LK.js
+++ b/lib/l10n/si_LK.js
@@ -6,19 +6,19 @@ OC.L10N.register(
"Settings" : "සිටුවම්",
"Users" : "පරිශීලකයන්",
"Admin" : "පරිපාලක",
- "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
- "Application is not enabled" : "යෙදුම සක්‍රිය කර නොමැත",
- "Authentication error" : "සත්‍යාපන දෝෂයක්",
- "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
- "seconds ago" : "තත්පරයන්ට පෙර",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "අද",
"yesterday" : "ඊයේ",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "පෙර මාසයේ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "පෙර අවුරුද්දේ",
- "years ago" : "අවුරුදු කීපයකට පෙර"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "තත්පරයන්ට පෙර",
+ "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
+ "Application is not enabled" : "යෙදුම සක්‍රිය කර නොමැත",
+ "Authentication error" : "සත්‍යාපන දෝෂයක්",
+ "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/si_LK.json b/lib/l10n/si_LK.json
index 0bfa32a0754..6c65802af2e 100644
--- a/lib/l10n/si_LK.json
+++ b/lib/l10n/si_LK.json
@@ -4,19 +4,19 @@
"Settings" : "සිටුවම්",
"Users" : "පරිශීලකයන්",
"Admin" : "පරිපාලක",
- "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
- "Application is not enabled" : "යෙදුම සක්‍රිය කර නොමැත",
- "Authentication error" : "සත්‍යාපන දෝෂයක්",
- "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
- "seconds ago" : "තත්පරයන්ට පෙර",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "අද",
"yesterday" : "ඊයේ",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "පෙර මාසයේ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "පෙර අවුරුද්දේ",
- "years ago" : "අවුරුදු කීපයකට පෙර"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "තත්පරයන්ට පෙර",
+ "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
+ "Application is not enabled" : "යෙදුම සක්‍රිය කර නොමැත",
+ "Authentication error" : "සත්‍යාපන දෝෂයක්",
+ "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js
index 6afcb4fc06a..1a4ad8c6293 100644
--- a/lib/l10n/sk_SK.js
+++ b/lib/l10n/sk_SK.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "Nešpecifikované meno aplikácie",
"Unknown filetype" : "Neznámy typ súboru",
"Invalid image" : "Chybný obrázok",
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "minulý mesiac",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "last year" : "minulý rok",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "seconds ago" : "pred sekundami",
"Database Error" : "Error databázy",
"Please contact your system administrator." : "Prosím kontaktujte administrátora.",
"web services under your control" : "webové služby pod Vašou kontrolou",
@@ -80,16 +90,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Zdieľanie %s zlyhalo, backend zdieľania nenašiel zdrojový %s",
"Sharing %s failed, because the file could not be found in the file cache" : "Zdieľanie %s zlyhalo, pretože súbor sa nenašiel vo vyrovnávacej pamäti súborov",
"Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"",
- "seconds ago" : "pred sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
- "today" : "dnes",
- "yesterday" : "včera",
- "_%n day go_::_%n days ago_" : ["pred %n dňom","pred %n dňami","pred %n dňami"],
- "last month" : "minulý mesiac",
- "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
- "last year" : "minulý rok",
- "years ago" : "pred rokmi",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V mene používateľa sú povolené len nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"A valid password must be provided" : "Musíte zadať platné heslo",
@@ -106,10 +106,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.",
"PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode je zapnutý. ownCloud pre správnu funkčnosť vyžaduje, aby bol vypnutý.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastarané a väčšinou zbytočné nastavenie, ktoré by malo byť vypnuté. Prosím, požiadajte administrátora vášho serveru o jeho vypnutie v php.ini alebo v nastaveniach webového servera.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes sú povolené. ownCloud pre správnu funkčnosť vyžaduje, aby boli vypnuté.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zavrhovanou a zbytočnou voľbou, ktorú by ste mali ponechať vypnutú. Prosím, požiadajte správcu svojho servera, aby ju vypol v php.ini alebo v konfigurácii vášho webového servera.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sú uvedené ako chýbajúce?",
"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",
diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json
index 0d8adf8412f..3d7fb6e7c83 100644
--- a/lib/l10n/sk_SK.json
+++ b/lib/l10n/sk_SK.json
@@ -16,6 +16,16 @@
"No app name specified" : "Nešpecifikované meno aplikácie",
"Unknown filetype" : "Neznámy typ súboru",
"Invalid image" : "Chybný obrázok",
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "minulý mesiac",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "last year" : "minulý rok",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "seconds ago" : "pred sekundami",
"Database Error" : "Error databázy",
"Please contact your system administrator." : "Prosím kontaktujte administrátora.",
"web services under your control" : "webové služby pod Vašou kontrolou",
@@ -78,16 +88,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Zdieľanie %s zlyhalo, backend zdieľania nenašiel zdrojový %s",
"Sharing %s failed, because the file could not be found in the file cache" : "Zdieľanie %s zlyhalo, pretože súbor sa nenašiel vo vyrovnávacej pamäti súborov",
"Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"",
- "seconds ago" : "pred sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
- "today" : "dnes",
- "yesterday" : "včera",
- "_%n day go_::_%n days ago_" : ["pred %n dňom","pred %n dňami","pred %n dňami"],
- "last month" : "minulý mesiac",
- "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
- "last year" : "minulý rok",
- "years ago" : "pred rokmi",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V mene používateľa sú povolené len nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"A valid password must be provided" : "Musíte zadať platné heslo",
@@ -104,10 +104,6 @@
"Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.",
"PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode je zapnutý. ownCloud pre správnu funkčnosť vyžaduje, aby bol vypnutý.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastarané a väčšinou zbytočné nastavenie, ktoré by malo byť vypnuté. Prosím, požiadajte administrátora vášho serveru o jeho vypnutie v php.ini alebo v nastaveniach webového servera.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes sú povolené. ownCloud pre správnu funkčnosť vyžaduje, aby boli vypnuté.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zavrhovanou a zbytočnou voľbou, ktorú by ste mali ponechať vypnutú. Prosím, požiadajte správcu svojho servera, aby ju vypol v php.ini alebo v konfigurácii vášho webového servera.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sú uvedené ako chýbajúce?",
"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",
diff --git a/lib/l10n/sl.js b/lib/l10n/sl.js
index 10b19ea2769..1783cfef934 100644
--- a/lib/l10n/sl.js
+++ b/lib/l10n/sl.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Zaznana je neustrezna preizkusna nastavitev",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zaznano je, da je bila v sistem kopirana datoteka z enostavno nastavitvijo. To lahko vpliva na namestitev in zato možnost ni podprta. Pred spremembami datoteke config.php si natančno preberite dokumentacijo.",
"PHP %s or higher is required." : "Zahtevana je različica PHP %s ali višja.",
+ "PHP with a version less then %s is required." : "Zahtevana je različica PHP manj kot %s.",
+ "Following databases are supported: %s" : "Podprte so navedene podatkovne zbirke: %s",
"Help" : "Pomoč",
"Personal" : "Osebno",
"Settings" : "Nastavitve",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Ni podanega imena programa",
"Unknown filetype" : "Neznana vrsta datoteke",
"Invalid image" : "Neveljavna slika",
+ "today" : "danes",
+ "yesterday" : "včeraj",
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "last month" : "zadnji mesec",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
+ "last year" : "lansko leto",
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
+ "seconds ago" : "pred nekaj sekundami",
"Database Error" : "Napaka podatkovne zbirke",
"Please contact your system administrator." : "Stopite v stik s skrbnikom sistema.",
"web services under your control" : "spletne storitve pod vašim nadzorom",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Nastavljanje souporabe %s je spodletelo, ker ozadnji program %s ne upravlja z viri.",
"Sharing %s failed, because the file could not be found in the file cache" : "Nastavljanje souporabe %s je spodletelo, ker v predpomnilniku zahtevana datoteka ne obstaja.",
"Could not find category \"%s\"" : "Kategorije \"%s\" ni mogoče najti.",
- "seconds ago" : "pred nekaj sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
- "today" : "danes",
- "yesterday" : "včeraj",
- "_%n day go_::_%n days ago_" : ["pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"],
- "last month" : "zadnji mesec",
- "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
- "last year" : "lansko leto",
- "years ago" : "let nazaj",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V uporabniškem imenu je dovoljeno uporabiti le znake: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
"A valid password must be provided" : "Navedeno mora biti veljavno geslo",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
"PHP module %s not installed." : "Modul PHP %s ni nameščen.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Omogočen je varni način PHP. Za pravilno delovanje system ownCloud je treba možnost onemogočiti.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost varnega načina PHP je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Omogočena je možnost Magic Quotes. Za pravilno delovanje sistema ownCloud je treba možnost onemogočiti.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost Magic Quotes je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
"PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
"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.",
diff --git a/lib/l10n/sl.json b/lib/l10n/sl.json
index 98c9f81d6d4..9f1e2256250 100644
--- a/lib/l10n/sl.json
+++ b/lib/l10n/sl.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Zaznana je neustrezna preizkusna nastavitev",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zaznano je, da je bila v sistem kopirana datoteka z enostavno nastavitvijo. To lahko vpliva na namestitev in zato možnost ni podprta. Pred spremembami datoteke config.php si natančno preberite dokumentacijo.",
"PHP %s or higher is required." : "Zahtevana je različica PHP %s ali višja.",
+ "PHP with a version less then %s is required." : "Zahtevana je različica PHP manj kot %s.",
+ "Following databases are supported: %s" : "Podprte so navedene podatkovne zbirke: %s",
"Help" : "Pomoč",
"Personal" : "Osebno",
"Settings" : "Nastavitve",
@@ -16,6 +18,16 @@
"No app name specified" : "Ni podanega imena programa",
"Unknown filetype" : "Neznana vrsta datoteke",
"Invalid image" : "Neveljavna slika",
+ "today" : "danes",
+ "yesterday" : "včeraj",
+ "_%n day ago_::_%n days ago_" : ["","","",""],
+ "last month" : "zadnji mesec",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
+ "last year" : "lansko leto",
+ "_%n year ago_::_%n years ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
+ "seconds ago" : "pred nekaj sekundami",
"Database Error" : "Napaka podatkovne zbirke",
"Please contact your system administrator." : "Stopite v stik s skrbnikom sistema.",
"web services under your control" : "spletne storitve pod vašim nadzorom",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Nastavljanje souporabe %s je spodletelo, ker ozadnji program %s ne upravlja z viri.",
"Sharing %s failed, because the file could not be found in the file cache" : "Nastavljanje souporabe %s je spodletelo, ker v predpomnilniku zahtevana datoteka ne obstaja.",
"Could not find category \"%s\"" : "Kategorije \"%s\" ni mogoče najti.",
- "seconds ago" : "pred nekaj sekundami",
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
- "today" : "danes",
- "yesterday" : "včeraj",
- "_%n day go_::_%n days ago_" : ["pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"],
- "last month" : "zadnji mesec",
- "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
- "last year" : "lansko leto",
- "years ago" : "let nazaj",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V uporabniškem imenu je dovoljeno uporabiti le znake: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
"A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
"A valid password must be provided" : "Navedeno mora biti veljavno geslo",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
"PHP module %s not installed." : "Modul PHP %s ni nameščen.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Omogočen je varni način PHP. Za pravilno delovanje system ownCloud je treba možnost onemogočiti.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost varnega načina PHP je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Omogočena je možnost Magic Quotes. Za pravilno delovanje sistema ownCloud je treba možnost onemogočiti.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost Magic Quotes je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
"PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
"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.",
diff --git a/lib/l10n/sq.js b/lib/l10n/sq.js
index c3be28ef1c6..a92d868f116 100644
--- a/lib/l10n/sq.js
+++ b/lib/l10n/sq.js
@@ -9,6 +9,16 @@ OC.L10N.register(
"Recommended" : "E rekomanduar",
"Unknown filetype" : "Tip i panjohur skedari",
"Invalid image" : "Imazh i pavlefshëm",
+ "today" : "sot",
+ "yesterday" : "dje",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "muajin e shkuar",
+ "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
+ "last year" : "vitin e shkuar",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
+ "seconds ago" : "sekonda më parë",
"web services under your control" : "shërbime web nën kontrollin tënd",
"Application is not enabled" : "Programi nuk është i aktivizuar.",
"Authentication error" : "Veprim i gabuar gjatë vërtetimit të identitetit",
@@ -27,16 +37,6 @@ OC.L10N.register(
"Set an admin password." : "Cakto kodin e administratorit.",
"%s shared »%s« with you" : "%s ndau »%s« me ju",
"Could not find category \"%s\"" : "Kategoria \"%s\" nuk u gjet",
- "seconds ago" : "sekonda më parë",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
- "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
- "today" : "sot",
- "yesterday" : "dje",
- "_%n day go_::_%n days ago_" : ["","%n ditë më parë"],
- "last month" : "muajin e shkuar",
- "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
- "last year" : "vitin e shkuar",
- "years ago" : "vite më parë",
"A valid username must be provided" : "Duhet të jepni një emër të vlefshëm përdoruesi",
"A valid password must be provided" : "Duhet të jepni një fjalëkalim te vlefshëm"
},
diff --git a/lib/l10n/sq.json b/lib/l10n/sq.json
index cd10a590bd1..4903e1be195 100644
--- a/lib/l10n/sq.json
+++ b/lib/l10n/sq.json
@@ -7,6 +7,16 @@
"Recommended" : "E rekomanduar",
"Unknown filetype" : "Tip i panjohur skedari",
"Invalid image" : "Imazh i pavlefshëm",
+ "today" : "sot",
+ "yesterday" : "dje",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "muajin e shkuar",
+ "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
+ "last year" : "vitin e shkuar",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
+ "seconds ago" : "sekonda më parë",
"web services under your control" : "shërbime web nën kontrollin tënd",
"Application is not enabled" : "Programi nuk është i aktivizuar.",
"Authentication error" : "Veprim i gabuar gjatë vërtetimit të identitetit",
@@ -25,16 +35,6 @@
"Set an admin password." : "Cakto kodin e administratorit.",
"%s shared »%s« with you" : "%s ndau »%s« me ju",
"Could not find category \"%s\"" : "Kategoria \"%s\" nuk u gjet",
- "seconds ago" : "sekonda më parë",
- "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
- "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
- "today" : "sot",
- "yesterday" : "dje",
- "_%n day go_::_%n days ago_" : ["","%n ditë më parë"],
- "last month" : "muajin e shkuar",
- "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
- "last year" : "vitin e shkuar",
- "years ago" : "vite më parë",
"A valid username must be provided" : "Duhet të jepni një emër të vlefshëm përdoruesi",
"A valid password must be provided" : "Duhet të jepni një fjalëkalim te vlefshëm"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index 94cb2dfce47..4b2b401c127 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -6,21 +6,21 @@ OC.L10N.register(
"Settings" : "Поставке",
"Users" : "Корисници",
"Admin" : "Администратор",
- "web services under your control" : "веб сервиси под контролом",
- "Application is not enabled" : "Апликација није омогућена",
- "Authentication error" : "Грешка при провери идентитета",
- "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
- "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
- "seconds ago" : "пре неколико секунди",
- "_%n minute ago_::_%n minutes ago_" : ["","",""],
- "_%n hour ago_::_%n hours ago_" : ["","",""],
"today" : "данас",
"yesterday" : "јуче",
- "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["","",""],
"last month" : "прошлог месеца",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "прошле године",
- "years ago" : "година раније",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "seconds ago" : "пре неколико секунди",
+ "web services under your control" : "веб сервиси под контролом",
+ "Application is not enabled" : "Апликација није омогућена",
+ "Authentication error" : "Грешка при провери идентитета",
+ "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
+ "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
"A valid username must be provided" : "Морате унети исправно корисничко име",
"A valid password must be provided" : "Морате унети исправну лозинку"
},
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index 6fd8fa308a6..a9d28c1ea5a 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -4,21 +4,21 @@
"Settings" : "Поставке",
"Users" : "Корисници",
"Admin" : "Администратор",
- "web services under your control" : "веб сервиси под контролом",
- "Application is not enabled" : "Апликација није омогућена",
- "Authentication error" : "Грешка при провери идентитета",
- "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
- "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
- "seconds ago" : "пре неколико секунди",
- "_%n minute ago_::_%n minutes ago_" : ["","",""],
- "_%n hour ago_::_%n hours ago_" : ["","",""],
"today" : "данас",
"yesterday" : "јуче",
- "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["","",""],
"last month" : "прошлог месеца",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "прошле године",
- "years ago" : "година раније",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "seconds ago" : "пре неколико секунди",
+ "web services under your control" : "веб сервиси под контролом",
+ "Application is not enabled" : "Апликација није омогућена",
+ "Authentication error" : "Грешка при провери идентитета",
+ "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
+ "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
"A valid username must be provided" : "Морате унети исправно корисничко име",
"A valid password must be provided" : "Морате унети исправну лозинку"
},"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);"
diff --git a/lib/l10n/sr@latin.js b/lib/l10n/sr@latin.js
index 11a536224d1..1bd8358cf17 100644
--- a/lib/l10n/sr@latin.js
+++ b/lib/l10n/sr@latin.js
@@ -6,16 +6,16 @@ OC.L10N.register(
"Settings" : "Podešavanja",
"Users" : "Korisnici",
"Admin" : "Adninistracija",
- "Authentication error" : "Greška pri autentifikaciji",
- "seconds ago" : "Pre par sekundi",
- "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
- "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
"today" : "Danas",
"yesterday" : "juče",
- "_%n day go_::_%n days ago_" : ["","","Prije %n dana."],
+ "_%n day ago_::_%n days ago_" : ["","",""],
"last month" : "prošlog meseca",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "prošle godine",
- "years ago" : "pre nekoliko godina"
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
+ "seconds ago" : "Pre par sekundi",
+ "Authentication error" : "Greška pri autentifikaciji"
},
"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/lib/l10n/sr@latin.json b/lib/l10n/sr@latin.json
index ce429467aee..e95cacf7623 100644
--- a/lib/l10n/sr@latin.json
+++ b/lib/l10n/sr@latin.json
@@ -4,16 +4,16 @@
"Settings" : "Podešavanja",
"Users" : "Korisnici",
"Admin" : "Adninistracija",
- "Authentication error" : "Greška pri autentifikaciji",
- "seconds ago" : "Pre par sekundi",
- "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
- "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
"today" : "Danas",
"yesterday" : "juče",
- "_%n day go_::_%n days ago_" : ["","","Prije %n dana."],
+ "_%n day ago_::_%n days ago_" : ["","",""],
"last month" : "prošlog meseca",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "prošle godine",
- "years ago" : "pre nekoliko godina"
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
+ "seconds ago" : "Pre par sekundi",
+ "Authentication error" : "Greška pri autentifikaciji"
},"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/lib/l10n/su.js b/lib/l10n/su.js
index 0f4a002019e..784e8271ef3 100644
--- a/lib/l10n/su.js
+++ b/lib/l10n/su.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/su.json b/lib/l10n/su.json
index 4a03cf5047e..3a3512d508d 100644
--- a/lib/l10n/su.json
+++ b/lib/l10n/su.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index f8b950bbacc..9b05d70ec2f 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -15,6 +15,16 @@ OC.L10N.register(
"No app name specified" : "Inget appnamn angivet",
"Unknown filetype" : "Okänd filtyp",
"Invalid image" : "Ogiltig bild",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "förra månaden",
+ "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
+ "last year" : "förra året",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
+ "seconds ago" : "sekunder sedan",
"web services under your control" : "webbtjänster under din kontroll",
"App directory already exists" : "Appens mapp finns redan",
"Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
@@ -73,16 +83,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
"Sharing %s failed, because the file could not be found in the file cache" : "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
"Could not find category \"%s\"" : "Kunde inte hitta kategorin \"%s\"",
- "seconds ago" : "sekunder sedan",
- "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
- "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"],
- "last month" : "förra månaden",
- "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
- "last year" : "förra året",
- "years ago" : "år sedan",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Endast följande tecken är tillåtna i ett användarnamn: \"az\", \"AZ\", \"0-9\", och \"_ @ -.\"",
"A valid username must be provided" : "Ett giltigt användarnamn måste anges",
"A valid password must be provided" : "Ett giltigt lösenord måste anges",
@@ -95,8 +95,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
"PHP module %s not installed." : "PHP modulen %s är inte installerad.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
"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",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 30646813198..d5b58c4b4ce 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -13,6 +13,16 @@
"No app name specified" : "Inget appnamn angivet",
"Unknown filetype" : "Okänd filtyp",
"Invalid image" : "Ogiltig bild",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "last month" : "förra månaden",
+ "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
+ "last year" : "förra året",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
+ "seconds ago" : "sekunder sedan",
"web services under your control" : "webbtjänster under din kontroll",
"App directory already exists" : "Appens mapp finns redan",
"Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
@@ -71,16 +81,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
"Sharing %s failed, because the file could not be found in the file cache" : "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
"Could not find category \"%s\"" : "Kunde inte hitta kategorin \"%s\"",
- "seconds ago" : "sekunder sedan",
- "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
- "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
- "today" : "i dag",
- "yesterday" : "i går",
- "_%n day go_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"],
- "last month" : "förra månaden",
- "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
- "last year" : "förra året",
- "years ago" : "år sedan",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Endast följande tecken är tillåtna i ett användarnamn: \"az\", \"AZ\", \"0-9\", och \"_ @ -.\"",
"A valid username must be provided" : "Ett giltigt användarnamn måste anges",
"A valid password must be provided" : "Ett giltigt lösenord måste anges",
@@ -93,8 +93,6 @@
"Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
"PHP module %s not installed." : "PHP modulen %s är inte installerad.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
"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",
diff --git a/lib/l10n/sw_KE.js b/lib/l10n/sw_KE.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/sw_KE.js
+++ b/lib/l10n/sw_KE.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/sw_KE.json b/lib/l10n/sw_KE.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/sw_KE.json
+++ b/lib/l10n/sw_KE.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ta_IN.js b/lib/l10n/ta_IN.js
index e026954a573..27a3f155da1 100644
--- a/lib/l10n/ta_IN.js
+++ b/lib/l10n/ta_IN.js
@@ -2,9 +2,10 @@ OC.L10N.register(
"lib",
{
"Settings" : "அமைப்புகள்",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ta_IN.json b/lib/l10n/ta_IN.json
index 3f9f5882968..937923e8068 100644
--- a/lib/l10n/ta_IN.json
+++ b/lib/l10n/ta_IN.json
@@ -1,8 +1,9 @@
{ "translations": {
"Settings" : "அமைப்புகள்",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/ta_LK.js b/lib/l10n/ta_LK.js
index 5f2d310c40b..758ad47a78d 100644
--- a/lib/l10n/ta_LK.js
+++ b/lib/l10n/ta_LK.js
@@ -6,20 +6,20 @@ OC.L10N.register(
"Settings" : "அமைப்புகள்",
"Users" : "பயனாளர்",
"Admin" : "நிர்வாகம்",
- "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
- "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
- "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
- "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
- "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை",
- "seconds ago" : "செக்கன்களுக்கு முன்",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "இன்று",
"yesterday" : "நேற்று",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "கடந்த மாதம்",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "கடந்த வருடம்",
- "years ago" : "வருடங்களுக்கு முன்"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "செக்கன்களுக்கு முன்",
+ "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
+ "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
+ "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
+ "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
+ "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ta_LK.json b/lib/l10n/ta_LK.json
index e5191020433..378f926337e 100644
--- a/lib/l10n/ta_LK.json
+++ b/lib/l10n/ta_LK.json
@@ -4,20 +4,20 @@
"Settings" : "அமைப்புகள்",
"Users" : "பயனாளர்",
"Admin" : "நிர்வாகம்",
- "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
- "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
- "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
- "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
- "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை",
- "seconds ago" : "செக்கன்களுக்கு முன்",
- "_%n minute ago_::_%n minutes ago_" : ["",""],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "இன்று",
"yesterday" : "நேற்று",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "கடந்த மாதம்",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "கடந்த வருடம்",
- "years ago" : "வருடங்களுக்கு முன்"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "seconds ago" : "செக்கன்களுக்கு முன்",
+ "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
+ "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
+ "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
+ "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
+ "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/te.js b/lib/l10n/te.js
index e1a3602f617..615c6bd68ca 100644
--- a/lib/l10n/te.js
+++ b/lib/l10n/te.js
@@ -5,15 +5,15 @@ OC.L10N.register(
"Personal" : "వ్యక్తిగతం",
"Settings" : "అమరికలు",
"Users" : "వాడుకరులు",
- "seconds ago" : "క్షణాల క్రితం",
- "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
- "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
"today" : "ఈరోజు",
"yesterday" : "నిన్న",
- "_%n day go_::_%n days ago_" : ["","%n రోజుల క్రితం"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "పోయిన నెల",
"_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
"last year" : "పోయిన సంవత్సరం",
- "years ago" : "సంవత్సరాల క్రితం"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
+ "seconds ago" : "క్షణాల క్రితం"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/te.json b/lib/l10n/te.json
index 1e9669c12b3..4b243366da1 100644
--- a/lib/l10n/te.json
+++ b/lib/l10n/te.json
@@ -3,15 +3,15 @@
"Personal" : "వ్యక్తిగతం",
"Settings" : "అమరికలు",
"Users" : "వాడుకరులు",
- "seconds ago" : "క్షణాల క్రితం",
- "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
- "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
"today" : "ఈరోజు",
"yesterday" : "నిన్న",
- "_%n day go_::_%n days ago_" : ["","%n రోజుల క్రితం"],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "పోయిన నెల",
"_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
"last year" : "పోయిన సంవత్సరం",
- "years ago" : "సంవత్సరాల క్రితం"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
+ "seconds ago" : "క్షణాల క్రితం"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/tg_TJ.js b/lib/l10n/tg_TJ.js
index da0dcc6bdde..a12702211c2 100644
--- a/lib/l10n/tg_TJ.js
+++ b/lib/l10n/tg_TJ.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/tg_TJ.json b/lib/l10n/tg_TJ.json
index 4286553dd0c..b994fa289eb 100644
--- a/lib/l10n/tg_TJ.json
+++ b/lib/l10n/tg_TJ.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/th_TH.js b/lib/l10n/th_TH.js
index 8a58554c53b..9ab8b29e5a0 100644
--- a/lib/l10n/th_TH.js
+++ b/lib/l10n/th_TH.js
@@ -6,20 +6,20 @@ OC.L10N.register(
"Settings" : "ตั้งค่า",
"Users" : "ผู้ใช้งาน",
"Admin" : "ผู้ดูแล",
- "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
- "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
- "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
- "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
- "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\"",
- "seconds ago" : "วินาที ก่อนหน้านี้",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "วันนี้",
"yesterday" : "เมื่อวานนี้",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "เดือนที่แล้ว",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ปีที่แล้ว",
- "years ago" : "ปี ที่ผ่านมา"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "วินาที ก่อนหน้านี้",
+ "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
+ "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
+ "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
+ "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
+ "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\""
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/th_TH.json b/lib/l10n/th_TH.json
index dde903b4a3f..13452ec720a 100644
--- a/lib/l10n/th_TH.json
+++ b/lib/l10n/th_TH.json
@@ -4,20 +4,20 @@
"Settings" : "ตั้งค่า",
"Users" : "ผู้ใช้งาน",
"Admin" : "ผู้ดูแล",
- "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
- "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
- "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
- "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
- "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\"",
- "seconds ago" : "วินาที ก่อนหน้านี้",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "วันนี้",
"yesterday" : "เมื่อวานนี้",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "เดือนที่แล้ว",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ปีที่แล้ว",
- "years ago" : "ปี ที่ผ่านมา"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "seconds ago" : "วินาที ก่อนหน้านี้",
+ "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
+ "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
+ "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
+ "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
+ "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\""
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/tl_PH.js b/lib/l10n/tl_PH.js
index 9ac3e05d6c6..9408adc0dc3 100644
--- a/lib/l10n/tl_PH.js
+++ b/lib/l10n/tl_PH.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/tl_PH.json b/lib/l10n/tl_PH.json
index 82a8a99d300..2a227e468c7 100644
--- a/lib/l10n/tl_PH.json
+++ b/lib/l10n/tl_PH.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index cf50932d707..818b6da4549 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Sample configuration detected" : "Örnek yapılandırma tespit edildi",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun",
"PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.",
+ "PHP with a version less then %s is required." : "PHP'nin %s sürümü öncesi gerekli.",
+ "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s",
"Help" : "Yardım",
"Personal" : "Kişisel",
"Settings" : "Ayarlar",
@@ -18,6 +20,16 @@ OC.L10N.register(
"No app name specified" : "Uygulama adı belirtilmedi",
"Unknown filetype" : "Bilinmeyen dosya türü",
"Invalid image" : "Geçersiz resim",
+ "today" : "bugün",
+ "yesterday" : "dün",
+ "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"],
+ "last month" : "geçen ay",
+ "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
+ "last year" : "geçen yıl",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
+ "seconds ago" : "saniyeler önce",
"Database Error" : "Veritabanı Hatası",
"Please contact your system administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
"web services under your control" : "denetiminizdeki web hizmetleri",
@@ -81,16 +93,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s paylaşımı, %s için arka ucun kaynağını bulamamasından dolayı başarısız oldu",
"Sharing %s failed, because the file could not be found in the file cache" : "%s paylaşımı, dosyanın dosya önbelleğinde bulunamamasınndan dolayı başarısız oldu",
"Could not find category \"%s\"" : "\"%s\" kategorisi bulunamadı",
- "seconds ago" : "saniyeler önce",
- "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
- "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
- "today" : "bugün",
- "yesterday" : "dün",
- "_%n day go_::_%n days ago_" : ["","%n gün önce"],
- "last month" : "geçen ay",
- "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
- "last year" : "geçen yıl",
- "years ago" : "yıllar önce",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kullanıcı adında sadece bu karakterlere izin verilmektedir: \"a-z\", \"A-Z\", \"0-9\", ve \"_.@-\"",
"A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
"A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı",
@@ -107,10 +109,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Lütfen modülün kurulması için sunucu yöneticinize danışın.",
"PHP module %s not installed." : "PHP modülü %s yüklü değil.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Güvenli Kip (Safe Mode) etkin. ownCloud düzgün çalışabilmesi için bunun devre dışı olmasını gerektirir.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Güvenli Kip (Safe Mode), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Sihirli Tırnaklar (Magic Quotes) etkin. ownCloud çalışabilmesi için bunun devre dışı bırakılması gerekli.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Sihirli Tırnaklar (Magic Quotes), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
"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",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index 1c186dd27f3..466b5694340 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -6,6 +6,8 @@
"Sample configuration detected" : "Örnek yapılandırma tespit edildi",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun",
"PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.",
+ "PHP with a version less then %s is required." : "PHP'nin %s sürümü öncesi gerekli.",
+ "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s",
"Help" : "Yardım",
"Personal" : "Kişisel",
"Settings" : "Ayarlar",
@@ -16,6 +18,16 @@
"No app name specified" : "Uygulama adı belirtilmedi",
"Unknown filetype" : "Bilinmeyen dosya türü",
"Invalid image" : "Geçersiz resim",
+ "today" : "bugün",
+ "yesterday" : "dün",
+ "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"],
+ "last month" : "geçen ay",
+ "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
+ "last year" : "geçen yıl",
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
+ "seconds ago" : "saniyeler önce",
"Database Error" : "Veritabanı Hatası",
"Please contact your system administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
"web services under your control" : "denetiminizdeki web hizmetleri",
@@ -79,16 +91,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "%s paylaşımı, %s için arka ucun kaynağını bulamamasından dolayı başarısız oldu",
"Sharing %s failed, because the file could not be found in the file cache" : "%s paylaşımı, dosyanın dosya önbelleğinde bulunamamasınndan dolayı başarısız oldu",
"Could not find category \"%s\"" : "\"%s\" kategorisi bulunamadı",
- "seconds ago" : "saniyeler önce",
- "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
- "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
- "today" : "bugün",
- "yesterday" : "dün",
- "_%n day go_::_%n days ago_" : ["","%n gün önce"],
- "last month" : "geçen ay",
- "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
- "last year" : "geçen yıl",
- "years ago" : "yıllar önce",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kullanıcı adında sadece bu karakterlere izin verilmektedir: \"a-z\", \"A-Z\", \"0-9\", ve \"_.@-\"",
"A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
"A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı",
@@ -105,10 +107,6 @@
"Please ask your server administrator to install the module." : "Lütfen modülün kurulması için sunucu yöneticinize danışın.",
"PHP module %s not installed." : "PHP modülü %s yüklü değil.",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Güvenli Kip (Safe Mode) etkin. ownCloud düzgün çalışabilmesi için bunun devre dışı olmasını gerektirir.",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Güvenli Kip (Safe Mode), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Sihirli Tırnaklar (Magic Quotes) etkin. ownCloud çalışabilmesi için bunun devre dışı bırakılması gerekli.",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Sihirli Tırnaklar (Magic Quotes), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
"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",
diff --git a/lib/l10n/tzm.js b/lib/l10n/tzm.js
index d0485468f71..326649ad645 100644
--- a/lib/l10n/tzm.js
+++ b/lib/l10n/tzm.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},
"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;");
diff --git a/lib/l10n/tzm.json b/lib/l10n/tzm.json
index 73b35cf4dfa..8a960ea6b66 100644
--- a/lib/l10n/tzm.json
+++ b/lib/l10n/tzm.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
- "_%n day go_::_%n days ago_" : ["",""],
- "_%n month ago_::_%n months ago_" : ["",""]
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"
} \ No newline at end of file
diff --git a/lib/l10n/ug.js b/lib/l10n/ug.js
index 977cdcab5d8..5ee6ccadd82 100644
--- a/lib/l10n/ug.js
+++ b/lib/l10n/ug.js
@@ -5,13 +5,14 @@ OC.L10N.register(
"Personal" : "شەخسىي",
"Settings" : "تەڭشەكلەر",
"Users" : "ئىشلەتكۈچىلەر",
- "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "بۈگۈن",
"yesterday" : "تۈنۈگۈن",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
"A valid username must be provided" : "چوقۇم ئىناۋەتلىك ئىشلەتكۈچى ئىسمىدىن بىرنى تەمىنلەش كېرەك",
"A valid password must be provided" : "چوقۇم ئىناۋەتلىك ئىم تەمىنلەش كېرەك"
},
diff --git a/lib/l10n/ug.json b/lib/l10n/ug.json
index 89719afc30a..b73fb7e1b35 100644
--- a/lib/l10n/ug.json
+++ b/lib/l10n/ug.json
@@ -3,13 +3,14 @@
"Personal" : "شەخسىي",
"Settings" : "تەڭشەكلەر",
"Users" : "ئىشلەتكۈچىلەر",
- "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
- "_%n minute ago_::_%n minutes ago_" : [""],
- "_%n hour ago_::_%n hours ago_" : [""],
"today" : "بۈگۈن",
"yesterday" : "تۈنۈگۈن",
- "_%n day go_::_%n days ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
"A valid username must be provided" : "چوقۇم ئىناۋەتلىك ئىشلەتكۈچى ئىسمىدىن بىرنى تەمىنلەش كېرەك",
"A valid password must be provided" : "چوقۇم ئىناۋەتلىك ئىم تەمىنلەش كېرەك"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index 4512cb25227..aecbc8327db 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -17,6 +17,16 @@ OC.L10N.register(
"No app name specified" : "Не вказано ім'я додатку",
"Unknown filetype" : "Невідомий тип файлу",
"Invalid image" : "Невірне зображення",
+ "today" : "сьогодні",
+ "yesterday" : "вчора",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "минулого місяця",
+ "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
+ "last year" : "минулого року",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
+ "seconds ago" : "секунди тому",
"Database Error" : "Помилка бази даних",
"Please contact your system administrator." : "Будь ласка, зверніться до системного адміністратора.",
"web services under your control" : "підконтрольні Вам веб-сервіси",
@@ -67,16 +77,6 @@ OC.L10N.register(
"You need to provide a password to create a public link, only protected links are allowed" : "Вам необхідно задати пароль для створення публічного посилання. Дозволені лише захищені посилання",
"Sharing %s failed, because sharing with links is not allowed" : "Не вдалося поділитися %s, оскільки публічний доступ через посилання заборонений",
"Could not find category \"%s\"" : "Не вдалося знайти категорію \"%s\"",
- "seconds ago" : "секунди тому",
- "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
- "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
- "today" : "сьогодні",
- "yesterday" : "вчора",
- "_%n day go_::_%n days ago_" : ["","","%n днів тому"],
- "last month" : "минулого місяця",
- "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
- "last year" : "минулого року",
- "years ago" : "роки тому",
"A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
"A valid password must be provided" : "Потрібно задати вірний пароль",
"The username is already being used" : "Ім'я користувача вже використовується",
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index 87f34e15657..841e61216bc 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -15,6 +15,16 @@
"No app name specified" : "Не вказано ім'я додатку",
"Unknown filetype" : "Невідомий тип файлу",
"Invalid image" : "Невірне зображення",
+ "today" : "сьогодні",
+ "yesterday" : "вчора",
+ "_%n day ago_::_%n days ago_" : ["","",""],
+ "last month" : "минулого місяця",
+ "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
+ "last year" : "минулого року",
+ "_%n year ago_::_%n years ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
+ "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
+ "seconds ago" : "секунди тому",
"Database Error" : "Помилка бази даних",
"Please contact your system administrator." : "Будь ласка, зверніться до системного адміністратора.",
"web services under your control" : "підконтрольні Вам веб-сервіси",
@@ -65,16 +75,6 @@
"You need to provide a password to create a public link, only protected links are allowed" : "Вам необхідно задати пароль для створення публічного посилання. Дозволені лише захищені посилання",
"Sharing %s failed, because sharing with links is not allowed" : "Не вдалося поділитися %s, оскільки публічний доступ через посилання заборонений",
"Could not find category \"%s\"" : "Не вдалося знайти категорію \"%s\"",
- "seconds ago" : "секунди тому",
- "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
- "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
- "today" : "сьогодні",
- "yesterday" : "вчора",
- "_%n day go_::_%n days ago_" : ["","","%n днів тому"],
- "last month" : "минулого місяця",
- "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
- "last year" : "минулого року",
- "years ago" : "роки тому",
"A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
"A valid password must be provided" : "Потрібно задати вірний пароль",
"The username is already being used" : "Ім'я користувача вже використовується",
diff --git a/lib/l10n/ur_PK.js b/lib/l10n/ur_PK.js
index 266e0b11135..d02b480fd13 100644
--- a/lib/l10n/ur_PK.js
+++ b/lib/l10n/ur_PK.js
@@ -8,16 +8,16 @@ OC.L10N.register(
"Admin" : "ایڈمن",
"Unknown filetype" : "غیر معرروف قسم کی فائل",
"Invalid image" : "غلط تصویر",
- "web services under your control" : "آپ کے اختیار میں ویب سروسیز",
- "seconds ago" : "سیکنڈز پہلے",
- "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "آج",
"yesterday" : "کل",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "پچھلے مہنیے",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "پچھلے سال",
- "years ago" : "سالوں پہلے"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
+ "seconds ago" : "سیکنڈز پہلے",
+ "web services under your control" : "آپ کے اختیار میں ویب سروسیز"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ur_PK.json b/lib/l10n/ur_PK.json
index f00429f3432..bbe6e221b2a 100644
--- a/lib/l10n/ur_PK.json
+++ b/lib/l10n/ur_PK.json
@@ -6,16 +6,16 @@
"Admin" : "ایڈمن",
"Unknown filetype" : "غیر معرروف قسم کی فائل",
"Invalid image" : "غلط تصویر",
- "web services under your control" : "آپ کے اختیار میں ویب سروسیز",
- "seconds ago" : "سیکنڈز پہلے",
- "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
- "_%n hour ago_::_%n hours ago_" : ["",""],
"today" : "آج",
"yesterday" : "کل",
- "_%n day go_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["",""],
"last month" : "پچھلے مہنیے",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "پچھلے سال",
- "years ago" : "سالوں پہلے"
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
+ "seconds ago" : "سیکنڈز پہلے",
+ "web services under your control" : "آپ کے اختیار میں ویب سروسیز"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/uz.js b/lib/l10n/uz.js
index 0f4a002019e..784e8271ef3 100644
--- a/lib/l10n/uz.js
+++ b/lib/l10n/uz.js
@@ -1,9 +1,10 @@
OC.L10N.register(
"lib",
{
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/uz.json b/lib/l10n/uz.json
index 4a03cf5047e..3a3512d508d 100644
--- a/lib/l10n/uz.json
+++ b/lib/l10n/uz.json
@@ -1,7 +1,8 @@
{ "translations": {
- "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n day ago_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
- "_%n day go_::_%n days ago_" : [""],
- "_%n month ago_::_%n months ago_" : [""]
+ "_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/vi.js b/lib/l10n/vi.js
index 7cb2deb0629..a7e68528166 100644
--- a/lib/l10n/vi.js
+++ b/lib/l10n/vi.js
@@ -8,21 +8,21 @@ OC.L10N.register(
"Admin" : "Quản trị",
"Unknown filetype" : "Không biết kiểu tập tin",
"Invalid image" : "Hình ảnh không hợp lệ",
- "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
- "Application is not enabled" : "Ứng dụng không được BẬT",
- "Authentication error" : "Lỗi xác thực",
- "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
- "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
- "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\"",
- "seconds ago" : "vài giây trước",
- "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
- "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
"today" : "hôm nay",
"yesterday" : "hôm qua",
- "_%n day go_::_%n days ago_" : ["%n ngày trước"],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "tháng trước",
"_%n month ago_::_%n months ago_" : ["%n tháng trước"],
"last year" : "năm trước",
- "years ago" : "năm trước"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
+ "seconds ago" : "vài giây trước",
+ "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
+ "Application is not enabled" : "Ứng dụng không được BẬT",
+ "Authentication error" : "Lỗi xác thực",
+ "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
+ "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
+ "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\""
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/vi.json b/lib/l10n/vi.json
index 434c1b8a67b..a7a29de350a 100644
--- a/lib/l10n/vi.json
+++ b/lib/l10n/vi.json
@@ -6,21 +6,21 @@
"Admin" : "Quản trị",
"Unknown filetype" : "Không biết kiểu tập tin",
"Invalid image" : "Hình ảnh không hợp lệ",
- "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
- "Application is not enabled" : "Ứng dụng không được BẬT",
- "Authentication error" : "Lỗi xác thực",
- "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
- "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
- "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\"",
- "seconds ago" : "vài giây trước",
- "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
- "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
"today" : "hôm nay",
"yesterday" : "hôm qua",
- "_%n day go_::_%n days ago_" : ["%n ngày trước"],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "tháng trước",
"_%n month ago_::_%n months ago_" : ["%n tháng trước"],
"last year" : "năm trước",
- "years ago" : "năm trước"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
+ "seconds ago" : "vài giây trước",
+ "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
+ "Application is not enabled" : "Ứng dụng không được BẬT",
+ "Authentication error" : "Lỗi xác thực",
+ "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
+ "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
+ "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\""
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 1aa656dea0a..874327fc7d9 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -12,6 +12,16 @@ OC.L10N.register(
"No app name specified" : "没有指定的 App 名称",
"Unknown filetype" : "未知的文件类型",
"Invalid image" : "无效的图像",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
"web services under your control" : "您控制的网络服务",
"App directory already exists" : "应用程序目录已存在",
"Can't create app folder. Please fix permissions. %s" : "无法创建应用程序文件夹。请修正权限。%s",
@@ -69,16 +79,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
"Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
"Could not find category \"%s\"" : "无法找到分类 \"%s\"",
- "seconds ago" : "秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
- "today" : "今天",
- "yesterday" : "昨天",
- "_%n day go_::_%n days ago_" : ["%n 天前"],
- "last month" : "上月",
- "_%n month ago_::_%n months ago_" : ["%n 月前"],
- "last year" : "去年",
- "years ago" : "年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "用户名只允许使用以下字符:“a-z”,“A-Z”,“0-9”,和“_.@-”",
"A valid username must be provided" : "必须提供合法的用户名",
"A valid password must be provided" : "必须提供合法的密码",
@@ -91,10 +91,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
"PHP module %s not installed." : "PHP %s 模块未安装。",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode 已经启用,ownCloud 需要 Safe Mode 停用以正常工作。",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Safe Mode。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已经启用,ownCloud 需要 Magic Quotes 停用以正常工作。",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Magic Quotes。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
"Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
"PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index bad13fcc12b..d51c420d55c 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -10,6 +10,16 @@
"No app name specified" : "没有指定的 App 名称",
"Unknown filetype" : "未知的文件类型",
"Invalid image" : "无效的图像",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
"web services under your control" : "您控制的网络服务",
"App directory already exists" : "应用程序目录已存在",
"Can't create app folder. Please fix permissions. %s" : "无法创建应用程序文件夹。请修正权限。%s",
@@ -67,16 +77,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
"Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
"Could not find category \"%s\"" : "无法找到分类 \"%s\"",
- "seconds ago" : "秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
- "today" : "今天",
- "yesterday" : "昨天",
- "_%n day go_::_%n days ago_" : ["%n 天前"],
- "last month" : "上月",
- "_%n month ago_::_%n months ago_" : ["%n 月前"],
- "last year" : "去年",
- "years ago" : "年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "用户名只允许使用以下字符:“a-z”,“A-Z”,“0-9”,和“_.@-”",
"A valid username must be provided" : "必须提供合法的用户名",
"A valid password must be provided" : "必须提供合法的密码",
@@ -89,10 +89,6 @@
"Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
"PHP module %s not installed." : "PHP %s 模块未安装。",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode 已经启用,ownCloud 需要 Safe Mode 停用以正常工作。",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Safe Mode。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已经启用,ownCloud 需要 Magic Quotes 停用以正常工作。",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Magic Quotes。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
"Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
"PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js
index 7cef6525bc2..813162ff8fd 100644
--- a/lib/l10n/zh_HK.js
+++ b/lib/l10n/zh_HK.js
@@ -6,15 +6,15 @@ OC.L10N.register(
"Settings" : "設定",
"Users" : "用戶",
"Admin" : "管理",
- "seconds ago" : "秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"today" : "今日",
"yesterday" : "昨日",
- "_%n day go_::_%n days ago_" : ["%n 日前"],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "前一月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "上年",
- "years ago" : "年前"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "seconds ago" : "秒前"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json
index 856b288a6b9..e78d70ea20e 100644
--- a/lib/l10n/zh_HK.json
+++ b/lib/l10n/zh_HK.json
@@ -4,15 +4,15 @@
"Settings" : "設定",
"Users" : "用戶",
"Admin" : "管理",
- "seconds ago" : "秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"today" : "今日",
"yesterday" : "昨日",
- "_%n day go_::_%n days ago_" : ["%n 日前"],
+ "_%n day ago_::_%n days ago_" : [""],
"last month" : "前一月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "上年",
- "years ago" : "年前"
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "seconds ago" : "秒前"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index 6c63fea871b..477fa6bda3a 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -18,6 +18,16 @@ OC.L10N.register(
"No app name specified" : "沒有指定應用程式名稱",
"Unknown filetype" : "未知的檔案類型",
"Invalid image" : "無效的圖片",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "上個月",
+ "_%n month ago_::_%n months ago_" : ["%n 個月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "seconds ago" : "幾秒前",
"web services under your control" : "由您控制的網路服務",
"App directory already exists" : "應用程式目錄已經存在",
"Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
@@ -79,16 +89,6 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
"Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
"Could not find category \"%s\"" : "找不到分類:\"%s\"",
- "seconds ago" : "幾秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
- "today" : "今天",
- "yesterday" : "昨天",
- "_%n day go_::_%n days ago_" : ["%n 天前"],
- "last month" : "上個月",
- "_%n month ago_::_%n months ago_" : ["%n 個月前"],
- "last year" : "去年",
- "years ago" : "幾年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-\"",
"A valid username must be provided" : "必須提供一個有效的用戶名",
"A valid password must be provided" : "一定要提供一個有效的密碼",
@@ -105,10 +105,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP 安全模式已經啟動,ownCloud 需要您將它關閉才能正常運作",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP 安全模式已經被棄用,並且在大多數狀況下無助於提升安全性,它應該被關閉。請詢問系統管理員將其在 php.ini 或網頁伺服器當中關閉。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已經被啟用,ownCloud 需要您將其關閉以正常運作",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 功能在大多數狀況下不會使用到,已經被上游棄用,因此它應該被停用。請詢問系統管理員將其在 php.ini 或網頁伺服器當中停用。",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index efd8293d9db..685214cbc06 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -16,6 +16,16 @@
"No app name specified" : "沒有指定應用程式名稱",
"Unknown filetype" : "未知的檔案類型",
"Invalid image" : "無效的圖片",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : [""],
+ "last month" : "上個月",
+ "_%n month ago_::_%n months ago_" : ["%n 個月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "seconds ago" : "幾秒前",
"web services under your control" : "由您控制的網路服務",
"App directory already exists" : "應用程式目錄已經存在",
"Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
@@ -77,16 +87,6 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
"Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
"Could not find category \"%s\"" : "找不到分類:\"%s\"",
- "seconds ago" : "幾秒前",
- "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
- "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
- "today" : "今天",
- "yesterday" : "昨天",
- "_%n day go_::_%n days ago_" : ["%n 天前"],
- "last month" : "上個月",
- "_%n month ago_::_%n months ago_" : ["%n 個月前"],
- "last year" : "去年",
- "years ago" : "幾年前",
"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-\"",
"A valid username must be provided" : "必須提供一個有效的用戶名",
"A valid password must be provided" : "一定要提供一個有效的密碼",
@@ -103,10 +103,6 @@
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
- "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP 安全模式已經啟動,ownCloud 需要您將它關閉才能正常運作",
- "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP 安全模式已經被棄用,並且在大多數狀況下無助於提升安全性,它應該被關閉。請詢問系統管理員將其在 php.ini 或網頁伺服器當中關閉。",
- "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已經被啟用,ownCloud 需要您將其關閉以正常運作",
- "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 功能在大多數狀況下不會使用到,已經被上游棄用,因此它應該被停用。請詢問系統管理員將其在 php.ini 或網頁伺服器當中停用。",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
diff --git a/lib/private/activitymanager.php b/lib/private/activitymanager.php
index e0ee7c1b055..70bd227b417 100644
--- a/lib/private/activitymanager.php
+++ b/lib/private/activitymanager.php
@@ -168,6 +168,25 @@ class ActivityManager implements IManager {
}
/**
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text) {
+ foreach($this->extensions as $extension) {
+ $c = $extension();
+ if ($c instanceof IExtension) {
+ $specialParameter = $c->getSpecialParameterList($app, $text);
+ if (is_array($specialParameter)) {
+ return $specialParameter;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
* @param string $type
* @return string
*/
diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php
index 7ebff7cf2db..d4b4ed6fb6a 100644
--- a/lib/private/allconfig.php
+++ b/lib/private/allconfig.php
@@ -8,11 +8,67 @@
*/
namespace OC;
+use OCP\IDBConnection;
+use OCP\PreConditionNotMetException;
/**
* Class to combine all the configuration options ownCloud offers
*/
class AllConfig implements \OCP\IConfig {
+ /** @var SystemConfig */
+ private $systemConfig;
+
+ /** @var IDBConnection */
+ private $connection;
+
+ /**
+ * 3 dimensional array with the following structure:
+ * [ $userId =>
+ * [ $appId =>
+ * [ $key => $value ]
+ * ]
+ * ]
+ *
+ * database table: preferences
+ *
+ * methods that use this:
+ * - setUserValue
+ * - getUserValue
+ * - getUserKeys
+ * - deleteUserValue
+ * - deleteAllUserValues
+ * - deleteAppFromAllUsers
+ *
+ * @var array $userCache
+ */
+ private $userCache = array();
+
+ /**
+ * @param SystemConfig $systemConfig
+ */
+ function __construct(SystemConfig $systemConfig) {
+ $this->systemConfig = $systemConfig;
+ }
+
+ /**
+ * TODO - FIXME This fixes an issue with base.php that cause cyclic
+ * dependencies, especially with autoconfig setup
+ *
+ * Replace this by properly injected database connection. Currently the
+ * base.php triggers the getDatabaseConnection too early which causes in
+ * autoconfig setup case a too early distributed database connection and
+ * the autoconfig then needs to reinit all already initialized dependencies
+ * that use the database connection.
+ *
+ * otherwise a SQLite database is created in the wrong directory
+ * because the database connection was created with an uninitialized config
+ */
+ private function fixDIInit() {
+ if($this->connection === null) {
+ $this->connection = \OC::$server->getDatabaseConnection();
+ }
+ }
+
/**
* Sets a new system wide value
*
@@ -20,7 +76,7 @@ class AllConfig implements \OCP\IConfig {
* @param mixed $value the value that should be stored
*/
public function setSystemValue($key, $value) {
- \OCP\Config::setSystemValue($key, $value);
+ $this->systemConfig->setValue($key, $value);
}
/**
@@ -31,7 +87,7 @@ class AllConfig implements \OCP\IConfig {
* @return mixed the value or $default
*/
public function getSystemValue($key, $default = '') {
- return \OCP\Config::getSystemValue($key, $default);
+ return $this->systemConfig->getValue($key, $default);
}
/**
@@ -40,7 +96,7 @@ class AllConfig implements \OCP\IConfig {
* @param string $key the key of the value, under which it was saved
*/
public function deleteSystemValue($key) {
- \OCP\Config::deleteSystemValue($key);
+ $this->systemConfig->deleteValue($key);
}
/**
@@ -61,7 +117,7 @@ class AllConfig implements \OCP\IConfig {
* @param string $value the value that should be stored
*/
public function setAppValue($appName, $key, $value) {
- \OCP\Config::setAppValue($appName, $key, $value);
+ \OC::$server->getAppConfig()->setValue($appName, $key, $value);
}
/**
@@ -73,7 +129,7 @@ class AllConfig implements \OCP\IConfig {
* @return string the saved value
*/
public function getAppValue($appName, $key, $default = '') {
- return \OCP\Config::getAppValue($appName, $key, $default);
+ return \OC::$server->getAppConfig()->getValue($appName, $key, $default);
}
/**
@@ -83,7 +139,16 @@ class AllConfig implements \OCP\IConfig {
* @param string $key the key of the value, under which it was saved
*/
public function deleteAppValue($appName, $key) {
- \OC_Appconfig::deleteKey($appName, $key);
+ \OC::$server->getAppConfig()->deleteKey($appName, $key);
+ }
+
+ /**
+ * Removes all keys in appconfig belonging to the app
+ *
+ * @param string $appName the appName the configs are stored under
+ */
+ public function deleteAppValues($appName) {
+ \OC::$server->getAppConfig()->deleteApp($appName);
}
@@ -94,13 +159,60 @@ class AllConfig implements \OCP\IConfig {
* @param string $appName the appName that we want to store the value under
* @param string $key the key under which the value is being stored
* @param string $value the value that you want to store
+ * @param string $preCondition only update if the config value was previously the value passed as $preCondition
+ * @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
*/
- public function setUserValue($userId, $appName, $key, $value) {
- \OCP\Config::setUserValue($userId, $appName, $key, $value);
+ public function setUserValue($userId, $appName, $key, $value, $preCondition = null) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ // Check if the key does exist
+ $sql = 'SELECT `configvalue` FROM `*PREFIX*preferences` '.
+ 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?';
+ $result = $this->connection->executeQuery($sql, array($userId, $appName, $key));
+ $oldValue = $result->fetchColumn();
+ $exists = $oldValue !== false;
+
+ if($oldValue === strval($value)) {
+ // no changes
+ return;
+ }
+
+ $data = array($value, $userId, $appName, $key);
+ if (!$exists && $preCondition === null) {
+ $sql = 'INSERT INTO `*PREFIX*preferences` (`configvalue`, `userid`, `appid`, `configkey`)'.
+ 'VALUES (?, ?, ?, ?)';
+ } elseif ($exists) {
+ $sql = 'UPDATE `*PREFIX*preferences` SET `configvalue` = ? '.
+ 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? ';
+
+ if($preCondition !== null) {
+ if($this->getSystemValue('dbtype', 'sqlite') === 'oci') {
+ //oracle hack: need to explicitly cast CLOB to CHAR for comparison
+ $sql .= 'AND to_char(`configvalue`) = ?';
+ } else {
+ $sql .= 'AND `configvalue` = ?';
+ }
+ $data[] = $preCondition;
+ }
+ }
+ $affectedRows = $this->connection->executeUpdate($sql, $data);
+
+ // only add to the cache if we already loaded data for the user
+ if ($affectedRows > 0 && isset($this->userCache[$userId])) {
+ if (!isset($this->userCache[$userId][$appName])) {
+ $this->userCache[$userId][$appName] = array();
+ }
+ $this->userCache[$userId][$appName][$key] = $value;
+ }
+
+ if ($preCondition !== null && $affectedRows === 0) {
+ throw new PreConditionNotMetException;
+ }
}
/**
- * Shortcut for getting a user defined value
+ * Getting a user defined value
*
* @param string $userId the userId of the user that we want to store the value under
* @param string $appName the appName that we stored the value under
@@ -109,7 +221,12 @@ class AllConfig implements \OCP\IConfig {
* @return string
*/
public function getUserValue($userId, $appName, $key, $default = '') {
- return \OCP\Config::getUserValue($userId, $appName, $key, $default);
+ $data = $this->getUserValues($userId);
+ if (isset($data[$appName]) and isset($data[$appName][$key])) {
+ return $data[$appName][$key];
+ } else {
+ return $default;
+ }
}
/**
@@ -120,7 +237,12 @@ class AllConfig implements \OCP\IConfig {
* @return string[]
*/
public function getUserKeys($userId, $appName) {
- return \OC_Preferences::getKeys($userId, $appName);
+ $data = $this->getUserValues($userId);
+ if (isset($data[$appName])) {
+ return array_keys($data[$appName]);
+ } else {
+ return array();
+ }
}
/**
@@ -131,6 +253,153 @@ class AllConfig implements \OCP\IConfig {
* @param string $key the key under which the value is being stored
*/
public function deleteUserValue($userId, $appName, $key) {
- \OC_Preferences::deleteKey($userId, $appName, $key);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $sql = 'DELETE FROM `*PREFIX*preferences` '.
+ 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?';
+ $this->connection->executeUpdate($sql, array($userId, $appName, $key));
+
+ if (isset($this->userCache[$userId]) and isset($this->userCache[$userId][$appName])) {
+ unset($this->userCache[$userId][$appName][$key]);
+ }
+ }
+
+ /**
+ * Delete all user values
+ *
+ * @param string $userId the userId of the user that we want to remove all values from
+ */
+ public function deleteAllUserValues($userId) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $sql = 'DELETE FROM `*PREFIX*preferences` '.
+ 'WHERE `userid` = ?';
+ $this->connection->executeUpdate($sql, array($userId));
+
+ unset($this->userCache[$userId]);
+ }
+
+ /**
+ * Delete all user related values of one app
+ *
+ * @param string $appName the appName of the app that we want to remove all values from
+ */
+ public function deleteAppFromAllUsers($appName) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $sql = 'DELETE FROM `*PREFIX*preferences` '.
+ 'WHERE `appid` = ?';
+ $this->connection->executeUpdate($sql, array($appName));
+
+ foreach ($this->userCache as &$userCache) {
+ unset($userCache[$appName]);
+ }
+ }
+
+ /**
+ * Returns all user configs sorted by app of one user
+ *
+ * @param string $userId the user ID to get the app configs from
+ * @return array[] - 2 dimensional array with the following structure:
+ * [ $appId =>
+ * [ $key => $value ]
+ * ]
+ */
+ private function getUserValues($userId) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ if (isset($this->userCache[$userId])) {
+ return $this->userCache[$userId];
+ }
+ $data = array();
+ $query = 'SELECT `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
+ $result = $this->connection->executeQuery($query, array($userId));
+ while ($row = $result->fetch()) {
+ $appId = $row['appid'];
+ if (!isset($data[$appId])) {
+ $data[$appId] = array();
+ }
+ $data[$appId][$row['configkey']] = $row['configvalue'];
+ }
+ $this->userCache[$userId] = $data;
+ return $data;
+ }
+
+ /**
+ * Fetches a mapped list of userId -> value, for a specified app and key and a list of user IDs.
+ *
+ * @param string $appName app to get the value for
+ * @param string $key the key to get the value for
+ * @param array $userIds the user IDs to fetch the values for
+ * @return array Mapped values: userId => value
+ */
+ public function getUserValueForUsers($appName, $key, $userIds) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ if (empty($userIds) || !is_array($userIds)) {
+ return array();
+ }
+
+ $chunkedUsers = array_chunk($userIds, 50, true);
+ $placeholders50 = implode(',', array_fill(0, 50, '?'));
+
+ $userValues = array();
+ foreach ($chunkedUsers as $chunk) {
+ $queryParams = $chunk;
+ // create [$app, $key, $chunkedUsers]
+ array_unshift($queryParams, $key);
+ array_unshift($queryParams, $appName);
+
+ $placeholders = (sizeof($chunk) == 50) ? $placeholders50 : implode(',', array_fill(0, sizeof($chunk), '?'));
+
+ $query = 'SELECT `userid`, `configvalue` ' .
+ 'FROM `*PREFIX*preferences` ' .
+ 'WHERE `appid` = ? AND `configkey` = ? ' .
+ 'AND `userid` IN (' . $placeholders . ')';
+ $result = $this->connection->executeQuery($query, $queryParams);
+
+ while ($row = $result->fetch()) {
+ $userValues[$row['userid']] = $row['configvalue'];
+ }
+ }
+
+ return $userValues;
+ }
+
+ /**
+ * Determines the users that have the given value set for a specific app-key-pair
+ *
+ * @param string $appName the app to get the user for
+ * @param string $key the key to get the user for
+ * @param string $value the value to get the user for
+ * @return array of user IDs
+ */
+ public function getUsersForUserValue($appName, $key, $value) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $sql = 'SELECT `userid` FROM `*PREFIX*preferences` ' .
+ 'WHERE `appid` = ? AND `configkey` = ? ';
+
+ if($this->getSystemValue('dbtype', 'sqlite') === 'oci') {
+ //oracle hack: need to explicitly cast CLOB to CHAR for comparison
+ $sql .= 'AND to_char(`configvalue`) = ?';
+ } else {
+ $sql .= 'AND `configvalue` = ?';
+ }
+
+ $result = $this->connection->executeQuery($sql, array($appName, $key, $value));
+
+ $userIDs = array();
+ while ($row = $result->fetch()) {
+ $userIDs[] = $row['userid'];
+ }
+
+ return $userIDs;
}
}
diff --git a/lib/private/config.php b/lib/private/config.php
index cc07d6a1ed1..8544de34b72 100644
--- a/lib/private/config.php
+++ b/lib/private/config.php
@@ -40,24 +40,6 @@ class Config {
}
/**
- * Enables or disables the debug mode
- * @param bool $state True to enable, false to disable
- */
- public function setDebugMode($state) {
- $this->debugMode = $state;
- $this->writeData();
- $this->cache;
- }
-
- /**
- * Returns whether the debug mode is enabled or disabled
- * @return bool True when enabled, false otherwise
- */
- public function isDebugMode() {
- return $this->debugMode;
- }
-
- /**
* Lists all available config keys
* @return array an array of key names
*
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php
index d93b8e68eb6..54eea54552f 100644
--- a/lib/private/connector/sabre/file.php
+++ b/lib/private/connector/sabre/file.php
@@ -104,7 +104,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
} catch (\OCP\Files\LockNotAcquiredException $e) {
// the file is currently being written to by another process
throw new OC_Connector_Sabre_Exception_FileLocked($e->getMessage(), $e->getCode(), $e);
- } catch (\OCA\Encryption\Exception\EncryptionException $e) {
+ } catch (\OCA\Files_Encryption\Exception\EncryptionException $e) {
throw new \Sabre\DAV\Exception\Forbidden($e->getMessage());
} catch (\OCP\Files\StorageNotAvailableException $e) {
throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
@@ -166,7 +166,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
} else {
try {
return $this->fileView->fopen(ltrim($this->path, '/'), 'rb');
- } catch (\OCA\Encryption\Exception\EncryptionException $e) {
+ } catch (\OCA\Files_Encryption\Exception\EncryptionException $e) {
throw new \Sabre\DAV\Exception\Forbidden($e->getMessage());
} catch (\OCP\Files\StorageNotAvailableException $e) {
throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
diff --git a/lib/private/contactsmanager.php b/lib/private/contactsmanager.php
index 737fc4f0e3a..527b603ac38 100644
--- a/lib/private/contactsmanager.php
+++ b/lib/private/contactsmanager.php
@@ -63,10 +63,10 @@ namespace OC {
}
if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) {
- return null;
+ return $addressBook->delete($id);
}
- return $addressBook->delete($id);
+ return null;
}
/**
@@ -84,10 +84,10 @@ namespace OC {
}
if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) {
- return null;
+ return $addressBook->createOrUpdate($properties);
}
- return $addressBook->createOrUpdate($properties);
+ return null;
}
/**
diff --git a/lib/private/datetimeformatter.php b/lib/private/datetimeformatter.php
new file mode 100644
index 00000000000..11c62f27083
--- /dev/null
+++ b/lib/private/datetimeformatter.php
@@ -0,0 +1,269 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Joas Schilling
+ * @copyright 2014 Joas Schilling nickvergessen@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC;
+
+class DateTimeFormatter implements \OCP\IDateTimeFormatter {
+ /** @var \DateTimeZone */
+ protected $defaultTimeZone;
+
+ /** @var \OCP\IL10N */
+ protected $defaultL10N;
+
+ /**
+ * Constructor
+ *
+ * @param \DateTimeZone $defaultTimeZone Set the timezone for the format
+ * @param \OCP\IL10N $defaultL10N Set the language for the format
+ */
+ public function __construct(\DateTimeZone $defaultTimeZone, \OCP\IL10N $defaultL10N) {
+ $this->defaultTimeZone = $defaultTimeZone;
+ $this->defaultL10N = $defaultL10N;
+ }
+
+ /**
+ * Get TimeZone to use
+ *
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @return \DateTimeZone The timezone to use, falling back to the current user's timezone
+ */
+ protected function getTimeZone($timeZone = null) {
+ if ($timeZone === null) {
+ $timeZone = $this->defaultTimeZone;
+ }
+
+ return $timeZone;
+ }
+
+ /**
+ * Get \OCP\IL10N to use
+ *
+ * @param \OCP\IL10N $l The locale to use
+ * @return \OCP\IL10N The locale to use, falling back to the current user's locale
+ */
+ protected function getLocale($l = null) {
+ if ($l === null) {
+ $l = $this->defaultL10N;
+ }
+
+ return $l;
+ }
+
+ /**
+ * Generates a DateTime object with the given timestamp and TimeZone
+ *
+ * @param mixed $timestamp
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @return \DateTime
+ */
+ protected function getDateTime($timestamp, \DateTimeZone $timeZone = null) {
+ if ($timestamp === null) {
+ return new \DateTime('now', $timeZone);
+ } else if (!$timestamp instanceof \DateTime) {
+ $dateTime = new \DateTime('now', $timeZone);
+ $dateTime->setTimestamp($timestamp);
+ return $dateTime;
+ }
+ if ($timeZone) {
+ $timestamp->setTimezone($timeZone);
+ }
+ return $timestamp;
+ }
+
+ /**
+ * Formats the date of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'EEEE, MMMM d, y' => 'Wednesday, August 20, 2014'
+ * long: e.g. 'MMMM d, y' => 'August 20, 2014'
+ * medium: e.g. 'MMM d, y' => 'Aug 20, 2014'
+ * short: e.g. 'M/d/yy' => '8/20/14'
+ * The exact format is dependent on the language
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date string
+ */
+ public function formatDate($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ return $this->format($timestamp, 'date', $format, $timeZone, $l);
+ }
+
+ /**
+ * Formats the date of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'EEEE, MMMM d, y' => 'Wednesday, August 20, 2014'
+ * long: e.g. 'MMMM d, y' => 'August 20, 2014'
+ * medium: e.g. 'MMM d, y' => 'Aug 20, 2014'
+ * short: e.g. 'M/d/yy' => '8/20/14'
+ * The exact format is dependent on the language
+ * Uses 'Today', 'Yesterday' and 'Tomorrow' when applicable
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted relative date string
+ */
+ public function formatDateRelativeDay($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ if (substr($format, -1) !== '*' && substr($format, -1) !== '*') {
+ $format .= '^';
+ }
+
+ return $this->format($timestamp, 'date', $format, $timeZone, $l);
+ }
+
+ /**
+ * Gives the relative date of the timestamp
+ * Only works for past dates
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param int|\DateTime $baseTimestamp Timestamp to compare $timestamp against, defaults to current time
+ * @return string Dates returned are:
+ * < 1 month => Today, Yesterday, n days ago
+ * < 13 month => last month, n months ago
+ * >= 13 month => last year, n years ago
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date span
+ */
+ public function formatDateSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) {
+ $l = $this->getLocale($l);
+ $timestamp = $this->getDateTime($timestamp);
+ $timestamp->setTime(0, 0, 0);
+ if ($baseTimestamp === null) {
+ $baseTimestamp = time();
+ }
+ $baseTimestamp = $this->getDateTime($baseTimestamp);
+ $baseTimestamp->setTime(0, 0, 0);
+ $dateInterval = $timestamp->diff($baseTimestamp);
+
+ if ($dateInterval->y == 0 && $dateInterval->m == 0 && $dateInterval->d == 0) {
+ return (string) $l->t('today');
+ } else if ($dateInterval->y == 0 && $dateInterval->m == 0 && $dateInterval->d == 1) {
+ return (string) $l->t('yesterday');
+ } else if ($dateInterval->y == 0 && $dateInterval->m == 0) {
+ return (string) $l->n('%n day ago', '%n days ago', $dateInterval->d);
+ } else if ($dateInterval->y == 0 && $dateInterval->m == 1) {
+ return (string) $l->t('last month');
+ } else if ($dateInterval->y == 0) {
+ return (string) $l->n('%n month ago', '%n months ago', $dateInterval->m);
+ } else if ($dateInterval->y == 1) {
+ return (string) $l->t('last year');
+ }
+ return (string) $l->n('%n year ago', '%n years ago', $dateInterval->y);
+ }
+
+ /**
+ * Formats the time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'h:mm:ss a zzzz' => '11:42:13 AM GMT+0:00'
+ * long: e.g. 'h:mm:ss a z' => '11:42:13 AM GMT'
+ * medium: e.g. 'h:mm:ss a' => '11:42:13 AM'
+ * short: e.g. 'h:mm a' => '11:42 AM'
+ * The exact format is dependent on the language
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted time string
+ */
+ public function formatTime($timestamp, $format = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ return $this->format($timestamp, 'time', $format, $timeZone, $l);
+ }
+
+ /**
+ * Gives the relative past time of the timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param int|\DateTime $baseTimestamp Timestamp to compare $timestamp against, defaults to current time
+ * @return string Dates returned are:
+ * < 60 sec => seconds ago
+ * < 1 hour => n minutes ago
+ * < 1 day => n hours ago
+ * < 1 month => Yesterday, n days ago
+ * < 13 month => last month, n months ago
+ * >= 13 month => last year, n years ago
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted time span
+ */
+ public function formatTimeSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) {
+ $l = $this->getLocale($l);
+ $timestamp = $this->getDateTime($timestamp);
+ if ($baseTimestamp === null) {
+ $baseTimestamp = time();
+ }
+ $baseTimestamp = $this->getDateTime($baseTimestamp);
+
+ $diff = $timestamp->diff($baseTimestamp);
+ if ($diff->y > 0 || $diff->m > 0 || $diff->d > 0) {
+ return (string) $this->formatDateSpan($timestamp, $baseTimestamp, $l);
+ }
+
+ if ($diff->h > 0) {
+ return (string) $l->n('%n hour ago', '%n hours ago', $diff->h);
+ } else if ($diff->i > 0) {
+ return (string) $l->n('%n minute ago', '%n minutes ago', $diff->i);
+ }
+ return (string) $l->t('seconds ago');
+ }
+
+ /**
+ * Formats the date and time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $formatDate See formatDate() for description
+ * @param string $formatTime See formatTime() for description
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date and time string
+ */
+ public function formatDateTime($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ return $this->format($timestamp, 'datetime', $formatDate . '|' . $formatTime, $timeZone, $l);
+ }
+
+ /**
+ * Formats the date and time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $formatDate See formatDate() for description
+ * Uses 'Today', 'Yesterday' and 'Tomorrow' when applicable
+ * @param string $formatTime See formatTime() for description
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted relative date and time string
+ */
+ public function formatDateTimeRelativeDay($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ if (substr($formatDate, -1) !== '^' && substr($formatDate, -1) !== '*') {
+ $formatDate .= '^';
+ }
+
+ return $this->format($timestamp, 'datetime', $formatDate . '|' . $formatTime, $timeZone, $l);
+ }
+
+ /**
+ * Formats the date and time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp Either a Unix timestamp or DateTime object
+ * @param string $type One of 'date', 'datetime' or 'time'
+ * @param string $format Format string
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date and time string
+ */
+ protected function format($timestamp, $type, $format, \DateTimeZone $timeZone = null, \OCP\IL10N $l = null) {
+ $l = $this->getLocale($l);
+ $timeZone = $this->getTimeZone($timeZone);
+ $timestamp = $this->getDateTime($timestamp, $timeZone);
+
+ return (string) $l->l($type, $timestamp, array(
+ 'width' => $format,
+ ));
+ }
+}
diff --git a/lib/private/db.php b/lib/private/db.php
index f8015133682..dc25092e276 100644
--- a/lib/private/db.php
+++ b/lib/private/db.php
@@ -263,16 +263,7 @@ class OC_DB {
*/
public static function dropTable($tableName) {
$connection = \OC::$server->getDatabaseConnection();
- $tableName = OC_Config::getValue('dbtableprefix', 'oc_' ) . trim($tableName);
-
- $connection->beginTransaction();
-
- $platform = $connection->getDatabasePlatform();
- $sql = $platform->getDropTableSQL($platform->quoteIdentifier($tableName));
-
- $connection->executeQuery($sql);
-
- $connection->commit();
+ $connection->dropTable($tableName);
}
/**
@@ -334,42 +325,7 @@ class OC_DB {
* @throws \OC\DatabaseException
*/
public static function tableExists($table) {
-
- $table = OC_Config::getValue('dbtableprefix', 'oc_' ) . trim($table);
-
- $dbType = OC_Config::getValue( 'dbtype', 'sqlite' );
- switch ($dbType) {
- case 'sqlite':
- case 'sqlite3':
- $sql = "SELECT name FROM sqlite_master "
- . "WHERE type = 'table' AND name = ? "
- . "UNION ALL SELECT name FROM sqlite_temp_master "
- . "WHERE type = 'table' AND name = ?";
- $result = \OC_DB::executeAudited($sql, array($table, $table));
- break;
- case 'mysql':
- $sql = 'SHOW TABLES LIKE ?';
- $result = \OC_DB::executeAudited($sql, array($table));
- break;
- case 'pgsql':
- $sql = 'SELECT tablename AS table_name, schemaname AS schema_name '
- . 'FROM pg_tables WHERE schemaname NOT LIKE \'pg_%\' '
- . 'AND schemaname != \'information_schema\' '
- . 'AND tablename = ?';
- $result = \OC_DB::executeAudited($sql, array($table));
- break;
- case 'oci':
- $sql = 'SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = ?';
- $result = \OC_DB::executeAudited($sql, array($table));
- break;
- case 'mssql':
- $sql = 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ?';
- $result = \OC_DB::executeAudited($sql, array($table));
- break;
- default:
- throw new \OC\DatabaseException("Unknown database type: $dbType");
- }
-
- return $result->fetchOne() === $table;
+ $connection = \OC::$server->getDatabaseConnection();
+ return $connection->tableExists($table);
}
}
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index a6cdf858899..9de7a719ff5 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -164,6 +164,31 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
return $msg;
}
+ /**
+ * Drop a table from the database if it exists
+ *
+ * @param string $table table name without the prefix
+ */
+ public function dropTable($table) {
+ $table = $this->tablePrefix . trim($table);
+ $schema = $this->getSchemaManager();
+ if($schema->tablesExist(array($table))) {
+ $schema->dropTable($table);
+ }
+ }
+
+ /**
+ * Check if a table exists
+ *
+ * @param string $table table name without the prefix
+ * @return bool
+ */
+ public function tableExists($table){
+ $table = $this->tablePrefix . trim($table);
+ $schema = $this->getSchemaManager();
+ return $schema->tablesExist(array($table));
+ }
+
// internal use
/**
* @param string $statement
diff --git a/lib/private/db/connectionfactory.php b/lib/private/db/connectionfactory.php
index 58043b30440..9c75baf887d 100644
--- a/lib/private/db/connectionfactory.php
+++ b/lib/private/db/connectionfactory.php
@@ -123,23 +123,23 @@ class ConnectionFactory {
/**
* Create the connection parameters for the config
*
- * @param \OCP\IConfig $config
+ * @param \OC\SystemConfig $config
* @return array
*/
public function createConnectionParams($config) {
- $type = $config->getSystemValue('dbtype', 'sqlite');
+ $type = $config->getValue('dbtype', 'sqlite');
$connectionParams = array(
- 'user' => $config->getSystemValue('dbuser', ''),
- 'password' => $config->getSystemValue('dbpassword', ''),
+ 'user' => $config->getValue('dbuser', ''),
+ 'password' => $config->getValue('dbpassword', ''),
);
- $name = $config->getSystemValue('dbname', 'owncloud');
+ $name = $config->getValue('dbname', 'owncloud');
if ($this->normalizeType($type) === 'sqlite3') {
- $datadir = $config->getSystemValue("datadirectory", \OC::$SERVERROOT . '/data');
+ $datadir = $config->getValue("datadirectory", \OC::$SERVERROOT . '/data');
$connectionParams['path'] = $datadir . '/' . $name . '.db';
} else {
- $host = $config->getSystemValue('dbhost', '');
+ $host = $config->getValue('dbhost', '');
if (strpos($host, ':')) {
// Host variable may carry a port or socket.
list($host, $portOrSocket) = explode(':', $host, 2);
@@ -153,11 +153,11 @@ class ConnectionFactory {
$connectionParams['dbname'] = $name;
}
- $connectionParams['tablePrefix'] = $config->getSystemValue('dbtableprefix', 'oc_');
- $connectionParams['sqlite.journal_mode'] = $config->getSystemValue('sqlite.journal_mode', 'WAL');
+ $connectionParams['tablePrefix'] = $config->getValue('dbtableprefix', 'oc_');
+ $connectionParams['sqlite.journal_mode'] = $config->getValue('sqlite.journal_mode', 'WAL');
//additional driver options, eg. for mysql ssl
- $driverOptions = $config->getSystemValue('dbdriveroptions', null);
+ $driverOptions = $config->getValue('dbdriveroptions', null);
if ($driverOptions) {
$connectionParams['driverOptions'] = $driverOptions;
}
diff --git a/lib/private/db/oracleconnection.php b/lib/private/db/oracleconnection.php
index 4cec7bc4ae4..726ac1e4b6d 100644
--- a/lib/private/db/oracleconnection.php
+++ b/lib/private/db/oracleconnection.php
@@ -47,4 +47,31 @@ class OracleConnection extends Connection {
$identifier = $this->quoteKeys($identifier);
return parent::delete($tableName, $identifier);
}
+
+ /**
+ * Drop a table from the database if it exists
+ *
+ * @param string $table table name without the prefix
+ */
+ public function dropTable($table) {
+ $table = $this->tablePrefix . trim($table);
+ $table = $this->quoteIdentifier($table);
+ $schema = $this->getSchemaManager();
+ if($schema->tablesExist(array($table))) {
+ $schema->dropTable($table);
+ }
+ }
+
+ /**
+ * Check if a table exists
+ *
+ * @param string $table table name without the prefix
+ * @return bool
+ */
+ public function tableExists($table){
+ $table = $this->tablePrefix . trim($table);
+ $table = $this->quoteIdentifier($table);
+ $schema = $this->getSchemaManager();
+ return $schema->tablesExist(array($table));
+ }
}
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 4157da2281c..9df64db7f07 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -504,6 +504,51 @@ class Cache {
}
/**
+ * Search for files by tag of a given users.
+ *
+ * Note that every user can tag files differently.
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ $sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, ' .
+ '`mimetype`, `mimepart`, `size`, `mtime`, ' .
+ '`encrypted`, `unencrypted_size`, `etag`, `permissions` ' .
+ 'FROM `*PREFIX*filecache` `file`, ' .
+ '`*PREFIX*vcategory_to_object` `tagmap`, ' .
+ '`*PREFIX*vcategory` `tag` ' .
+ // JOIN filecache to vcategory_to_object
+ 'WHERE `file`.`fileid` = `tagmap`.`objid` '.
+ // JOIN vcategory_to_object to vcategory
+ 'AND `tagmap`.`type` = `tag`.`type` ' .
+ 'AND `tagmap`.`categoryid` = `tag`.`id` ' .
+ // conditions
+ 'AND `file`.`storage` = ? '.
+ 'AND `tag`.`type` = \'files\' ' .
+ 'AND `tag`.`uid` = ? ';
+ if (is_int($tag)) {
+ $sql .= 'AND `tag`.`id` = ? ';
+ } else {
+ $sql .= 'AND `tag`.`category` = ? ';
+ }
+ $result = \OC_DB::executeAudited(
+ $sql,
+ array(
+ $this->getNumericStorageId(),
+ $userId,
+ $tag
+ )
+ );
+ $files = array();
+ while ($row = $result->fetchRow()) {
+ $files[] = $row;
+ }
+ return $files;
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php
index 444207518b2..a5383cee10d 100644
--- a/lib/private/files/cache/scanner.php
+++ b/lib/private/files/cache/scanner.php
@@ -219,8 +219,10 @@ class Scanner extends BasicEmitter {
$reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : 0;
}
$data = $this->scanFile($path, $reuse);
- $size = $this->scanChildren($path, $recursive, $reuse);
- $data['size'] = $size;
+ if ($data !== null) {
+ $size = $this->scanChildren($path, $recursive, $reuse);
+ $data['size'] = $size;
+ }
return $data;
}
diff --git a/lib/private/files/cache/wrapper/cachejail.php b/lib/private/files/cache/wrapper/cachejail.php
index 7982293f5ed..f4ffc67d76a 100644
--- a/lib/private/files/cache/wrapper/cachejail.php
+++ b/lib/private/files/cache/wrapper/cachejail.php
@@ -198,6 +198,18 @@ class CacheJail extends CacheWrapper {
}
/**
+ * search for files by mimetype
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array
+ */
+ public function searchByTag($tag, $userId) {
+ $results = $this->cache->searchByTag($tag, $userId);
+ return $this->formatSearchResults($results);
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
diff --git a/lib/private/files/cache/wrapper/cachewrapper.php b/lib/private/files/cache/wrapper/cachewrapper.php
index 040358ec657..83811520e4b 100644
--- a/lib/private/files/cache/wrapper/cachewrapper.php
+++ b/lib/private/files/cache/wrapper/cachewrapper.php
@@ -181,6 +181,18 @@ class CacheWrapper extends Cache {
}
/**
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ $results = $this->cache->searchByTag($tag, $userId);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
@@ -234,6 +246,15 @@ class CacheWrapper extends Cache {
}
/**
+ * Returns the numeric storage id
+ *
+ * @return int
+ */
+ public function getNumericStorageId() {
+ return $this->cache->getNumericStorageId();
+ }
+
+ /**
* get the storage id of the storage for a file and the internal path of the file
* unlike getPathById this does not limit the search to files on this storage and
* instead does a global search in the cache table
diff --git a/lib/private/files/config/mountprovidercollection.php b/lib/private/files/config/mountprovidercollection.php
new file mode 100644
index 00000000000..49d026f1bda
--- /dev/null
+++ b/lib/private/files/config/mountprovidercollection.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Config;
+
+use OCP\Files\Config\IMountProviderCollection;
+use OCP\Files\Config\IMountProvider;
+use OCP\Files\Storage\IStorageFactory;
+use OCP\IUser;
+
+class MountProviderCollection implements IMountProviderCollection {
+ /**
+ * @var \OCP\Files\Config\IMountProvider[]
+ */
+ private $providers = array();
+
+ /**
+ * @var \OCP\Files\Storage\IStorageFactory
+ */
+ private $loader;
+
+ /**
+ * @param \OCP\Files\Storage\IStorageFactory $loader
+ */
+ public function __construct(IStorageFactory $loader) {
+ $this->loader = $loader;
+ }
+
+ /**
+ * Get all configured mount points for the user
+ *
+ * @param \OCP\IUser $user
+ * @return \OCP\Files\Mount\IMountPoint[]
+ */
+ public function getMountsForUser(IUser $user) {
+ $loader = $this->loader;
+ return array_reduce($this->providers, function ($mounts, IMountProvider $provider) use ($user, $loader) {
+ return array_merge($mounts, $provider->getMountsForUser($user, $loader));
+ }, array());
+ }
+
+ /**
+ * Add a provider for mount points
+ *
+ * @param \OCP\Files\Config\IMountProvider $provider
+ */
+ public function registerProvider(IMountProvider $provider) {
+ $this->providers[] = $provider;
+ }
+}
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index 6c8fa8c90ba..ed2be59c092 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -30,7 +30,7 @@
namespace OC\Files;
-use OC\Files\Storage\Loader;
+use OC\Files\Storage\StorageFactory;
class Filesystem {
@@ -165,7 +165,7 @@ class Filesystem {
const signal_param_users = 'users';
/**
- * @var \OC\Files\Storage\Loader $loader
+ * @var \OC\Files\Storage\StorageFactory $loader
*/
private static $loader;
@@ -183,7 +183,7 @@ class Filesystem {
public static function getLoader() {
if (!self::$loader) {
- self::$loader = new Loader();
+ self::$loader = new StorageFactory();
}
return self::$loader;
}
@@ -250,7 +250,7 @@ class Filesystem {
/**
* @param string $id
- * @return Mount\Mount[]
+ * @return Mount\MountPoint[]
*/
public static function getMountByStorageId($id) {
if (!self::$mounts) {
@@ -261,7 +261,7 @@ class Filesystem {
/**
* @param int $id
- * @return Mount\Mount[]
+ * @return Mount\MountPoint[]
*/
public static function getMountByNumericId($id) {
if (!self::$mounts) {
@@ -370,6 +370,11 @@ class Filesystem {
self::mountCacheDir($user);
// Chance to mount for other storages
+ if($userObject) {
+ $mountConfigManager = \OC::$server->getMountProviderCollection();
+ $mounts = $mountConfigManager->getMountsForUser($userObject);
+ array_walk($mounts, array(self::$mounts, 'addMount'));
+ }
\OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root));
}
@@ -447,7 +452,7 @@ class Filesystem {
if (!self::$mounts) {
\OC_Util::setupFS();
}
- $mount = new Mount\Mount($class, $mountpoint, $arguments, self::getLoader());
+ $mount = new Mount\MountPoint($class, $mountpoint, $arguments, self::getLoader());
self::$mounts->addMount($mount);
}
@@ -682,6 +687,15 @@ class Filesystem {
}
/**
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return FileInfo[] array or file info
+ */
+ static public function searchByTag($tag, $userId) {
+ return self::$defaultInstance->searchByTag($tag, $userId);
+ }
+
+ /**
* check if a file or folder has been updated since $time
*
* @param string $path
diff --git a/lib/private/files/mount/manager.php b/lib/private/files/mount/manager.php
index 0ccf42941de..8472ebc976a 100644
--- a/lib/private/files/mount/manager.php
+++ b/lib/private/files/mount/manager.php
@@ -12,14 +12,14 @@ use \OC\Files\Filesystem;
class Manager {
/**
- * @var Mount[]
+ * @var MountPoint[]
*/
private $mounts = array();
/**
- * @param Mount $mount
+ * @param MountPoint $mount
*/
- public function addMount(Mount $mount) {
+ public function addMount(MountPoint $mount) {
$this->mounts[$mount->getMountPoint()] = $mount;
}
@@ -47,7 +47,7 @@ class Manager {
* Find the mount for $path
*
* @param string $path
- * @return Mount
+ * @return MountPoint
*/
public function find($path) {
\OC_Util::setupFS();
@@ -75,7 +75,7 @@ class Manager {
* Find all mounts in $path
*
* @param string $path
- * @return Mount[]
+ * @return MountPoint[]
*/
public function findIn($path) {
\OC_Util::setupFS();
@@ -99,7 +99,7 @@ class Manager {
* Find mounts by storage id
*
* @param string $id
- * @return Mount[]
+ * @return MountPoint[]
*/
public function findByStorageId($id) {
\OC_Util::setupFS();
@@ -116,7 +116,7 @@ class Manager {
}
/**
- * @return Mount[]
+ * @return MountPoint[]
*/
public function getAll() {
return $this->mounts;
@@ -126,7 +126,7 @@ class Manager {
* Find mounts by numeric storage id
*
* @param int $id
- * @return Mount[]
+ * @return MountPoint[]
*/
public function findByNumericId($id) {
$storageId = \OC\Files\Cache\Storage::getStorageId($id);
diff --git a/lib/private/files/mount/mount.php b/lib/private/files/mount/mountpoint.php
index 48c9d88c23c..b2c50f9d881 100644
--- a/lib/private/files/mount/mount.php
+++ b/lib/private/files/mount/mountpoint.php
@@ -9,10 +9,11 @@
namespace OC\Files\Mount;
use \OC\Files\Filesystem;
-use OC\Files\Storage\Loader;
+use OC\Files\Storage\StorageFactory;
use OC\Files\Storage\Storage;
+use OCP\Files\Mount\IMountPoint;
-class Mount {
+class MountPoint implements IMountPoint {
/**
* @var \OC\Files\Storage\Storage $storage
*/
@@ -23,7 +24,7 @@ class Mount {
protected $mountPoint;
/**
- * @var \OC\Files\Storage\Loader $loader
+ * @var \OC\Files\Storage\StorageFactory $loader
*/
private $loader;
@@ -31,14 +32,14 @@ class Mount {
* @param string|\OC\Files\Storage\Storage $storage
* @param string $mountpoint
* @param array $arguments (optional)\
- * @param \OC\Files\Storage\Loader $loader
+ * @param \OCP\Files\Storage\IStorageFactory $loader
*/
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
if (is_null($arguments)) {
$arguments = array();
}
if (is_null($loader)) {
- $this->loader = new Loader();
+ $this->loader = new StorageFactory();
} else {
$this->loader = $loader;
}
@@ -68,15 +69,6 @@ class Mount {
}
/**
- * get name of the mount point
- *
- * @return string
- */
- public function getMountPointName() {
- return basename(rtrim($this->mountPoint, '/'));
- }
-
- /**
* @param string $mountPoint new mount point
*/
public function setMountPoint($mountPoint) {
@@ -91,7 +83,7 @@ class Mount {
private function createStorage() {
if (class_exists($this->class)) {
try {
- return $this->loader->load($this->mountPoint, $this->class, $this->arguments);
+ return $this->loader->getInstance($this->mountPoint, $this->class, $this->arguments);
} catch (\Exception $exception) {
if ($this->mountPoint === '/') {
// the root storage could not be initialized, show the user!
diff --git a/lib/private/files/node/folder.php b/lib/private/files/node/folder.php
index 54a699be532..bdfb2346716 100644
--- a/lib/private/files/node/folder.php
+++ b/lib/private/files/node/folder.php
@@ -223,7 +223,7 @@ class Folder extends Node implements \OCP\Files\Folder {
* @return \OC\Files\Node\Node[]
*/
public function search($query) {
- return $this->searchCommon('%' . $query . '%', 'search');
+ return $this->searchCommon('search', array('%' . $query . '%'));
}
/**
@@ -233,15 +233,26 @@ class Folder extends Node implements \OCP\Files\Folder {
* @return Node[]
*/
public function searchByMime($mimetype) {
- return $this->searchCommon($mimetype, 'searchByMime');
+ return $this->searchCommon('searchByMime', array($mimetype));
}
/**
- * @param string $query
- * @param string $method
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return Node[]
+ */
+ public function searchByTag($tag, $userId) {
+ return $this->searchCommon('searchByTag', array($tag, $userId));
+ }
+
+ /**
+ * @param string $method cache method
+ * @param array $args call args
* @return \OC\Files\Node\Node[]
*/
- private function searchCommon($query, $method) {
+ private function searchCommon($method, $args) {
$files = array();
$rootLength = strlen($this->path);
/**
@@ -252,7 +263,7 @@ class Folder extends Node implements \OCP\Files\Folder {
$cache = $storage->getCache('');
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
if ($internalRootLength === 0 or substr($result['path'], 0, $internalRootLength) === $internalPath) {
$result['internalPath'] = $result['path'];
@@ -269,7 +280,7 @@ class Folder extends Node implements \OCP\Files\Folder {
$cache = $storage->getCache('');
$relativeMountPoint = substr($mount->getMountPoint(), $rootLength);
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
$result['internalPath'] = $result['path'];
$result['path'] = $relativeMountPoint . $result['path'];
@@ -301,7 +312,7 @@ class Folder extends Node implements \OCP\Files\Folder {
$nodes = array();
foreach ($mounts as $mount) {
/**
- * @var \OC\Files\Mount\Mount $mount
+ * @var \OC\Files\Mount\MountPoint $mount
*/
if ($mount->getStorage()) {
$cache = $mount->getStorage()->getCache();
diff --git a/lib/private/files/node/nonexistingfolder.php b/lib/private/files/node/nonexistingfolder.php
index 0346cbf1e21..04f741e8a46 100644
--- a/lib/private/files/node/nonexistingfolder.php
+++ b/lib/private/files/node/nonexistingfolder.php
@@ -99,6 +99,10 @@ class NonExistingFolder extends Folder {
throw new NotFoundException();
}
+ public function searchByTag($tag, $userId) {
+ throw new NotFoundException();
+ }
+
public function getById($id) {
throw new NotFoundException();
}
diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php
index 1e8387dc5cb..35132f5458d 100644
--- a/lib/private/files/node/root.php
+++ b/lib/private/files/node/root.php
@@ -10,7 +10,7 @@ namespace OC\Files\Node;
use OC\Files\Cache\Cache;
use OC\Files\Mount\Manager;
-use OC\Files\Mount\Mount;
+use OC\Files\Mount\MountPoint;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OC\Hooks\Emitter;
@@ -106,13 +106,13 @@ class Root extends Folder implements Emitter {
* @param array $arguments
*/
public function mount($storage, $mountPoint, $arguments = array()) {
- $mount = new Mount($storage, $mountPoint, $arguments);
+ $mount = new MountPoint($storage, $mountPoint, $arguments);
$this->mountManager->addMount($mount);
}
/**
* @param string $mountPoint
- * @return \OC\Files\Mount\Mount
+ * @return \OC\Files\Mount\MountPoint
*/
public function getMount($mountPoint) {
return $this->mountManager->find($mountPoint);
@@ -120,7 +120,7 @@ class Root extends Folder implements Emitter {
/**
* @param string $mountPoint
- * @return \OC\Files\Mount\Mount[]
+ * @return \OC\Files\Mount\MountPoint[]
*/
public function getMountsIn($mountPoint) {
return $this->mountManager->findIn($mountPoint);
@@ -128,7 +128,7 @@ class Root extends Folder implements Emitter {
/**
* @param string $storageId
- * @return \OC\Files\Mount\Mount[]
+ * @return \OC\Files\Mount\MountPoint[]
*/
public function getMountByStorageId($storageId) {
return $this->mountManager->findByStorageId($storageId);
@@ -136,14 +136,14 @@ class Root extends Folder implements Emitter {
/**
* @param int $numericId
- * @return Mount[]
+ * @return MountPoint[]
*/
public function getMountByNumericStorageId($numericId) {
return $this->mountManager->findByNumericId($numericId);
}
/**
- * @param \OC\Files\Mount\Mount $mount
+ * @param \OC\Files\Mount\MountPoint $mount
*/
public function unMount($mount) {
$this->mountManager->remove($mount);
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index a2832bce009..887ec1972b3 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -123,7 +123,11 @@ class DAV extends \OC\Files\Storage\Common {
}
\OC\Files\Stream\Dir::register($id, $content);
return opendir('fakedir://' . $id);
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -138,9 +142,11 @@ class DAV extends \OC\Files\Storage\Common {
$responseType = $response["{DAV:}resourcetype"]->resourceType;
}
return (count($responseType) > 0 and $responseType[0] == "{DAV:}collection") ? 'dir' : 'file';
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
- error_log($e->getMessage());
- \OCP\Util::writeLog("webdav client", \OCP\Util::sanitizeHTML($e->getMessage()), \OCP\Util::ERROR);
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -151,7 +157,11 @@ class DAV extends \OC\Files\Storage\Common {
try {
$this->client->propfind($this->encodePath($path), array('{DAV:}resourcetype'));
return true; //no 404 exception
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -263,7 +273,11 @@ class DAV extends \OC\Files\Storage\Common {
if ($this->file_exists($path)) {
try {
$this->client->proppatch($this->encodePath($path), array('{DAV:}lastmodified' => $mtime));
- } catch (\Sabre\DAV\Exception\NotImplemented $e) {
+ } catch (Exception\NotImplemented $e) {
+ return false;
+ } catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
} else {
@@ -313,6 +327,8 @@ class DAV extends \OC\Files\Storage\Common {
$this->removeCachedFile($path2);
return true;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -326,6 +342,8 @@ class DAV extends \OC\Files\Storage\Common {
$this->removeCachedFile($path2);
return true;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -339,7 +357,11 @@ class DAV extends \OC\Files\Storage\Common {
'mtime' => strtotime($response['{DAV:}getlastmodified']),
'size' => (int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0,
);
+ } catch (Exception\NotFound $e) {
+ return array();
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return array();
}
}
@@ -362,6 +384,8 @@ class DAV extends \OC\Files\Storage\Common {
return false;
}
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -400,6 +424,8 @@ class DAV extends \OC\Files\Storage\Common {
$response = $this->client->request($method, $this->encodePath($path), $body);
return $response['statusCode'] == $expected;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
diff --git a/lib/private/files/storage/loader.php b/lib/private/files/storage/storagefactory.php
index c75a0a976a7..c9e8d422f9d 100644
--- a/lib/private/files/storage/loader.php
+++ b/lib/private/files/storage/storagefactory.php
@@ -8,7 +8,9 @@
namespace OC\Files\Storage;
-class Loader {
+use OCP\Files\Storage\IStorageFactory;
+
+class StorageFactory implements IStorageFactory {
/**
* @var callable[] $storageWrappers
*/
@@ -19,6 +21,7 @@ class Loader {
*
* $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
*
+ * @param string $wrapperName
* @param callable $callback
*/
public function addStorageWrapper($wrapperName, $callback) {
@@ -26,15 +29,21 @@ class Loader {
}
/**
+ * Create an instance of a storage and apply the registered storage wrappers
+ *
* @param string|boolean $mountPoint
* @param string $class
+ * @param array $arguments
+ * @return \OCP\Files\Storage
*/
- public function load($mountPoint, $class, $arguments) {
+ public function getInstance($mountPoint, $class, $arguments) {
return $this->wrap($mountPoint, new $class($arguments));
}
/**
* @param string|boolean $mountPoint
+ * @param \OCP\Files\Storage $storage
+ * @return \OCP\Files\Storage
*/
public function wrap($mountPoint, $storage) {
foreach ($this->storageWrappers as $wrapper) {
diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php
index adb66497be0..662d4ac03c7 100644
--- a/lib/private/files/utils/scanner.php
+++ b/lib/private/files/utils/scanner.php
@@ -53,7 +53,7 @@ class Scanner extends PublicEmitter {
* get all storages for $dir
*
* @param string $dir
- * @return \OC\Files\Mount\Mount[]
+ * @return \OC\Files\Mount\MountPoint[]
*/
protected function getMounts($dir) {
//TODO: move to the node based fileapi once that's done
@@ -72,7 +72,7 @@ class Scanner extends PublicEmitter {
/**
* attach listeners to the scanner
*
- * @param \OC\Files\Mount\Mount $mount
+ * @param \OC\Files\Mount\MountPoint $mount
*/
protected function attachListener($mount) {
$scanner = $mount->getStorage()->getScanner();
@@ -114,7 +114,7 @@ class Scanner extends PublicEmitter {
* @param string $dir
* @throws \OC\ForbiddenException
*/
- public function scan($dir) {
+ public function scan($dir = '') {
$mounts = $this->getMounts($dir);
foreach ($mounts as $mount) {
if (is_null($mount->getStorage())) {
@@ -127,11 +127,12 @@ class Scanner extends PublicEmitter {
) {
throw new ForbiddenException();
}
+ $relativePath = $mount->getInternalPath($dir);
$scanner = $storage->getScanner();
$scanner->setUseTransactions(false);
$this->attachListener($mount);
$this->db->beginTransaction();
- $scanner->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE);
+ $scanner->scan($relativePath, \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE);
$this->db->commit();
}
$this->propagator->propagateChanges(time());
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 331ab9ba6cd..c01763cdad3 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -465,7 +465,7 @@ class View {
if ($internalPath1 === '' and $mount instanceof MoveableMount) {
if ($this->isTargetAllowed($absolutePath2)) {
/**
- * @var \OC\Files\Mount\Mount | \OC\Files\Mount\MoveableMount $mount
+ * @var \OC\Files\Mount\MountPoint | \OC\Files\Mount\MoveableMount $mount
*/
$sourceMountPoint = $mount->getMountPoint();
$result = $mount->moveMount($absolutePath2);
@@ -678,7 +678,7 @@ class View {
$source = fopen($tmpFile, 'r');
if ($source) {
- $this->file_put_contents($path, $source);
+ $result = $this->file_put_contents($path, $source);
// $this->file_put_contents() might have already closed
// the resource, so we check it, before trying to close it
// to avoid messages in the error log.
@@ -686,7 +686,7 @@ class View {
fclose($source);
}
unlink($tmpFile);
- return true;
+ return $result;
} else {
return false;
}
@@ -1111,7 +1111,7 @@ class View {
* @return FileInfo[]
*/
public function search($query) {
- return $this->searchCommon('%' . $query . '%', 'search');
+ return $this->searchCommon('search', array('%' . $query . '%'));
}
/**
@@ -1121,7 +1121,7 @@ class View {
* @return FileInfo[]
*/
public function searchRaw($query) {
- return $this->searchCommon($query, 'search');
+ return $this->searchCommon('search', array($query));
}
/**
@@ -1131,15 +1131,26 @@ class View {
* @return FileInfo[]
*/
public function searchByMime($mimetype) {
- return $this->searchCommon($mimetype, 'searchByMime');
+ return $this->searchCommon('searchByMime', array($mimetype));
}
/**
- * @param string $query
- * @param string $method
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return FileInfo[]
+ */
+ public function searchByTag($tag, $userId) {
+ return $this->searchCommon('searchByTag', array($tag, $userId));
+ }
+
+ /**
+ * @param string $method cache method
+ * @param array $args
* @return FileInfo[]
*/
- private function searchCommon($query, $method) {
+ private function searchCommon($method, $args) {
$files = array();
$rootLength = strlen($this->fakeRoot);
@@ -1148,7 +1159,7 @@ class View {
if ($storage) {
$cache = $storage->getCache('');
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
if (substr($mountPoint . $result['path'], 0, $rootLength + 1) === $this->fakeRoot . '/') {
$internalPath = $result['path'];
@@ -1165,7 +1176,7 @@ class View {
$cache = $storage->getCache('');
$relativeMountPoint = substr($mountPoint, $rootLength);
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
if ($results) {
foreach ($results as $result) {
$internalPath = $result['path'];
@@ -1227,7 +1238,7 @@ class View {
$mounts = array_reverse($mounts);
foreach ($mounts as $mount) {
/**
- * @var \OC\Files\Mount\Mount $mount
+ * @var \OC\Files\Mount\MountPoint $mount
*/
if ($mount->getStorage()) {
$cache = $mount->getStorage()->getCache();
diff --git a/lib/private/group.php b/lib/private/group.php
index 49f683c411a..d6e6e17f881 100644
--- a/lib/private/group.php
+++ b/lib/private/group.php
@@ -37,6 +37,7 @@ class OC_Group {
/**
* @return \OC\Group\Manager
+ * @deprecated Use \OC::$server->getGroupManager();
*/
public static function getManager() {
return \OC::$server->getGroupManager();
@@ -44,6 +45,7 @@ class OC_Group {
/**
* @return \OC\User\Manager
+ * @deprecated Use \OC::$server->getUserManager()
*/
private static function getUserManager() {
return \OC::$server->getUserManager();
@@ -73,12 +75,10 @@ class OC_Group {
*
* Tries to create a new group. If the group name already exists, false will
* be returned. Basic checking of Group name
+ * @deprecated Use \OC::$server->getGroupManager()->createGroup() instead
*/
public static function createGroup($gid) {
- OC_Hook::emit("OC_Group", "pre_createGroup", array("run" => true, "gid" => $gid));
-
if (self::getManager()->createGroup($gid)) {
- OC_Hook::emit("OC_User", "post_createGroup", array("gid" => $gid));
return true;
} else {
return false;
@@ -91,19 +91,12 @@ class OC_Group {
* @return bool
*
* Deletes a group and removes it from the group_user-table
+ * @deprecated Use \OC::$server->getGroupManager()->delete() instead
*/
public static function deleteGroup($gid) {
- // Prevent users from deleting group admin
- if ($gid == "admin") {
- return false;
- }
-
- OC_Hook::emit("OC_Group", "pre_deleteGroup", array("run" => true, "gid" => $gid));
-
$group = self::getManager()->get($gid);
if ($group) {
if ($group->delete()) {
- OC_Hook::emit("OC_User", "post_deleteGroup", array("gid" => $gid));
return true;
}
}
@@ -117,6 +110,7 @@ class OC_Group {
* @return bool
*
* Checks whether the user is member of a group or not.
+ * @deprecated Use \OC::$server->getGroupManager->inGroup($user);
*/
public static function inGroup($uid, $gid) {
$group = self::getManager()->get($gid);
@@ -134,14 +128,13 @@ class OC_Group {
* @return bool
*
* Adds a user to a group.
+ * @deprecated Use \OC::$server->getGroupManager->addUser();
*/
public static function addToGroup($uid, $gid) {
$group = self::getManager()->get($gid);
$user = self::getUserManager()->get($uid);
if ($group and $user) {
- OC_Hook::emit("OC_Group", "pre_addToGroup", array("run" => true, "uid" => $uid, "gid" => $gid));
$group->addUser($user);
- OC_Hook::emit("OC_User", "post_addToGroup", array("uid" => $uid, "gid" => $gid));
return true;
} else {
return false;
@@ -176,6 +169,7 @@ class OC_Group {
*
* This function fetches all groups a user belongs to. It does not check
* if the user exists at all.
+ * @deprecated Use \OC::$server->getGroupManager->getuserGroupIds($user)
*/
public static function getUserGroups($uid) {
$user = self::getUserManager()->get($uid);
@@ -209,6 +203,7 @@ class OC_Group {
*
* @param string $gid
* @return bool
+ * @deprecated Use \OC::$server->getGroupManager->groupExists($gid)
*/
public static function groupExists($gid) {
return self::getManager()->groupExists($gid);
@@ -260,6 +255,7 @@ class OC_Group {
* @param int $limit
* @param int $offset
* @return array an array of display names (value) and user ids(key)
+ * @deprecated Use \OC::$server->getGroupManager->displayNamesInGroup($gid, $search, $limit, $offset)
*/
public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) {
return self::getManager()->displayNamesInGroup($gid, $search, $limit, $offset);
diff --git a/lib/private/group/group.php b/lib/private/group/group.php
index 6111051ea09..5f439e91cde 100644
--- a/lib/private/group/group.php
+++ b/lib/private/group/group.php
@@ -229,6 +229,11 @@ class Group implements IGroup {
* @return bool
*/
public function delete() {
+ // Prevent users from deleting group admin
+ if ($this->getGID() === 'admin') {
+ return false;
+ }
+
$result = false;
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'preDelete', array($this));
diff --git a/lib/private/group/metadata.php b/lib/private/group/metadata.php
index 687a735347c..c702c924ff7 100644
--- a/lib/private/group/metadata.php
+++ b/lib/private/group/metadata.php
@@ -29,7 +29,7 @@ class MetaData {
protected $metaData = array();
/**
- * @var \OC\Group\Manager $groupManager
+ * @var \OCP\IGroupManager $groupManager
*/
protected $groupManager;
@@ -41,12 +41,12 @@ class MetaData {
/**
* @param string $user the uid of the current user
* @param bool $isAdmin whether the current users is an admin
- * @param \OC\Group\Manager $groupManager
+ * @param \OCP\IGroupManager $groupManager
*/
public function __construct(
$user,
$isAdmin,
- \OC\Group\Manager $groupManager
+ \OCP\IGroupManager $groupManager
) {
$this->user = $user;
$this->isAdmin = (bool)$isAdmin;
@@ -168,6 +168,7 @@ class MetaData {
if($this->isAdmin) {
return $this->groupManager->search($search);
} else {
+ // FIXME: Remove static method call
$groupIds = \OC_SubAdmin::getSubAdminsGroups($this->user);
/* \OC_SubAdmin::getSubAdminsGroups() returns an array of GIDs, but this
diff --git a/lib/private/httphelper.php b/lib/private/httphelper.php
index 8b7aebb3d4d..846825dee8d 100644
--- a/lib/private/httphelper.php
+++ b/lib/private/httphelper.php
@@ -8,16 +8,18 @@
namespace OC;
+use \OCP\IConfig;
+
class HTTPHelper {
const USER_AGENT = 'ownCloud Server Crawler';
- /** @var \OC\AllConfig */
+ /** @var \OCP\IConfig */
private $config;
/**
- * @param \OC\AllConfig $config
+ * @param \OCP\IConfig $config
*/
- public function __construct(AllConfig $config) {
+ public function __construct(IConfig $config) {
$this->config = $config;
}
@@ -72,7 +74,7 @@ class HTTPHelper {
curl_setopt($curl, CURLOPT_PROXYUSERPWD, $proxyUserPwd);
}
- if (ini_get('open_basedir') === '' && (ini_get('safe_mode') === false) || strtolower(ini_get('safe_mode')) === 'off') {
+ if (ini_get('open_basedir') === '') {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, $max_redirects);
$data = curl_exec($curl);
diff --git a/lib/private/l10n.php b/lib/private/l10n.php
index bc4e53e975c..6c66bee3e79 100644
--- a/lib/private/l10n.php
+++ b/lib/private/l10n.php
@@ -238,7 +238,7 @@ class OC_L10N implements \OCP\IL10N {
$this->init();
$identifier = "_${text_singular}_::_${text_plural}_";
if( array_key_exists($identifier, $this->translations)) {
- return new OC_L10N_String( $this, $identifier, $parameters, $count );
+ return new OC_L10N_String($this, $identifier, $parameters, $count, array($text_singular, $text_plural));
}else{
if($count === 1) {
return new OC_L10N_String($this, $text_singular, $parameters, $count);
@@ -311,7 +311,13 @@ class OC_L10N implements \OCP\IL10N {
} else {
$value->setTimestamp($data);
}
- $locale = self::findLanguage();
+
+ // Use the language of the instance, before falling back to the current user's language
+ $locale = $this->lang;
+ if ($locale === null) {
+ $locale = self::findLanguage();
+ }
+
$options = array_merge(array('width' => 'long'), $options);
$width = $options['width'];
switch($type) {
diff --git a/lib/private/l10n/string.php b/lib/private/l10n/string.php
index 04eaacab57b..5f5452ad16d 100644
--- a/lib/private/l10n/string.php
+++ b/lib/private/l10n/string.php
@@ -23,6 +23,11 @@ class OC_L10N_String{
protected $parameters;
/**
+ * @var array
+ */
+ protected $plurals;
+
+ /**
* @var integer
*/
protected $count;
@@ -30,11 +35,12 @@ class OC_L10N_String{
/**
* @param OC_L10N $l10n
*/
- public function __construct($l10n, $text, $parameters, $count = 1) {
+ public function __construct($l10n, $text, $parameters, $count = 1, $plurals = array()) {
$this->l10n = $l10n;
$this->text = $text;
$this->parameters = $parameters;
$this->count = $count;
+ $this->plurals = $plurals;
}
public function __toString() {
@@ -45,7 +51,19 @@ class OC_L10N_String{
if(is_array($translations[$this->text])) {
$fn = $this->l10n->getPluralFormFunction();
$id = $fn($this->count);
- $text = $translations[$this->text][$id];
+
+ if ($translations[$this->text][$id] !== '') {
+ // The translation of this plural case is not empty, so use it
+ $text = $translations[$this->text][$id];
+ } else {
+ // We didn't find the plural in the language,
+ // so we fall back to english.
+ $id = ($id != 0) ? 1 : 0;
+ if (isset($this->plurals[$id])) {
+ // Fallback to the english plural
+ $text = $this->plurals[$id];
+ }
+ }
}
else{
$text = $translations[$this->text];
diff --git a/lib/private/largefilehelper.php b/lib/private/largefilehelper.php
index 750ba1d23de..b6a8c536e9b 100644
--- a/lib/private/largefilehelper.php
+++ b/lib/private/largefilehelper.php
@@ -100,7 +100,7 @@ class LargeFileHelper {
* null on failure.
*/
public function getFileSizeViaCurl($filename) {
- if (function_exists('curl_init')) {
+ if (function_exists('curl_init') && \OC::$server->getIniWrapper()->getString('open_basedir') === '') {
$fencoded = rawurlencode($filename);
$ch = curl_init("file://$fencoded");
curl_setopt($ch, CURLOPT_NOBODY, true);
diff --git a/lib/private/legacy/preferences.php b/lib/private/legacy/preferences.php
index 4b68b0e69aa..907aafbc915 100644
--- a/lib/private/legacy/preferences.php
+++ b/lib/private/legacy/preferences.php
@@ -21,47 +21,23 @@
*
*/
-OC_Preferences::$object = new \OC\Preferences(OC_DB::getConnection());
/**
* This class provides an easy way for storing user preferences.
- * @deprecated use \OC\Preferences instead
+ * @deprecated use \OCP\IConfig methods instead
*/
class OC_Preferences{
- public static $object;
- /**
- * Get all users using the preferences
- * @return array an array of user ids
- *
- * This function returns a list of all users that have at least one entry
- * in the preferences table.
- */
- public static function getUsers() {
- return self::$object->getUsers();
- }
-
- /**
- * Get all apps of a user
- * @param string $user user
- * @return integer[] with app ids
- *
- * This function returns a list of all apps of the user that have at least
- * one entry in the preferences table.
- */
- public static function getApps( $user ) {
- return self::$object->getApps( $user );
- }
-
/**
* Get the available keys for an app
* @param string $user user
* @param string $app the app we are looking for
* @return array an array of key names
+ * @deprecated use getUserKeys of \OCP\IConfig instead
*
* This function gets all keys of an app of an user. Please note that the
* values are not returned.
*/
public static function getKeys( $user, $app ) {
- return self::$object->getKeys( $user, $app );
+ return \OC::$server->getConfig()->getUserKeys($user, $app);
}
/**
@@ -71,12 +47,13 @@ class OC_Preferences{
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated use getUserValue of \OCP\IConfig instead
*
* This function gets a value from the preferences table. If the key does
* not exist the default value will be returned
*/
public static function getValue( $user, $app, $key, $default = null ) {
- return self::$object->getValue( $user, $app, $key, $default );
+ return \OC::$server->getConfig()->getUserValue($user, $app, $key, $default);
}
/**
@@ -87,12 +64,18 @@ class OC_Preferences{
* @param string $value value
* @param string $preCondition only set value if the key had a specific value before
* @return bool true if value was set, otherwise false
+ * @deprecated use setUserValue of \OCP\IConfig instead
*
* Adds a value to the preferences. If the key did not exist before, it
* will be added automagically.
*/
public static function setValue( $user, $app, $key, $value, $preCondition = null ) {
- return self::$object->setValue( $user, $app, $key, $value, $preCondition );
+ try {
+ \OC::$server->getConfig()->setUserValue($user, $app, $key, $value, $preCondition);
+ return true;
+ } catch(\OCP\PreConditionNotMetException $e) {
+ return false;
+ }
}
/**
@@ -100,24 +83,13 @@ class OC_Preferences{
* @param string $user user
* @param string $app app
* @param string $key key
+ * @return bool true
+ * @deprecated use deleteUserValue of \OCP\IConfig instead
*
* Deletes a key.
*/
public static function deleteKey( $user, $app, $key ) {
- self::$object->deleteKey( $user, $app, $key );
- return true;
- }
-
- /**
- * Remove app of user from preferences
- * @param string $user user
- * @param string $app app
- * @return bool
- *
- * Removes all keys in preferences belonging to the app and the user.
- */
- public static function deleteApp( $user, $app ) {
- self::$object->deleteApp( $user, $app );
+ \OC::$server->getConfig()->deleteUserValue($user, $app, $key);
return true;
}
@@ -125,11 +97,12 @@ class OC_Preferences{
* Remove user from preferences
* @param string $user user
* @return bool
+ * @deprecated use deleteUser of \OCP\IConfig instead
*
* Removes all keys in preferences belonging to the user.
*/
public static function deleteUser( $user ) {
- self::$object->deleteUser( $user );
+ \OC::$server->getConfig()->deleteAllUserValues($user);
return true;
}
@@ -137,11 +110,12 @@ class OC_Preferences{
* Remove app from all users
* @param string $app app
* @return bool
+ * @deprecated use deleteAppFromAllUsers of \OCP\IConfig instead
*
* Removes all keys in preferences belonging to the app.
*/
public static function deleteAppFromAllUsers( $app ) {
- self::$object->deleteAppFromAllUsers( $app );
+ \OC::$server->getConfig()->deleteAppFromAllUsers($app);
return true;
}
}
diff --git a/lib/private/ocs/cloud.php b/lib/private/ocs/cloud.php
index 3ced0af8ee1..552aa96a26b 100644
--- a/lib/private/ocs/cloud.php
+++ b/lib/private/ocs/cloud.php
@@ -91,7 +91,7 @@ class OC_OCS_Cloud {
}
public static function getCurrentUser() {
- $email=OC_Preferences::getValue(OC_User::getUser(), 'settings', 'email', '');
+ $email=\OC::$server->getConfig()->getUserValue(OC_User::getUser(), 'settings', 'email', '');
$data = array(
'id' => OC_User::getUser(),
'display-name' => OC_User::getDisplayName(),
diff --git a/lib/private/preferences.php b/lib/private/preferences.php
index cdaa207449d..cd4a9fd1c19 100644
--- a/lib/private/preferences.php
+++ b/lib/private/preferences.php
@@ -37,16 +37,14 @@
namespace OC;
use OCP\IDBConnection;
+use OCP\PreConditionNotMetException;
/**
* This class provides an easy way for storing user preferences.
+ * @deprecated use \OCP\IConfig methods instead
*/
class Preferences {
- /**
- * @var \OC\DB\Connection
- */
- protected $conn;
/**
* 3 dimensional array with the following structure:
@@ -60,65 +58,14 @@ class Preferences {
*/
protected $cache = array();
+ /** @var \OCP\IConfig */
+ protected $config;
+
/**
* @param \OCP\IDBConnection $conn
*/
public function __construct(IDBConnection $conn) {
- $this->conn = $conn;
- }
-
- /**
- * Get all users using the preferences
- * @return array an array of user ids
- *
- * This function returns a list of all users that have at least one entry
- * in the preferences table.
- */
- public function getUsers() {
- $query = 'SELECT DISTINCT `userid` FROM `*PREFIX*preferences`';
- $result = $this->conn->executeQuery($query);
-
- $users = array();
- while ($userid = $result->fetchColumn()) {
- $users[] = $userid;
- }
-
- return $users;
- }
-
- /**
- * @param string $user
- * @return array[]
- */
- protected function getUserValues($user) {
- if (isset($this->cache[$user])) {
- return $this->cache[$user];
- }
- $data = array();
- $query = 'SELECT `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
- $result = $this->conn->executeQuery($query, array($user));
- while ($row = $result->fetch()) {
- $app = $row['appid'];
- if (!isset($data[$app])) {
- $data[$app] = array();
- }
- $data[$app][$row['configkey']] = $row['configvalue'];
- }
- $this->cache[$user] = $data;
- return $data;
- }
-
- /**
- * Get all apps of an user
- * @param string $user user
- * @return integer[] with app ids
- *
- * This function returns a list of all apps of the user that have at least
- * one entry in the preferences table.
- */
- public function getApps($user) {
- $data = $this->getUserValues($user);
- return array_keys($data);
+ $this->config = \OC::$server->getConfig();
}
/**
@@ -126,17 +73,13 @@ class Preferences {
* @param string $user user
* @param string $app the app we are looking for
* @return array an array of key names
+ * @deprecated use getUserKeys of \OCP\IConfig instead
*
* This function gets all keys of an app of an user. Please note that the
* values are not returned.
*/
public function getKeys($user, $app) {
- $data = $this->getUserValues($user);
- if (isset($data[$app])) {
- return array_keys($data[$app]);
- } else {
- return array();
- }
+ return $this->config->getUserKeys($user, $app);
}
/**
@@ -146,17 +89,13 @@ class Preferences {
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated use getUserValue of \OCP\IConfig instead
*
* This function gets a value from the preferences table. If the key does
* not exist the default value will be returned
*/
public function getValue($user, $app, $key, $default = null) {
- $data = $this->getUserValues($user);
- if (isset($data[$app]) and isset($data[$app][$key])) {
- return $data[$app][$key];
- } else {
- return $default;
- }
+ return $this->config->getUserValue($user, $app, $key, $default);
}
/**
@@ -167,59 +106,18 @@ class Preferences {
* @param string $value value
* @param string $preCondition only set value if the key had a specific value before
* @return bool true if value was set, otherwise false
+ * @deprecated use setUserValue of \OCP\IConfig instead
*
* Adds a value to the preferences. If the key did not exist before, it
* will be added automagically.
*/
public function setValue($user, $app, $key, $value, $preCondition = null) {
- // Check if the key does exist
- $query = 'SELECT `configvalue` FROM `*PREFIX*preferences`'
- . ' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?';
- $oldValue = $this->conn->fetchColumn($query, array($user, $app, $key));
- $exists = $oldValue !== false;
-
- if($oldValue === strval($value)) {
- // no changes
+ try {
+ $this->config->setUserValue($user, $app, $key, $value, $preCondition);
return true;
+ } catch(PreConditionNotMetException $e) {
+ return false;
}
-
- $affectedRows = 0;
-
- if (!$exists && $preCondition === null) {
- $data = array(
- 'userid' => $user,
- 'appid' => $app,
- 'configkey' => $key,
- 'configvalue' => $value,
- );
- $affectedRows = $this->conn->insert('*PREFIX*preferences', $data);
- } elseif ($exists) {
- $data = array($value, $user, $app, $key);
- $sql = "UPDATE `*PREFIX*preferences` SET `configvalue` = ?"
- . " WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?";
-
- if ($preCondition !== null) {
- if (\OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
- //oracle hack: need to explicitly cast CLOB to CHAR for comparison
- $sql .= " AND to_char(`configvalue`) = ?";
- } else {
- $sql .= " AND `configvalue` = ?";
- }
- $data[] = $preCondition;
- }
- $affectedRows = $this->conn->executeUpdate($sql, $data);
- }
-
- // only add to the cache if we already loaded data for the user
- if ($affectedRows > 0 && isset($this->cache[$user])) {
- if (!isset($this->cache[$user][$app])) {
- $this->cache[$user][$app] = array();
- }
- $this->cache[$user][$app][$key] = $value;
- }
-
- return ($affectedRows > 0) ? true : false;
-
}
/**
@@ -228,35 +126,10 @@ class Preferences {
* @param string $key
* @param array $users
* @return array Mapped values: userid => value
+ * @deprecated use getUserValueForUsers of \OCP\IConfig instead
*/
public function getValueForUsers($app, $key, $users) {
- if (empty($users) || !is_array($users)) {
- return array();
- }
-
- $chunked_users = array_chunk($users, 50, true);
- $placeholders_50 = implode(',', array_fill(0, 50, '?'));
-
- $userValues = array();
- foreach ($chunked_users as $chunk) {
- $queryParams = $chunk;
- array_unshift($queryParams, $key);
- array_unshift($queryParams, $app);
-
- $placeholders = (sizeof($chunk) == 50) ? $placeholders_50 : implode(',', array_fill(0, sizeof($chunk), '?'));
-
- $query = 'SELECT `userid`, `configvalue` '
- . ' FROM `*PREFIX*preferences` '
- . ' WHERE `appid` = ? AND `configkey` = ?'
- . ' AND `userid` IN (' . $placeholders . ')';
- $result = $this->conn->executeQuery($query, $queryParams);
-
- while ($row = $result->fetch()) {
- $userValues[$row['userid']] = $row['configvalue'];
- }
- }
-
- return $userValues;
+ return $this->config->getUserValueForUsers($app, $key, $users);
}
/**
@@ -265,28 +138,10 @@ class Preferences {
* @param string $key
* @param string $value
* @return array
+ * @deprecated use getUsersForUserValue of \OCP\IConfig instead
*/
public function getUsersForValue($app, $key, $value) {
- $users = array();
-
- $query = 'SELECT `userid` '
- . ' FROM `*PREFIX*preferences` '
- . ' WHERE `appid` = ? AND `configkey` = ? AND ';
-
- if (\OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
- //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
- $query .= ' to_char(`configvalue`)= ?';
- } else {
- $query .= ' `configvalue` = ?';
- }
-
- $result = $this->conn->executeQuery($query, array($app, $key, $value));
-
- while ($row = $result->fetch()) {
- $users[] = $row['userid'];
- }
-
- return $users;
+ return $this->config->getUsersForUserValue($app, $key, $value);
}
/**
@@ -294,72 +149,33 @@ class Preferences {
* @param string $user user
* @param string $app app
* @param string $key key
+ * @deprecated use deleteUserValue of \OCP\IConfig instead
*
* Deletes a key.
*/
public function deleteKey($user, $app, $key) {
- $where = array(
- 'userid' => $user,
- 'appid' => $app,
- 'configkey' => $key,
- );
- $this->conn->delete('*PREFIX*preferences', $where);
-
- if (isset($this->cache[$user]) and isset($this->cache[$user][$app])) {
- unset($this->cache[$user][$app][$key]);
- }
- }
-
- /**
- * Remove app of user from preferences
- * @param string $user user
- * @param string $app app
- *
- * Removes all keys in preferences belonging to the app and the user.
- */
- public function deleteApp($user, $app) {
- $where = array(
- 'userid' => $user,
- 'appid' => $app,
- );
- $this->conn->delete('*PREFIX*preferences', $where);
-
- if (isset($this->cache[$user])) {
- unset($this->cache[$user][$app]);
- }
+ $this->config->deleteUserValue($user, $app, $key);
}
/**
* Remove user from preferences
* @param string $user user
+ * @deprecated use deleteAllUserValues of \OCP\IConfig instead
*
* Removes all keys in preferences belonging to the user.
*/
public function deleteUser($user) {
- $where = array(
- 'userid' => $user,
- );
- $this->conn->delete('*PREFIX*preferences', $where);
-
- unset($this->cache[$user]);
+ $this->config->deleteAllUserValues($user);
}
/**
* Remove app from all users
* @param string $app app
+ * @deprecated use deleteAppFromAllUsers of \OCP\IConfig instead
*
* Removes all keys in preferences belonging to the app.
*/
public function deleteAppFromAllUsers($app) {
- $where = array(
- 'appid' => $app,
- );
- $this->conn->delete('*PREFIX*preferences', $where);
-
- foreach ($this->cache as &$userCache) {
- unset($userCache[$app]);
- }
+ $this->config->deleteAppFromAllUsers($app);
}
}
-
-require_once __DIR__ . '/legacy/' . basename(__FILE__);
diff --git a/lib/private/server.php b/lib/private/server.php
index 7bd7f8ca45d..6066e2fa35e 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -2,6 +2,7 @@
namespace OC;
+use bantu\IniGetWrapper\IniGetWrapper;
use OC\AppFramework\Http\Request;
use OC\AppFramework\Db\Db;
use OC\AppFramework\Utility\SimpleContainer;
@@ -9,8 +10,8 @@ use OC\Cache\UserCache;
use OC\Diagnostics\NullQueryLogger;
use OC\Diagnostics\EventLogger;
use OC\Diagnostics\QueryLogger;
+use OC\Files\Config\StorageManager;
use OC\Security\CertificateManager;
-use OC\DB\ConnectionWrapper;
use OC\Files\Node\Root;
use OC\Files\View;
use OC\Security\Crypto;
@@ -86,8 +87,7 @@ class Server extends SimpleContainer implements IServerContainer {
});
$this->registerService('TagManager', function (Server $c) {
$tagMapper = $c->query('TagMapper');
- $user = \OC_User::getUser();
- return new TagManager($tagMapper, $user);
+ return new TagManager($tagMapper, $c->getUserSession());
});
$this->registerService('RootFolder', function (Server $c) {
// TODO: get user and user manager from container as well
@@ -104,8 +104,26 @@ class Server extends SimpleContainer implements IServerContainer {
return new \OC\User\Manager($config);
});
$this->registerService('GroupManager', function (Server $c) {
- $userManager = $c->getUserManager();
- return new \OC\Group\Manager($userManager);
+ $groupManager = new \OC\Group\Manager($this->getUserManager());
+ $groupManager->listen('\OC\Group', 'preCreate', function ($gid) {
+ \OC_Hook::emit('OC_Group', 'pre_createGroup', array('run' => true, 'gid' => $gid));
+ });
+ $groupManager->listen('\OC\Group', 'postCreate', function (\OC\Group\Group $gid) {
+ \OC_Hook::emit('OC_User', 'post_createGroup', array('gid' => $gid->getGID()));
+ });
+ $groupManager->listen('\OC\Group', 'preDelete', function (\OC\Group\Group $group) {
+ \OC_Hook::emit('OC_Group', 'pre_deleteGroup', array('run' => true, 'gid' => $group->getGID()));
+ });
+ $groupManager->listen('\OC\Group', 'postDelete', function (\OC\Group\Group $group) {
+ \OC_Hook::emit('OC_User', 'post_deleteGroup', array('gid' => $group->getGID()));
+ });
+ $groupManager->listen('\OC\Group', 'preAddUser', function (\OC\Group\Group $group, \OC\User\User $user) {
+ \OC_Hook::emit('OC_Group', 'pre_addToGroup', array('run' => true, 'uid' => $user->getUID(), 'gid' => $group->getGID()));
+ });
+ $groupManager->listen('\OC\Group', 'postAddUser', function (\OC\Group\Group $group, \OC\User\User $user) {
+ \OC_Hook::emit('OC_Group', 'post_addToGroup', array('uid' => $user->getUID(), 'gid' => $group->getGID()));
+ });
+ return $groupManager;
});
$this->registerService('UserSession', function (Server $c) {
$manager = $c->getUserManager();
@@ -148,8 +166,13 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('NavigationManager', function ($c) {
return new \OC\NavigationManager();
});
- $this->registerService('AllConfig', function ($c) {
- return new \OC\AllConfig();
+ $this->registerService('AllConfig', function (Server $c) {
+ return new \OC\AllConfig(
+ $c->getSystemConfig()
+ );
+ });
+ $this->registerService('SystemConfig', function ($c) {
+ return new \OC\SystemConfig();
});
$this->registerService('AppConfig', function ($c) {
return new \OC\AppConfig(\OC_DB::getConnection());
@@ -211,11 +234,12 @@ class Server extends SimpleContainer implements IServerContainer {
});
$this->registerService('DatabaseConnection', function (Server $c) {
$factory = new \OC\DB\ConnectionFactory();
- $type = $c->getConfig()->getSystemValue('dbtype', 'sqlite');
+ $systemConfig = $c->getSystemConfig();
+ $type = $systemConfig->getValue('dbtype', 'sqlite');
if (!$factory->isValidType($type)) {
throw new \OC\DatabaseException('Invalid database type');
}
- $connectionParams = $factory->createConnectionParams($c->getConfig());
+ $connectionParams = $factory->createConnectionParams($systemConfig);
$connection = $factory->getConnection($type, $connectionParams);
$connection->getConfiguration()->setSQLLogger($c->getQueryLogger());
return $connection;
@@ -250,6 +274,19 @@ class Server extends SimpleContainer implements IServerContainer {
$groupManager = $c->getGroupManager();
return new \OC\App\AppManager($userSession, $appConfig, $groupManager);
});
+ $this->registerService('DateTimeFormatter', function(Server $c) {
+ $timeZone = $c->getTimeZone();
+ $language = $c->getConfig()->getUserValue($c->getSession()->get('user_id'), 'core', 'lang', null);
+
+ return new \OC\DateTimeFormatter($timeZone, $c->getL10N('lib', $language));
+ });
+ $this->registerService('MountConfigManager', function () {
+ $loader = \OC\Files\Filesystem::getLoader();
+ return new \OC\Files\Config\MountProviderCollection($loader);
+ });
+ $this->registerService('IniWrapper', function ($c) {
+ return new IniGetWrapper();
+ });
}
/**
@@ -323,6 +360,7 @@ class Server extends SimpleContainer implements IServerContainer {
} else {
$user = $this->getUserManager()->get($userId);
}
+ \OC\Files\Filesystem::initMountPoints($userId);
$dir = '/' . $userId;
$root = $this->getRootFolder();
$folder = null;
@@ -423,6 +461,15 @@ class Server extends SimpleContainer implements IServerContainer {
}
/**
+ * For internal use only
+ *
+ * @return \OC\SystemConfig
+ */
+ function getSystemConfig() {
+ return $this->query('SystemConfig');
+ }
+
+ /**
* Returns the app config manager
*
* @return \OCP\IAppConfig
@@ -647,4 +694,45 @@ class Server extends SimpleContainer implements IServerContainer {
function getWebRoot() {
return $this->webRoot;
}
+
+ /**
+ * Get the timezone of the current user, based on his session information and config data
+ *
+ * @return \DateTimeZone
+ */
+ public function getTimeZone() {
+ $timeZone = $this->getConfig()->getUserValue($this->getSession()->get('user_id'), 'core', 'timezone', null);
+ if ($timeZone === null) {
+ if ($this->getSession()->exists('timezone')) {
+ $offsetHours = $this->getSession()->get('timezone');
+ // Note: the timeZone name is the inverse to the offset,
+ // so a positive offset means negative timeZone
+ // and the other way around.
+ if ($offsetHours > 0) {
+ return new \DateTimeZone('Etc/GMT-' . $offsetHours);
+ } else {
+ return new \DateTimeZone('Etc/GMT+' . abs($offsetHours));
+ }
+ } else {
+ return new \DateTimeZone('UTC');
+ }
+ }
+ return new \DateTimeZone($timeZone);
+ }
+
+ /**
+ * @return \OCP\Files\Config\IMountProviderCollection
+ */
+ function getMountProviderCollection(){
+ return $this->query('MountConfigManager');
+ }
+
+ /**
+ * Get the IniWrapper
+ *
+ * @return IniGetWrapper
+ */
+ public function getIniWrapper() {
+ return $this->query('IniWrapper');
+ }
}
diff --git a/lib/private/share/mailnotifications.php b/lib/private/share/mailnotifications.php
index 2f704fb2b3c..342d3d5057a 100644
--- a/lib/private/share/mailnotifications.php
+++ b/lib/private/share/mailnotifications.php
@@ -79,7 +79,7 @@ class MailNotifications {
foreach ($recipientList as $recipient) {
$recipientDisplayName = \OCP\User::getDisplayName($recipient);
- $to = \OC_Preferences::getValue($recipient, 'settings', 'email', '');
+ $to = \OC::$server->getConfig()->getUserValue($recipient, 'settings', 'email', '');
if ($to === '') {
$noMail[] = $recipientDisplayName;
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index c6fd1604ac7..abcd14f6ec2 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -699,18 +699,19 @@ class Share extends \OC\Share\Constants {
* @param string $itemSource
* @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
* @param string $shareWith User or group the item is being shared with
+ * @param string $owner owner of the share, if null the current user is used
* @return boolean true on success or false on failure
*/
- public static function unshare($itemType, $itemSource, $shareType, $shareWith) {
+ public static function unshare($itemType, $itemSource, $shareType, $shareWith, $owner = null) {
// check if it is a valid itemType
self::getBackend($itemType);
- $items = self::getItemSharedWithUser($itemType, $itemSource, $shareWith, null, $shareType);
+ $items = self::getItemSharedWithUser($itemType, $itemSource, $shareWith, $owner, $shareType);
$toDelete = array();
$newParent = null;
- $currentUser = \OC_User::getUser();
+ $currentUser = $owner ? $owner : \OC_User::getUser();
foreach ($items as $item) {
// delete the item with the expected share_type and owner
if ((int)$item['share_type'] === (int)$shareType && $item['uid_owner'] === $currentUser) {
diff --git a/lib/private/systemconfig.php b/lib/private/systemconfig.php
new file mode 100644
index 00000000000..ce6883e5ab3
--- /dev/null
+++ b/lib/private/systemconfig.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright (c) 2014 Morris Jobke <hey@morrisjobke.de>
+ * 2013 Bart Visscher <bartv@thisnet.nl>
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+
+namespace OC;
+
+/**
+ * Class which provides access to the system config values stored in config.php
+ * Internal class for bootstrap only.
+ * fixes cyclic DI: AllConfig needs AppConfig needs Database needs AllConfig
+ */
+class SystemConfig {
+ /**
+ * Sets a new system wide value
+ *
+ * @param string $key the key of the value, under which will be saved
+ * @param mixed $value the value that should be stored
+ */
+ public function setValue($key, $value) {
+ \OC_Config::setValue($key, $value);
+ }
+
+ /**
+ * Looks up a system wide defined value
+ *
+ * @param string $key the key of the value, under which it was saved
+ * @param mixed $default the default value to be returned if the value isn't set
+ * @return mixed the value or $default
+ */
+ public function getValue($key, $default = '') {
+ return \OC_Config::getValue($key, $default);
+ }
+
+ /**
+ * Delete a system wide defined value
+ *
+ * @param string $key the key of the value, under which it was saved
+ */
+ public function deleteValue($key) {
+ \OC_Config::deleteKey($key);
+ }
+}
diff --git a/lib/private/tagmanager.php b/lib/private/tagmanager.php
index d5bff04acff..6c7eeab87eb 100644
--- a/lib/private/tagmanager.php
+++ b/lib/private/tagmanager.php
@@ -38,11 +38,11 @@ use OC\Tagging\TagMapper;
class TagManager implements \OCP\ITagManager {
/**
- * User
+ * User session
*
- * @var string
+ * @var \OCP\IUserSession
*/
- private $user;
+ private $userSession;
/**
* TagMapper
@@ -55,12 +55,11 @@ class TagManager implements \OCP\ITagManager {
* Constructor.
*
* @param TagMapper $mapper Instance of the TagMapper abstraction layer.
- * @param string $user The user whose data the object will operate on.
+ * @param \OCP\IUserSession $userSession the user session
*/
- public function __construct(TagMapper $mapper, $user) {
-
+ public function __construct(TagMapper $mapper, \OCP\IUserSession $userSession) {
$this->mapper = $mapper;
- $this->user = $user;
+ $this->userSession = $userSession;
}
@@ -71,10 +70,15 @@ class TagManager implements \OCP\ITagManager {
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
* @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ * @param string $userId user for which to retrieve the tags, defaults to the currently
+ * logged in user
* @return \OCP\ITags
*/
- public function load($type, $defaultTags=array(), $includeShared=false) {
- return new Tags($this->mapper, $this->user, $type, $defaultTags, $includeShared);
+ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null) {
+ if (is_null($userId)) {
+ $userId = $this->userSession->getUser()->getUId();
+ }
+ return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared);
}
}
diff --git a/lib/private/tags.php b/lib/private/tags.php
index bab3d495282..e00c1b90ca9 100644
--- a/lib/private/tags.php
+++ b/lib/private/tags.php
@@ -200,6 +200,48 @@ class Tags implements \OCP\ITags {
}
/**
+ * Get the list of tags for the given ids.
+ *
+ * @param array $objIds array of object ids
+ * @return array|boolean of tags id as key to array of tag names
+ * or false if an error occurred
+ */
+ public function getTagsForObjects(array $objIds) {
+ $entries = array();
+
+ try {
+ $conn = \OC_DB::getConnection();
+ $chunks = array_chunk($objIds, 1000, false);
+ foreach ($chunks as $chunk) {
+ $result = $conn->executeQuery(
+ 'SELECT `category`, `categoryid`, `objid` ' .
+ 'FROM `' . self::RELATION_TABLE . '` r, `' . self::TAG_TABLE . '` ' .
+ 'WHERE `categoryid` = `id` AND `uid` = ? AND r.`type` = ? AND `objid` IN (?)',
+ array($this->user, $this->type, $chunk),
+ array(null, null, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
+ );
+ while ($row = $result->fetch()) {
+ $objId = (int)$row['objid'];
+ if (!isset($entries[$objId])) {
+ $entry = $entries[$objId] = array();
+ }
+ $entry = $entries[$objId][] = $row['category'];
+ }
+ }
+ if (\OCP\DB::isError($result)) {
+ \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
+ return false;
+ }
+ } catch(\Exception $e) {
+ \OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(),
+ \OCP\Util::ERROR);
+ return false;
+ }
+
+ return $entries;
+ }
+
+ /**
* Get the a list if items tagged with $tag.
*
* Throws an exception if the tag could not be found.
diff --git a/lib/private/template/functions.php b/lib/private/template/functions.php
index 4172d47ba61..288b7838ca2 100644
--- a/lib/private/template/functions.php
+++ b/lib/private/template/functions.php
@@ -205,36 +205,16 @@ function strip_time($timestamp){
* @param int $timestamp timestamp to format
* @param int $fromTime timestamp to compare from, defaults to current time
* @param bool $dateOnly whether to strip time information
- * @return OC_L10N_String timestamp
+ * @return string timestamp
*/
function relative_modified_date($timestamp, $fromTime = null, $dateOnly = false) {
- $l = \OC::$server->getL10N('lib');
- if (!isset($fromTime) || $fromTime === null){
- $fromTime = time();
- }
+ /** @var \OC\DateTimeFormatter $formatter */
+ $formatter = \OC::$server->query('DateTimeFormatter');
+
if ($dateOnly){
- $fromTime = strip_time($fromTime);
- $timestamp = strip_time($timestamp);
+ return $formatter->formatDateSpan($timestamp, $fromTime);
}
- $timediff = $fromTime - $timestamp;
- $diffminutes = round($timediff/60);
- $diffhours = round($diffminutes/60);
- $diffdays = round($diffhours/24);
- $diffmonths = round($diffdays/31);
-
- if(!$dateOnly && $timediff < 60) { return $l->t('seconds ago'); }
- else if(!$dateOnly && $timediff < 3600) { return $l->n('%n minute ago', '%n minutes ago', $diffminutes); }
- else if(!$dateOnly && $timediff < 86400) { return $l->n('%n hour ago', '%n hours ago', $diffhours); }
- else if((date('G', $fromTime)-$diffhours) >= 0) { return $l->t('today'); }
- else if((date('G', $fromTime)-$diffhours) >= -24) { return $l->t('yesterday'); }
- // 86400 * 31 days = 2678400
- else if($timediff < 2678400) { return $l->n('%n day go', '%n days ago', $diffdays); }
- // 86400 * 60 days = 518400
- else if($timediff < 5184000) { return $l->t('last month'); }
- else if((date('n', $fromTime)-$diffmonths) > 0) { return $l->n('%n month ago', '%n months ago', $diffmonths); }
- // 86400 * 365.25 days * 2 = 63113852
- else if($timediff < 63113852) { return $l->t('last year'); }
- else { return $l->t('years ago'); }
+ return $formatter->formatTimeSpan($timestamp, $fromTime);
}
function html_select_options($options, $selected, $params=array()) {
diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php
index a066f90bb23..fa025721e53 100644
--- a/lib/private/templatelayout.php
+++ b/lib/private/templatelayout.php
@@ -44,7 +44,7 @@ class OC_TemplateLayout extends OC_Template {
// Update notification
if($this->config->getSystemValue('updatechecker', true) === true &&
OC_User::isAdminUser(OC_User::getUser())) {
- $updater = new \OC\Updater();
+ $updater = new \OC\Updater(\OC::$server->getHTTPHelper(), \OC::$server->getAppConfig());
$data = $updater->check();
if(isset($data['version']) && $data['version'] != '' and $data['version'] !== Array()) {
diff --git a/lib/private/updater.php b/lib/private/updater.php
index e07ff03ffc4..6272f77cfc2 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -25,6 +25,16 @@ class Updater extends BasicEmitter {
* @var \OC\Log $log
*/
private $log;
+
+ /**
+ * @var \OC\HTTPHelper $helper;
+ */
+ private $httpHelper;
+
+ /**
+ * @var \OCP\IAppConfig;
+ */
+ private $config;
private $simulateStepEnabled;
@@ -33,8 +43,10 @@ class Updater extends BasicEmitter {
/**
* @param \OC\Log $log
*/
- public function __construct($log = null) {
+ public function __construct($httpHelper, $config, $log = null) {
+ $this->httpHelper = $httpHelper;
$this->log = $log;
+ $this->config = $config;
$this->simulateStepEnabled = true;
$this->updateStepEnabled = true;
}
@@ -69,23 +81,23 @@ class Updater extends BasicEmitter {
public function check($updaterUrl = null) {
// Look up the cache - it is invalidated all 30 minutes
- if ((\OC_Appconfig::getValue('core', 'lastupdatedat') + 1800) > time()) {
- return json_decode(\OC_Appconfig::getValue('core', 'lastupdateResult'), true);
+ if (($this->config->getValue('core', 'lastupdatedat') + 1800) > time()) {
+ return json_decode($this->config->getValue('core', 'lastupdateResult'), true);
}
if (is_null($updaterUrl)) {
$updaterUrl = 'https://apps.owncloud.com/updater.php';
}
- \OC_Appconfig::setValue('core', 'lastupdatedat', time());
+ $this->config->setValue('core', 'lastupdatedat', time());
- if (\OC_Appconfig::getValue('core', 'installedat', '') == '') {
- \OC_Appconfig::setValue('core', 'installedat', microtime(true));
+ if ($this->config->getValue('core', 'installedat', '') == '') {
+ $this->config->setValue('core', 'installedat', microtime(true));
}
$version = \OC_Util::getVersion();
- $version['installed'] = \OC_Appconfig::getValue('core', 'installedat');
- $version['updated'] = \OC_Appconfig::getValue('core', 'lastupdatedat');
+ $version['installed'] = $this->config->getValue('core', 'installedat');
+ $version['updated'] = $this->config->getValue('core', 'lastupdatedat');
$version['updatechannel'] = \OC_Util::getChannel();
$version['edition'] = \OC_Util::getEditionString();
$version['build'] = \OC_Util::getBuild();
@@ -95,30 +107,25 @@ class Updater extends BasicEmitter {
$url = $updaterUrl . '?version=' . $versionString;
// set a sensible timeout of 10 sec to stay responsive even if the update server is down.
- $ctx = stream_context_create(
- array(
- 'http' => array(
- 'timeout' => 10
- )
- )
- );
- $xml = @file_get_contents($url, 0, $ctx);
- if ($xml == false) {
- return array();
- }
- $loadEntities = libxml_disable_entity_loader(true);
- $data = @simplexml_load_string($xml);
- libxml_disable_entity_loader($loadEntities);
$tmp = array();
- $tmp['version'] = $data->version;
- $tmp['versionstring'] = $data->versionstring;
- $tmp['url'] = $data->url;
- $tmp['web'] = $data->web;
+ $xml = $this->httpHelper->getUrlContent($url);
+ if ($xml) {
+ $loadEntities = libxml_disable_entity_loader(true);
+ $data = @simplexml_load_string($xml);
+ libxml_disable_entity_loader($loadEntities);
+ if ($data !== false) {
+ $tmp['version'] = $data->version;
+ $tmp['versionstring'] = $data->versionstring;
+ $tmp['url'] = $data->url;
+ $tmp['web'] = $data->web;
+ }
+ } else {
+ $data = array();
+ }
// Cache the result
- \OC_Appconfig::setValue('core', 'lastupdateResult', json_encode($data));
-
+ $this->config->setValue('core', 'lastupdateResult', json_encode($data));
return $tmp;
}
@@ -218,7 +225,7 @@ class Updater extends BasicEmitter {
$repair->run();
//Invalidate update feed
- \OC_Appconfig::setValue('core', 'lastupdatedat', 0);
+ $this->config->setValue('core', 'lastupdatedat', 0);
// only set the final version if everything went well
\OC_Config::setValue('version', implode('.', \OC_Util::getVersion()));
diff --git a/lib/private/user.php b/lib/private/user.php
index b2a235425c4..ff45e9e26a6 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -47,6 +47,7 @@ class OC_User {
/**
* @return \OC\User\Manager
+ * @deprecated Use \OC::$server->getUserManager()
*/
public static function getManager() {
return OC::$server->getUserManager();
@@ -179,6 +180,7 @@ class OC_User {
* itself, not in its subclasses.
*
* Allowed characters in the username are: "a-z", "A-Z", "0-9" and "_.@-"
+ * @deprecated Use \OC::$server->getUserManager->createUser($uid, $password)
*/
public static function createUser($uid, $password) {
return self::getManager()->createUser($uid, $password);
@@ -190,30 +192,12 @@ class OC_User {
* @return bool
*
* Deletes a user
+ * @deprecated Use \OC::$server->getUserManager->delete()
*/
public static function deleteUser($uid) {
$user = self::getManager()->get($uid);
if ($user) {
- $result = $user->delete();
-
- // if delete was successful we clean-up the rest
- if ($result) {
-
- // We have to delete the user from all groups
- foreach (OC_Group::getUserGroups($uid) as $i) {
- OC_Group::removeFromGroup($uid, $i);
- }
- // Delete the user's keys in preferences
- OC_Preferences::deleteUser($uid);
-
- // Delete user files in /data/
- OC_Helper::rmdirr(\OC_User::getHome($uid));
-
- // Delete the users entry in the storage table
- \OC\Files\Cache\Storage::remove('home::' . $uid);
- }
-
- return true;
+ return $user->delete();
} else {
return false;
}
@@ -525,6 +509,7 @@ class OC_User {
* @return string
*
* returns the path to the users home directory
+ * @deprecated Use \OC::$server->getUserManager->getHome()
*/
public static function getHome($uid) {
$user = self::getManager()->get($uid);
@@ -561,6 +546,7 @@ class OC_User {
* @return array associative array with all display names (value) and corresponding uids (key)
*
* Get a list of all display names and user ids.
+ * @deprecated Use \OC::$server->getUserManager->searchDisplayName($search, $limit, $offset) instead.
*/
public static function getDisplayNames($search = '', $limit = null, $offset = null) {
$displayNames = array();
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index 0c01f957bd3..1bc3b51c2ef 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -11,6 +11,7 @@ namespace OC\User;
use OC\Hooks\PublicEmitter;
use OCP\IUserManager;
+use OCP\IConfig;
/**
* Class Manager
@@ -27,7 +28,7 @@ use OCP\IUserManager;
*/
class Manager extends PublicEmitter implements IUserManager {
/**
- * @var \OC_User_Interface[] $backends
+ * @var \OCP\UserInterface [] $backends
*/
private $backends = array();
@@ -37,14 +38,14 @@ class Manager extends PublicEmitter implements IUserManager {
private $cachedUsers = array();
/**
- * @var \OC\AllConfig $config
+ * @var \OCP\IConfig $config
*/
private $config;
/**
- * @param \OC\AllConfig $config
+ * @param \OCP\IConfig $config
*/
- public function __construct($config = null) {
+ public function __construct(IConfig $config = null) {
$this->config = $config;
$cachedUsers = &$this->cachedUsers;
$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
@@ -62,9 +63,17 @@ class Manager extends PublicEmitter implements IUserManager {
}
/**
+ * Get the active backends
+ * @return \OCP\UserInterface[]
+ */
+ public function getBackends() {
+ return $this->backends;
+ }
+
+ /**
* register a user backend
*
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
*/
public function registerBackend($backend) {
$this->backends[] = $backend;
@@ -73,7 +82,7 @@ class Manager extends PublicEmitter implements IUserManager {
/**
* remove a user backend
*
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
*/
public function removeBackend($backend) {
$this->cachedUsers = array();
@@ -112,7 +121,7 @@ class Manager extends PublicEmitter implements IUserManager {
* get or construct the user object
*
* @param string $uid
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
* @return \OC\User\User
*/
protected function getUserObject($uid, $backend) {
@@ -220,7 +229,7 @@ class Manager extends PublicEmitter implements IUserManager {
* @param string $uid
* @param string $password
* @throws \Exception
- * @return bool|\OC\User\User the created user of false
+ * @return bool|\OC\User\User the created user or false
*/
public function createUser($uid, $password) {
$l = \OC::$server->getL10N('lib');
diff --git a/lib/private/user/session.php b/lib/private/user/session.php
index 94abaca3e76..277aa1a047e 100644
--- a/lib/private/user/session.php
+++ b/lib/private/user/session.php
@@ -211,15 +211,15 @@ class Session implements IUserSession, Emitter {
}
// get stored tokens
- $tokens = \OC_Preferences::getKeys($uid, 'login_token');
+ $tokens = \OC::$server->getConfig()->getUserKeys($uid, 'login_token');
// test cookies token against stored tokens
if (!in_array($currentToken, $tokens, true)) {
return false;
}
// replace successfully used token with a new one
- \OC_Preferences::deleteKey($uid, 'login_token', $currentToken);
+ \OC::$server->getConfig()->deleteUserValue($uid, 'login_token', $currentToken);
$newToken = \OC::$server->getSecureRandom()->getMediumStrengthGenerator()->generate(32);
- \OC_Preferences::setValue($uid, 'login_token', $newToken, time());
+ \OC::$server->getConfig()->setUserValue($uid, 'login_token', $newToken, time());
$this->setMagicInCookie($user->getUID(), $newToken);
//login
diff --git a/lib/private/user/user.php b/lib/private/user/user.php
index 9ad2f5f0d3a..062081d51d4 100644
--- a/lib/private/user/user.php
+++ b/lib/private/user/user.php
@@ -11,6 +11,7 @@ namespace OC\User;
use OC\Hooks\Emitter;
use OCP\IUser;
+use OCP\IConfig;
class User implements IUser {
/**
@@ -49,7 +50,7 @@ class User implements IUser {
private $lastLogin;
/**
- * @var \OC\AllConfig $config
+ * @var \OCP\IConfig $config
*/
private $config;
@@ -57,9 +58,9 @@ class User implements IUser {
* @param string $uid
* @param \OC_User_Interface $backend
* @param \OC\Hooks\Emitter $emitter
- * @param \OC\AllConfig $config
+ * @param \OCP\IConfig $config
*/
- public function __construct($uid, $backend, $emitter = null, $config = null) {
+ public function __construct($uid, $backend, $emitter = null, IConfig $config = null) {
$this->uid = $uid;
$this->backend = $backend;
$this->emitter = $emitter;
@@ -67,10 +68,11 @@ class User implements IUser {
if ($this->config) {
$enabled = $this->config->getUserValue($uid, 'core', 'enabled', 'true');
$this->enabled = ($enabled === 'true');
+ $this->lastLogin = $this->config->getUserValue($uid, 'login', 'lastLogin', 0);
} else {
$this->enabled = true;
+ $this->lastLogin = \OC::$server->getConfig()->getUserValue($uid, 'login', 'lastLogin', 0);
}
- $this->lastLogin = \OC_Preferences::getValue($uid, 'login', 'lastLogin', 0);
}
/**
@@ -139,7 +141,7 @@ class User implements IUser {
*/
public function updateLastLoginTimestamp() {
$this->lastLogin = time();
- \OC_Preferences::setValue(
+ \OC::$server->getConfig()->setUserValue(
$this->uid, 'login', 'lastLogin', $this->lastLogin);
}
@@ -153,6 +155,24 @@ class User implements IUser {
$this->emitter->emit('\OC\User', 'preDelete', array($this));
}
$result = $this->backend->deleteUser($this->uid);
+ if ($result) {
+
+ // FIXME: Feels like an hack - suggestions?
+
+ // We have to delete the user from all groups
+ foreach (\OC_Group::getUserGroups($this->uid) as $i) {
+ \OC_Group::removeFromGroup($this->uid, $i);
+ }
+ // Delete the user's keys in preferences
+ \OC::$server->getConfig()->deleteAllUserValues($this->uid);
+
+ // Delete user files in /data/
+ \OC_Helper::rmdirr(\OC_User::getHome($this->uid));
+
+ // Delete the users entry in the storage table
+ \OC\Files\Cache\Storage::remove('home::' . $this->uid);
+ }
+
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'postDelete', array($this));
}
@@ -200,6 +220,15 @@ class User implements IUser {
}
/**
+ * Get the name of the backend class the user is connected with
+ *
+ * @return string
+ */
+ public function getBackendClassName() {
+ return get_class($this->backend);
+ }
+
+ /**
* check if the backend allows the user to change his avatar on Personal page
*
* @return bool
diff --git a/lib/private/util.php b/lib/private/util.php
index 38db431e895..6ccb9dba087 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -435,27 +435,20 @@ class OC_Util {
* @param bool $dateOnly option to omit time from the result
* @param DateTimeZone|string $timeZone where the given timestamp shall be converted to
* @return string timestamp
- * @description adjust to clients timezone if we know it
+ *
+ * @deprecated Use \OC::$server->query('DateTimeFormatter') instead
*/
public static function formatDate($timestamp, $dateOnly = false, $timeZone = null) {
- if (is_null($timeZone)) {
- if (\OC::$server->getSession()->exists('timezone')) {
- $systemTimeZone = intval(date('O'));
- $systemTimeZone = (round($systemTimeZone / 100, 0) * 60) + ($systemTimeZone % 100);
- $clientTimeZone = \OC::$server->getSession()->get('timezone') * 60;
- $offset = $clientTimeZone - $systemTimeZone;
- $timestamp = $timestamp + $offset * 60;
- }
- } else {
- if (!$timeZone instanceof DateTimeZone) {
- $timeZone = new DateTimeZone($timeZone);
- }
- $dt = new DateTime("@$timestamp");
- $offset = $timeZone->getOffset($dt);
- $timestamp += $offset;
+ if ($timeZone !== null && !$timeZone instanceof \DateTimeZone) {
+ $timeZone = new \DateTimeZone($timeZone);
}
- $l = \OC::$server->getL10N('lib');
- return $l->l($dateOnly ? 'date' : 'datetime', $timestamp);
+
+ /** @var \OC\DateTimeFormatter $formatter */
+ $formatter = \OC::$server->query('DateTimeFormatter');
+ if ($dateOnly) {
+ return $formatter->formatDate($timestamp, 'long', $timeZone);
+ }
+ return $formatter->formatDateTime($timestamp, 'long', 'long', $timeZone);
}
/**
@@ -613,26 +606,6 @@ class OC_Util {
);
$webServerRestart = true;
}
- if (((strtolower(@ini_get('safe_mode')) == 'on')
- || (strtolower(@ini_get('safe_mode')) == 'yes')
- || (strtolower(@ini_get('safe_mode')) == 'true')
- || (ini_get("safe_mode") == 1))
- ) {
- $errors[] = array(
- 'error' => $l->t('PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.'),
- 'hint' => $l->t('PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. '
- . 'Please ask your server administrator to disable it in php.ini or in your webserver config.')
- );
- $webServerRestart = true;
- }
- if (get_magic_quotes_gpc() == 1) {
- $errors[] = array(
- 'error' => $l->t('Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.'),
- 'hint' => $l->t('Magic Quotes is a deprecated and mostly useless setting that should be disabled. '
- . 'Please ask your server administrator to disable it in php.ini or in your webserver config.')
- );
- $webServerRestart = true;
- }
if (!self::isAnnotationsWorking()) {
$errors[] = array(
'error' => 'PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.',
diff --git a/lib/public/activity/iextension.php b/lib/public/activity/iextension.php
index e78ae0043a6..1b405ad8d3d 100644
--- a/lib/public/activity/iextension.php
+++ b/lib/public/activity/iextension.php
@@ -80,6 +80,19 @@ interface IExtension {
public function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode);
/**
+ * The extension can define the type of parameters for translation
+ *
+ * Currently known types are:
+ * * file => will strip away the path of the file and add a tooltip with it
+ * * username => will add the avatar of the user
+ *
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text);
+
+ /**
* A string naming the css class for the icon to be used can be returned.
* If no icon is known for the given type false is to be returned.
*
diff --git a/lib/public/activity/imanager.php b/lib/public/activity/imanager.php
index 0a49fdf4999..a08670be4b0 100644
--- a/lib/public/activity/imanager.php
+++ b/lib/public/activity/imanager.php
@@ -100,6 +100,13 @@ interface IManager {
function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode);
/**
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text);
+
+ /**
* @param string $type
* @return string
*/
diff --git a/lib/public/config.php b/lib/public/config.php
index 65dde39cdce..70ff3a3fed0 100644
--- a/lib/public/config.php
+++ b/lib/public/config.php
@@ -37,6 +37,7 @@ namespace OCP;
/**
* This class provides functions to read and write configuration data.
* configuration can be on a system, application or user level
+ * @deprecated use methods of \OCP\IConfig
*/
class Config {
/**
@@ -44,12 +45,13 @@ class Config {
* @param string $key key
* @param mixed $default = null default value
* @return mixed the value or $default
+ * @deprecated use method getSystemValue of \OCP\IConfig
*
* This function gets the value from config.php. If it does not exist,
* $default will be returned.
*/
public static function getSystemValue( $key, $default = null ) {
- return \OC_Config::getValue( $key, $default );
+ return \OC::$server->getConfig()->getSystemValue( $key, $default );
}
/**
@@ -57,13 +59,14 @@ class Config {
* @param string $key key
* @param mixed $value value
* @return bool
+ * @deprecated use method setSystemValue of \OCP\IConfig
*
* This function sets the value and writes the config.php. If the file can
* not be written, false will be returned.
*/
public static function setSystemValue( $key, $value ) {
try {
- \OC_Config::setValue( $key, $value );
+ \OC::$server->getConfig()->setSystemValue( $key, $value );
} catch (\Exception $e) {
return false;
}
@@ -73,11 +76,12 @@ class Config {
/**
* Deletes a value from config.php
* @param string $key key
+ * @deprecated use method deleteSystemValue of \OCP\IConfig
*
* This function deletes the value from config.php.
*/
public static function deleteSystemValue( $key ) {
- return \OC_Config::deleteKey( $key );
+ \OC::$server->getConfig()->deleteSystemValue( $key );
}
/**
@@ -86,12 +90,13 @@ class Config {
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated use method getAppValue of \OCP\IConfig
*
* This function gets a value from the appconfig table. If the key does
* not exist the default value will be returned
*/
public static function getAppValue( $app, $key, $default = null ) {
- return \OC_Appconfig::getValue( $app, $key, $default );
+ return \OC::$server->getConfig()->getAppValue( $app, $key, $default );
}
/**
@@ -100,12 +105,13 @@ class Config {
* @param string $key key
* @param string $value value
* @return boolean true/false
+ * @deprecated use method setAppValue of \OCP\IConfig
*
* Sets a value. If the key did not exist before it will be created.
*/
public static function setAppValue( $app, $key, $value ) {
try {
- \OC_Appconfig::setValue( $app, $key, $value );
+ \OC::$server->getConfig()->setAppValue( $app, $key, $value );
} catch (\Exception $e) {
return false;
}
@@ -119,12 +125,13 @@ class Config {
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated use method getUserValue of \OCP\IConfig
*
* This function gets a value from the preferences table. If the key does
* not exist the default value will be returned
*/
public static function getUserValue( $user, $app, $key, $default = null ) {
- return \OC_Preferences::getValue( $user, $app, $key, $default );
+ return \OC::$server->getConfig()->getUserValue( $user, $app, $key, $default );
}
/**
@@ -134,13 +141,14 @@ class Config {
* @param string $key key
* @param string $value value
* @return bool
+ * @deprecated use method setUserValue of \OCP\IConfig
*
* Adds a value to the preferences. If the key did not exist before, it
* will be added automagically.
*/
public static function setUserValue( $user, $app, $key, $value ) {
try {
- \OC_Preferences::setValue( $user, $app, $key, $value );
+ \OC::$server->getConfig()->setUserValue( $user, $app, $key, $value );
} catch (\Exception $e) {
return false;
}
diff --git a/lib/public/files/config/imountprovider.php b/lib/public/files/config/imountprovider.php
new file mode 100644
index 00000000000..5a39e6c8948
--- /dev/null
+++ b/lib/public/files/config/imountprovider.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Config;
+
+use OCP\Files\Storage\IStorageFactory;
+use OCP\IUser;
+
+/**
+ * Provides
+ */
+interface IMountProvider {
+ /**
+ * Get all mountpoints applicable for the user
+ *
+ * @param \OCP\IUser $user
+ * @param \OCP\Files\Storage\IStorageFactory $loader
+ * @return \OCP\Files\Mount\IMountPoint[]
+ */
+ public function getMountsForUser(IUser $user, IStorageFactory $loader);
+}
diff --git a/lib/public/files/config/imountprovidercollection.php b/lib/public/files/config/imountprovidercollection.php
new file mode 100644
index 00000000000..52797414ab9
--- /dev/null
+++ b/lib/public/files/config/imountprovidercollection.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Config;
+
+use OCP\IUser;
+
+/**
+ * Manages the different mount providers
+ */
+interface IMountProviderCollection {
+ /**
+ * Get all configured mount points for the user
+ *
+ * @param \OCP\IUser $user
+ * @return \OCP\Files\Mount\IMountPoint[]
+ */
+ public function getMountsForUser(IUser $user);
+
+ /**
+ * Add a provider for mount points
+ *
+ * @param \OCP\Files\Config\IMountProvider $provider
+ */
+ public function registerProvider(IMountProvider $provider);
+}
diff --git a/lib/public/files/folder.php b/lib/public/files/folder.php
index 7fec1c529a5..9797fbc46ed 100644
--- a/lib/public/files/folder.php
+++ b/lib/public/files/folder.php
@@ -117,6 +117,15 @@ interface Folder extends Node {
public function searchByMime($mimetype);
/**
+ * search for files by tag
+ *
+ * @param string|int $tag tag name or tag id
+ * @param string $userId owner of the tags
+ * @return \OCP\Files\Node[]
+ */
+ public function searchByTag($tag, $userId);
+
+ /**
* get a file or folder inside the folder by it's internal id
*
* @param int $id
diff --git a/lib/public/files/mount/imountpoint.php b/lib/public/files/mount/imountpoint.php
new file mode 100644
index 00000000000..dac634bae4c
--- /dev/null
+++ b/lib/public/files/mount/imountpoint.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Mount;
+
+/**
+ * A storage mounted to folder on the filesystem
+ */
+interface IMountPoint {
+
+ /**
+ * get complete path to the mount point
+ *
+ * @return string
+ */
+ public function getMountPoint();
+
+ /**
+ * Set the mountpoint
+ *
+ * @param string $mountPoint new mount point
+ */
+ public function setMountPoint($mountPoint);
+
+ /**
+ * Get the storage that is mounted
+ *
+ * @return \OC\Files\Storage\Storage
+ */
+ public function getStorage();
+
+ /**
+ * Get the id of the storages
+ *
+ * @return string
+ */
+ public function getStorageId();
+
+ /**
+ * Get the path relative to the mountpoint
+ *
+ * @param string $path absolute path to a file or folder
+ * @return string
+ */
+ public function getInternalPath($path);
+
+ /**
+ * Apply a storage wrapper to the mounted storage
+ *
+ * @param callable $wrapper
+ */
+ public function wrapStorage($wrapper);
+}
diff --git a/lib/public/files/storage/istoragefactory.php b/lib/public/files/storage/istoragefactory.php
new file mode 100644
index 00000000000..769d7011de4
--- /dev/null
+++ b/lib/public/files/storage/istoragefactory.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Storage;
+
+/**
+ * Creates storage instances and manages and applies storage wrappers
+ */
+interface IStorageFactory {
+ /**
+ * allow modifier storage behaviour by adding wrappers around storages
+ *
+ * $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
+ *
+ * @param string $wrapperName
+ * @param callable $callback
+ */
+ public function addStorageWrapper($wrapperName, $callback);
+
+ /**
+ * @param string|boolean $mountPoint
+ * @param string $class
+ * @param array $arguments
+ * @return \OCP\Files\Storage
+ */
+ public function getInstance($mountPoint, $class, $arguments);
+}
diff --git a/lib/public/iappconfig.php b/lib/public/iappconfig.php
index d43eb70ee04..cbd1a7e0573 100644
--- a/lib/public/iappconfig.php
+++ b/lib/public/iappconfig.php
@@ -26,6 +26,7 @@ interface IAppConfig {
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated use method getAppValue of \OCP\IConfig
*
* This function gets a value from the appconfig table. If the key does
* not exist the default value will be returned
@@ -37,8 +38,7 @@ interface IAppConfig {
* @param string $app app
* @param string $key key
* @return bool
- *
- * Deletes a key.
+ * @deprecated use method deleteAppValue of \OCP\IConfig
*/
public function deleteKey($app, $key);
@@ -46,6 +46,7 @@ interface IAppConfig {
* Get the available keys for an app
* @param string $app the app we are looking for
* @return array an array of key names
+ * @deprecated use method getAppKeys of \OCP\IConfig
*
* This function gets all keys of an app. Please note that the values are
* not returned.
@@ -66,6 +67,7 @@ interface IAppConfig {
* @param string $app app
* @param string $key key
* @param string $value value
+ * @deprecated use method setAppValue of \OCP\IConfig
*
* Sets a value. If the key did not exist before it will be created.
* @return void
@@ -85,6 +87,7 @@ interface IAppConfig {
* Remove app from appconfig
* @param string $app app
* @return bool
+ * @deprecated use method deleteAppValue of \OCP\IConfig
*
* Removes all keys in appconfig belonging to the app.
*/
diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php
index 554fee5b22f..a1952ef8f84 100644
--- a/lib/public/iconfig.php
+++ b/lib/public/iconfig.php
@@ -94,6 +94,13 @@ interface IConfig {
*/
public function deleteAppValue($appName, $key);
+ /**
+ * Removes all keys in appconfig belonging to the app
+ *
+ * @param string $appName the appName the configs are stored under
+ */
+ public function deleteAppValues($appName);
+
/**
* Set a user defined value
@@ -102,9 +109,10 @@ interface IConfig {
* @param string $appName the appName that we want to store the value under
* @param string $key the key under which the value is being stored
* @param string $value the value that you want to store
- * @return void
+ * @param string $preCondition only update if the config value was previously the value passed as $preCondition
+ * @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
*/
- public function setUserValue($userId, $appName, $key, $value);
+ public function setUserValue($userId, $appName, $key, $value, $preCondition = null);
/**
* Shortcut for getting a user defined value
@@ -118,6 +126,16 @@ interface IConfig {
public function getUserValue($userId, $appName, $key, $default = '');
/**
+ * Fetches a mapped list of userId -> value, for a specified app and key and a list of user IDs.
+ *
+ * @param string $appName app to get the value for
+ * @param string $key the key to get the value for
+ * @param array $userIds the user IDs to fetch the values for
+ * @return array Mapped values: userId => value
+ */
+ public function getUserValueForUsers($appName, $key, $userIds);
+
+ /**
* Get the keys of all stored by an app for the user
*
* @param string $userId the userId of the user that we want to store the value under
@@ -134,4 +152,28 @@ interface IConfig {
* @param string $key the key under which the value is being stored
*/
public function deleteUserValue($userId, $appName, $key);
+
+ /**
+ * Delete all user values
+ *
+ * @param string $userId the userId of the user that we want to remove all values from
+ */
+ public function deleteAllUserValues($userId);
+
+ /**
+ * Delete all user related values of one app
+ *
+ * @param string $appName the appName of the app that we want to remove all values from
+ */
+ public function deleteAppFromAllUsers($appName);
+
+ /**
+ * Determines the users that have the given value set for a specific app-key-pair
+ *
+ * @param string $appName the app to get the user for
+ * @param string $key the key to get the user for
+ * @param string $value the value to get the user for
+ * @return array of user IDs
+ */
+ public function getUsersForUserValue($appName, $key, $value);
}
diff --git a/lib/public/idatetimeformatter.php b/lib/public/idatetimeformatter.php
new file mode 100644
index 00000000000..b72638ad6cd
--- /dev/null
+++ b/lib/public/idatetimeformatter.php
@@ -0,0 +1,121 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Joas Schilling
+ * @copyright 2014 Joas Schilling nickvergessen@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP;
+
+interface IDateTimeFormatter {
+ /**
+ * Formats the date of the given timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'EEEE, MMMM d, y' => 'Wednesday, August 20, 2014'
+ * long: e.g. 'MMMM d, y' => 'August 20, 2014'
+ * medium: e.g. 'MMM d, y' => 'Aug 20, 2014'
+ * short: e.g. 'M/d/yy' => '8/20/14'
+ * The exact format is dependent on the language
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date string
+ */
+ public function formatDate($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null);
+
+ /**
+ * Formats the date of the given timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'EEEE, MMMM d, y' => 'Wednesday, August 20, 2014'
+ * long: e.g. 'MMMM d, y' => 'August 20, 2014'
+ * medium: e.g. 'MMM d, y' => 'Aug 20, 2014'
+ * short: e.g. 'M/d/yy' => '8/20/14'
+ * The exact format is dependent on the language
+ * Uses 'Today', 'Yesterday' and 'Tomorrow' when applicable
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted relative date string
+ */
+ public function formatDateRelativeDay($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null);
+
+ /**
+ * Gives the relative date of the timestamp
+ * Only works for past dates
+ *
+ * @param int|\DateTime $timestamp
+ * @param int|\DateTime $baseTimestamp Timestamp to compare $timestamp against, defaults to current time
+ * @return string Dates returned are:
+ * < 1 month => Today, Yesterday, n days ago
+ * < 13 month => last month, n months ago
+ * >= 13 month => last year, n years ago
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date span
+ */
+ public function formatDateSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null);
+
+ /**
+ * Formats the time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param string $format Either 'full', 'long', 'medium' or 'short'
+ * full: e.g. 'h:mm:ss a zzzz' => '11:42:13 AM GMT+0:00'
+ * long: e.g. 'h:mm:ss a z' => '11:42:13 AM GMT'
+ * medium: e.g. 'h:mm:ss a' => '11:42:13 AM'
+ * short: e.g. 'h:mm a' => '11:42 AM'
+ * The exact format is dependent on the language
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted time string
+ */
+ public function formatTime($timestamp, $format = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null);
+
+ /**
+ * Gives the relative past time of the timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param int|\DateTime $baseTimestamp Timestamp to compare $timestamp against, defaults to current time
+ * @return string Dates returned are:
+ * < 60 sec => seconds ago
+ * < 1 hour => n minutes ago
+ * < 1 day => n hours ago
+ * < 1 month => Yesterday, n days ago
+ * < 13 month => last month, n months ago
+ * >= 13 month => last year, n years ago
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted time span
+ */
+ public function formatTimeSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null);
+
+ /**
+ * Formats the date and time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param string $formatDate See formatDate() for description
+ * @param string $formatTime See formatTime() for description
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted date and time string
+ */
+ public function formatDateTime($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null);
+
+ /**
+ * Formats the date and time of the given timestamp
+ *
+ * @param int|\DateTime $timestamp
+ * @param string $formatDate See formatDate() for description
+ * Uses 'Today', 'Yesterday' and 'Tomorrow' when applicable
+ * @param string $formatTime See formatTime() for description
+ * @param \DateTimeZone $timeZone The timezone to use
+ * @param \OCP\IL10N $l The locale to use
+ * @return string Formatted relative date and time string
+ */
+ public function formatDateTimeRelativeDay($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null);
+}
diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php
index ce17d293e86..32310fe755f 100644
--- a/lib/public/idbconnection.php
+++ b/lib/public/idbconnection.php
@@ -158,4 +158,19 @@ interface IDBConnection {
* @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform.
*/
public function getDatabasePlatform();
+
+ /**
+ * Drop a table from the database if it exists
+ *
+ * @param string $table table name without the prefix
+ */
+ public function dropTable($table);
+
+ /**
+ * Check if a table exists
+ *
+ * @param string $table table name without the prefix
+ * @return bool
+ */
+ public function tableExists($table);
}
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index 301f47c68fa..193e2fdf105 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -305,4 +305,16 @@ interface IServerContainer {
* @return string
*/
function getWebRoot();
+
+ /**
+ * @return \OCP\Files\Config\IMountProviderCollection
+ */
+ function getMountProviderCollection();
+
+ /**
+ * Get the IniWrapper
+ *
+ * @return \bantu\IniGetWrapper\IniGetWrapper
+ */
+ function getIniWrapper();
}
diff --git a/lib/public/itagmanager.php b/lib/public/itagmanager.php
index 54daa5cc1cb..ac80eebc72d 100644
--- a/lib/public/itagmanager.php
+++ b/lib/public/itagmanager.php
@@ -43,14 +43,15 @@ namespace OCP;
interface ITagManager {
/**
- * Create a new \OCP\ITags instance and load tags from db.
+ * Create a new \OCP\ITags instance and load tags from db for the current user.
*
* @see \OCP\ITags
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
* @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ * @param string $userId user for which to retrieve the tags, defaults to the currently
+ * logged in user
* @return \OCP\ITags
*/
- public function load($type, $defaultTags=array(), $includeShared=false);
-
+ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null);
}
diff --git a/lib/public/itags.php b/lib/public/itags.php
index 4514746bbe8..238b12c6424 100644
--- a/lib/public/itags.php
+++ b/lib/public/itags.php
@@ -76,7 +76,23 @@ interface ITags {
public function getTags();
/**
- * Get the a list if items tagged with $tag.
+ * Get a list of tags for the given item ids.
+ *
+ * This returns an array with object id / tag names:
+ * [
+ * 1 => array('First tag', 'Second tag'),
+ * 2 => array('Second tag'),
+ * 3 => array('Second tag', 'Third tag'),
+ * ]
+ *
+ * @param array $objIds item ids
+ * @return array|boolean with object id as key and an array
+ * of tag names as value or false if an error occurred
+ */
+ public function getTagsForObjects(array $objIds);
+
+ /**
+ * Get a list of items tagged with $tag.
*
* Throws an exception if the tag could not be found.
*
diff --git a/lib/public/iuser.php b/lib/public/iuser.php
index c15edcd14dd..b288c61df5e 100644
--- a/lib/public/iuser.php
+++ b/lib/public/iuser.php
@@ -69,6 +69,13 @@ interface IUser {
public function getHome();
/**
+ * Get the name of the backend class the user is connected with
+ *
+ * @return string
+ */
+ public function getBackendClassName();
+
+ /**
* check if the backend allows the user to change his avatar on Personal page
*
* @return bool
diff --git a/lib/public/iusermanager.php b/lib/public/iusermanager.php
index fc0729b860b..1691aee8e7d 100644
--- a/lib/public/iusermanager.php
+++ b/lib/public/iusermanager.php
@@ -32,6 +32,12 @@ interface IUserManager {
public function registerBackend($backend);
/**
+ * Get the active backends
+ * @return \OCP\UserInterface[]
+ */
+ public function getBackends();
+
+ /**
* remove a user backend
*
* @param \OCP\UserInterface $backend
diff --git a/lib/public/preconditionnotmetexception.php b/lib/public/preconditionnotmetexception.php
new file mode 100644
index 00000000000..ceba01a0b4b
--- /dev/null
+++ b/lib/public/preconditionnotmetexception.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Morris Jobke
+ * @copyright 2014 Morris Jobke <hey@morrisjobke.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal ownCloud classes
+namespace OCP;
+
+/**
+ * Exception if the precondition of the config update method isn't met
+ */
+class PreConditionNotMetException extends \Exception {}
diff --git a/lib/public/share.php b/lib/public/share.php
index b3ece8fab94..60e5a6fd85b 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -242,10 +242,11 @@ class Share extends \OC\Share\Constants {
* @param string $itemSource
* @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
* @param string $shareWith User or group the item is being shared with
+ * @param string $owner owner of the share, if null the current user is used
* @return boolean true on success or false on failure
*/
- public static function unshare($itemType, $itemSource, $shareType, $shareWith) {
- return \OC\Share\Share::unshare($itemType, $itemSource, $shareType, $shareWith);
+ public static function unshare($itemType, $itemSource, $shareType, $shareWith, $owner = null) {
+ return \OC\Share\Share::unshare($itemType, $itemSource, $shareType, $shareWith, $owner);
}
/**
diff --git a/lib/public/template.php b/lib/public/template.php
index 93af794ba62..89934a842ed 100644
--- a/lib/public/template.php
+++ b/lib/public/template.php
@@ -94,6 +94,7 @@ function human_file_size( $bytes ) {
* @param int $timestamp unix timestamp
* @param boolean $dateOnly
* @return \OC_L10N_String human readable interpretation of the timestamp
+ *
* @deprecated Use \OCP\Template::relative_modified_date() instead
*/
function relative_modified_date( $timestamp, $dateOnly = false ) {
@@ -188,12 +189,12 @@ class Template extends \OC_Template {
}
/**
- * Return the relative date in relation to today. Returns something like "last hour" or "two month ago"
- *
- * @param int $timestamp unix timestamp
- * @param boolean $dateOnly
- * @return \OC_L10N_String human readable interpretation of the timestamp
- */
+ * Return the relative date in relation to today. Returns something like "last hour" or "two month ago"
+ *
+ * @param int $timestamp unix timestamp
+ * @param boolean $dateOnly
+ * @return string human readable interpretation of the timestamp
+ */
public static function relative_modified_date($timestamp, $dateOnly = false) {
return \relative_modified_date($timestamp, null, $dateOnly);
}
diff --git a/lib/public/util.php b/lib/public/util.php
index 793a16c4d84..7f1974a421d 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -163,6 +163,8 @@ class Util {
* @param bool $dateOnly option to omit time from the result
* @param DateTimeZone|string $timeZone where the given timestamp shall be converted to
* @return string timestamp
+ *
+ * @deprecated Use \OC::$server->query('DateTimeFormatter') instead
*/
public static function formatDate($timestamp, $dateOnly=false, $timeZone = null) {
return(\OC_Util::formatDate($timestamp, $dateOnly, $timeZone));
diff --git a/ocs/routes.php b/ocs/routes.php
index 845ee49a46d..567f9ccb23d 100644
--- a/ocs/routes.php
+++ b/ocs/routes.php
@@ -81,3 +81,33 @@ OC_API::register(
'core',
OC_API::USER_AUTH
);
+
+// Server-to-Server Sharing
+$s2s = new \OCA\Files_Sharing\API\Server2Server();
+OC_API::register('post',
+ '/cloud/shares',
+ array($s2s, 'createShare'),
+ 'files_sharing',
+ OC_API::GUEST_AUTH
+);
+
+OC_API::register('post',
+ '/cloud/shares/{id}/accept',
+ array($s2s, 'acceptShare'),
+ 'files_sharing',
+ OC_API::GUEST_AUTH
+);
+
+OC_API::register('post',
+ '/cloud/shares/{id}/decline',
+ array($s2s, 'declineShare'),
+ 'files_sharing',
+ OC_API::GUEST_AUTH
+);
+
+OC_API::register('post',
+ '/cloud/shares/{id}/unshare',
+ array($s2s, 'unshare'),
+ 'files_sharing',
+ OC_API::GUEST_AUTH
+);
diff --git a/settings/admin.php b/settings/admin.php
index a5f07037911..56484f25b26 100644
--- a/settings/admin.php
+++ b/settings/admin.php
@@ -9,7 +9,6 @@ OC_Util::checkAdminUser();
OC_App::setActiveNavigationEntry("admin");
$template = new OC_Template('settings', 'admin', 'user');
-$htAccessWorking = OC_Util::isHtaccessWorking();
$entries = OC_Log_Owncloud::getEntries(3);
$entriesRemaining = count(OC_Log_Owncloud::getEntries(4)) > 3;
@@ -32,7 +31,6 @@ $template->assign('mail_smtpname', $config->getSystemValue("mail_smtpname", ''))
$template->assign('mail_smtppassword', $config->getSystemValue("mail_smtppassword", ''));
$template->assign('entries', $entries);
$template->assign('entriesremain', $entriesRemaining);
-$template->assign('htaccessworking', $htAccessWorking);
$template->assign('readOnlyConfigEnabled', OC_Helper::isReadOnlyConfigEnabled());
$template->assign('isLocaleWorking', OC_Util::isSetLocaleWorking());
$template->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8());
@@ -68,6 +66,7 @@ $template->assign('allowLinks', $appConfig->getValue('core', 'shareapi_allow_lin
$template->assign('enforceLinkPassword', \OCP\Util::isPublicLinkPasswordRequired());
$template->assign('allowPublicUpload', $appConfig->getValue('core', 'shareapi_allow_public_upload', 'yes'));
$template->assign('allowResharing', $appConfig->getValue('core', 'shareapi_allow_resharing', 'yes'));
+$template->assign('allowPublicMailNotification', $appConfig->getValue('core', 'shareapi_allow_public_notification', 'no'));
$template->assign('allowMailNotification', $appConfig->getValue('core', 'shareapi_allow_mail_notification', 'no'));
$template->assign('onlyShareWithGroupMembers', \OC\Share\Share::shareWithGroupMembersOnly());
$databaseOverload = (strpos(\OCP\Config::getSystemValue('dbtype'), 'sqlite') !== false);
@@ -78,7 +77,7 @@ $template->assign('databaseOverload', $databaseOverload);
$forms = OC_App::getForms('admin');
$l = OC_L10N::get('settings');
$formsAndMore = array();
-if (OC_Request::serverProtocol() !== 'https' || !$htAccessWorking || !OC_Util::isAnnotationsWorking() ||
+if (OC_Request::serverProtocol() !== 'https' || !OC_Util::isAnnotationsWorking() ||
$suggestedOverwriteWebRoot || !OC_Util::isSetLocaleWorking() || !OC_Util::isPhpCharSetUtf8() ||
!OC_Util::fileInfoLoaded() || $databaseOverload
) {
diff --git a/settings/ajax/checksetup.php b/settings/ajax/checksetup.php
index 6bf5bc5642e..64718933317 100644
--- a/settings/ajax/checksetup.php
+++ b/settings/ajax/checksetup.php
@@ -17,7 +17,8 @@ if (OC_Util::isInternetConnectionEnabled()) {
}
OCP\JSON::success(
- array(
- 'serverhasinternetconnection' => $hasInternet
+ array (
+ 'serverHasInternetConnection' => $hasInternet,
+ 'dataDirectoryProtected' => OC_Util::isHtaccessWorking()
)
);
diff --git a/settings/ajax/creategroup.php b/settings/ajax/creategroup.php
deleted file mode 100644
index be376bea9dc..00000000000
--- a/settings/ajax/creategroup.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-OCP\JSON::callCheck();
-OC_JSON::checkAdminUser();
-
-$groupname = $_POST["groupname"];
-$l = \OC::$server->getL10N('settings');
-
-// Does the group exist?
-if( in_array( $groupname, OC_Group::getGroups())) {
- OC_JSON::error(array("data" => array( "message" => $l->t("Group already exists") )));
- exit();
-}
-
-// Return Success story
-if( OC_Group::createGroup( $groupname )) {
- OC_JSON::success(array("data" => array( "groupname" => $groupname )));
-}
-else{
- OC_JSON::error(array("data" => array( "message" => $l->t("Unable to add group") )));
-}
diff --git a/settings/ajax/createuser.php b/settings/ajax/createuser.php
deleted file mode 100644
index 463c15d59e8..00000000000
--- a/settings/ajax/createuser.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-OCP\JSON::callCheck();
-OC_JSON::checkSubAdminUser();
-
-if(OC_User::isAdminUser(OC_User::getUser())) {
- $groups = array();
- if (!empty($_POST["groups"])) {
- $groups = $_POST["groups"];
- }
-}else{
- if (isset($_POST["groups"])) {
- $groups = array();
- if (!empty($_POST["groups"])) {
- foreach ($_POST["groups"] as $group) {
- if (OC_SubAdmin::isGroupAccessible(OC_User::getUser(), $group)) {
- $groups[] = $group;
- }
- }
- }
- if (empty($groups)) {
- $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
- }
- } else {
- $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
- }
-}
-$username = $_POST["username"];
-$password = $_POST["password"];
-
-// Return Success story
-try {
- // check whether the user's files home exists
- $userDirectory = OC_User::getHome($username) . '/files/';
- $homeExists = file_exists($userDirectory);
-
- if (!OC_User::createUser($username, $password)) {
- OC_JSON::error(array('data' => array( 'message' => 'User creation failed for '.$username )));
- exit();
- }
- foreach( $groups as $i ) {
- if(!OC_Group::groupExists($i)) {
- OC_Group::createGroup($i);
- }
- OC_Group::addToGroup( $username, $i );
- }
-
- $userManager = \OC_User::getManager();
- $user = $userManager->get($username);
- OCP\JSON::success(array("data" =>
- array(
- // returns whether the home already existed
- "homeExists" => $homeExists,
- "username" => $username,
- "groups" => OC_Group::getUserGroups( $username ),
- 'storageLocation' => $user->getHome())));
-} catch (Exception $exception) {
- OCP\JSON::error(array("data" => array( "message" => $exception->getMessage())));
-}
diff --git a/settings/ajax/decryptall.php b/settings/ajax/decryptall.php
index 527e5b8fcee..0ad25927461 100644
--- a/settings/ajax/decryptall.php
+++ b/settings/ajax/decryptall.php
@@ -11,7 +11,7 @@ $params = array('uid' => \OCP\User::getUser(),
'password' => $_POST['password']);
$view = new OC\Files\View('/');
-$util = new \OCA\Encryption\Util($view, \OCP\User::getUser());
+$util = new \OCA\Files_Encryption\Util($view, \OCP\User::getUser());
$l = \OC::$server->getL10N('settings');
$result = $util->initEncryption($params);
diff --git a/settings/ajax/geteveryonecount.php b/settings/ajax/geteveryonecount.php
index 54fbd6e2fbd..c41e7f71b01 100644
--- a/settings/ajax/geteveryonecount.php
+++ b/settings/ajax/geteveryonecount.php
@@ -25,7 +25,7 @@ OC_JSON::checkSubAdminUser();
$userCount = 0;
-$currentUser = \OC::$server->getUserSession()->getLoginName();
+$currentUser = \OC::$server->getUserSession()->getUser()->getUID();
if (!OC_User::isAdminUser($currentUser)) {
$groups = OC_SubAdmin::getSubAdminsGroups($currentUser);
diff --git a/settings/ajax/grouplist.php b/settings/ajax/grouplist.php
deleted file mode 100644
index 93bb510773d..00000000000
--- a/settings/ajax/grouplist.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * ownCloud
- *
- * @author Arthur Schiwon
- * @copyright 2014 Arthur Schiwon <blizzz@owncloud.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-OC_JSON::callCheck();
-OC_JSON::checkSubAdminUser();
-if (isset($_GET['pattern']) && !empty($_GET['pattern'])) {
- $pattern = $_GET['pattern'];
-} else {
- $pattern = '';
-}
-if (isset($_GET['filterGroups']) && !empty($_GET['filterGroups'])) {
- $filterGroups = intval($_GET['filterGroups']) === 1;
-} else {
- $filterGroups = false;
-}
-$groupPattern = $filterGroups ? $pattern : '';
-$groups = array();
-$adminGroups = array();
-$groupManager = \OC_Group::getManager();
-$isAdmin = OC_User::isAdminUser(OC_User::getUser());
-
-$groupsInfo = new \OC\Group\MetaData(OC_User::getUser(), $isAdmin, $groupManager);
-$groupsInfo->setSorting($groupsInfo::SORT_USERCOUNT);
-list($adminGroups, $groups) = $groupsInfo->get($groupPattern, $pattern);
-
-OC_JSON::success(
- array('data' => array('adminGroups' => $adminGroups, 'groups' => $groups)));
diff --git a/settings/ajax/lostpassword.php b/settings/ajax/lostpassword.php
index 395ba31f92b..b0fb20c4a7e 100644
--- a/settings/ajax/lostpassword.php
+++ b/settings/ajax/lostpassword.php
@@ -8,7 +8,7 @@ $l = \OC::$server->getL10N('settings');
// Get data
if( isset( $_POST['email'] ) && OC_Mail::validateAddress($_POST['email']) ) {
$email=trim($_POST['email']);
- OC_Preferences::setValue(OC_User::getUser(), 'settings', 'email', $email);
+ \OC::$server->getConfig()->setUserValue(OC_User::getUser(), 'settings', 'email', $email);
OC_JSON::success(array("data" => array( "message" => $l->t("Email saved") )));
}else{
OC_JSON::error(array("data" => array( "message" => $l->t("Invalid email") )));
diff --git a/settings/ajax/removegroup.php b/settings/ajax/removegroup.php
deleted file mode 100644
index 798d7916e61..00000000000
--- a/settings/ajax/removegroup.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-OC_JSON::checkAdminUser();
-OCP\JSON::callCheck();
-
-$name = $_POST["groupname"];
-
-// Return Success story
-if( OC_Group::deleteGroup( $name )) {
- OC_JSON::success(array("data" => array( "groupname" => $name )));
-}
-else{
- OC_JSON::error(array("data" => array( "message" => $l->t("Unable to delete group") )));
-}
diff --git a/settings/ajax/removeuser.php b/settings/ajax/removeuser.php
deleted file mode 100644
index eda85238780..00000000000
--- a/settings/ajax/removeuser.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-OC_JSON::checkSubAdminUser();
-OCP\JSON::callCheck();
-
-$username = $_POST["username"];
-
-// A user shouldn't be able to delete his own account
-if(OC_User::getUser() === $username) {
- exit;
-}
-
-if(!OC_User::isAdminUser(OC_User::getUser()) && !OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username)) {
- $l = \OC::$server->getL10N('core');
- OC_JSON::error(array( 'data' => array( 'message' => $l->t('Authentication error') )));
- exit();
-}
-
-// Return Success story
-if( OC_User::deleteUser( $username )) {
- OC_JSON::success(array("data" => array( "username" => $username )));
-}
-else{
- $l = \OC::$server->getL10N('core');
- OC_JSON::error(array("data" => array( "message" => $l->t("Unable to delete user") )));
-}
diff --git a/settings/ajax/setlanguage.php b/settings/ajax/setlanguage.php
index a3988db85bb..a83212927bf 100644
--- a/settings/ajax/setlanguage.php
+++ b/settings/ajax/setlanguage.php
@@ -11,7 +11,7 @@ if( isset( $_POST['lang'] ) ) {
$languageCodes=OC_L10N::findAvailableLanguages();
$lang=$_POST['lang'];
if(array_search($lang, $languageCodes) or $lang === 'en') {
- OC_Preferences::setValue( OC_User::getUser(), 'core', 'lang', $lang );
+ \OC::$server->getConfig()->setUserValue( OC_User::getUser(), 'core', 'lang', $lang );
OC_JSON::success(array("data" => array( "message" => $l->t("Language changed") )));
}else{
OC_JSON::error(array("data" => array( "message" => $l->t("Invalid request") )));
diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php
index f19506a0456..64a686e83d7 100644
--- a/settings/ajax/setquota.php
+++ b/settings/ajax/setquota.php
@@ -27,7 +27,7 @@ if($quota !== 'none' and $quota !== 'default') {
// Return Success story
if($username) {
- OC_Preferences::setValue($username, 'files', 'quota', $quota);
+ \OC::$server->getConfig()->setUserValue($username, 'files', 'quota', $quota);
}else{//set the default quota when no username is specified
if($quota === 'default') {//'default' as default quota makes no sense
$quota='none';
diff --git a/settings/ajax/userlist.php b/settings/ajax/userlist.php
deleted file mode 100644
index 807cf5f1899..00000000000
--- a/settings/ajax/userlist.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/**
- * ownCloud
- *
- * @author Michael Gapczynski
- * @copyright 2012 Michael Gapczynski mtgap@owncloud.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-OC_JSON::callCheck();
-OC_JSON::checkSubAdminUser();
-if (isset($_GET['offset'])) {
- $offset = $_GET['offset'];
-} else {
- $offset = 0;
-}
-if (isset($_GET['limit'])) {
- $limit = $_GET['limit'];
-} else {
- $limit = 10;
-}
-if (isset($_GET['gid']) && !empty($_GET['gid'])) {
- $gid = $_GET['gid'];
- if ($gid === '_everyone') {
- $gid = false;
- }
-} else {
- $gid = false;
-}
-if (isset($_GET['pattern']) && !empty($_GET['pattern'])) {
- $pattern = $_GET['pattern'];
-} else {
- $pattern = '';
-}
-$users = array();
-$userManager = \OC_User::getManager();
-if (OC_User::isAdminUser(OC_User::getUser())) {
- if($gid !== false) {
- $batch = OC_Group::displayNamesInGroup($gid, $pattern, $limit, $offset);
- } else {
- $batch = OC_User::getDisplayNames($pattern, $limit, $offset);
- }
- foreach ($batch as $uid => $displayname) {
- $user = $userManager->get($uid);
- $users[] = array(
- 'name' => $uid,
- 'displayname' => $displayname,
- 'groups' => OC_Group::getUserGroups($uid),
- 'subadmin' => OC_SubAdmin::getSubAdminsGroups($uid),
- 'quota' => OC_Preferences::getValue($uid, 'files', 'quota', 'default'),
- 'storageLocation' => $user->getHome(),
- 'lastLogin' => $user->getLastLogin(),
- );
- }
-} else {
- $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
- if($gid !== false && in_array($gid, $groups)) {
- $groups = array($gid);
- } elseif($gid !== false) {
- //don't you try to investigate loops you must not know about
- $groups = array();
- }
- $batch = OC_Group::usersInGroups($groups, $pattern, $limit, $offset);
- foreach ($batch as $uid) {
- $user = $userManager->get($uid);
-
- // Only add the groups, this user is a subadmin of
- $userGroups = array_intersect(OC_Group::getUserGroups($uid), OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()));
- $users[] = array(
- 'name' => $uid,
- 'displayname' => $user->getDisplayName(),
- 'groups' => $userGroups,
- 'quota' => OC_Preferences::getValue($uid, 'files', 'quota', 'default'),
- 'storageLocation' => $user->getHome(),
- 'lastLogin' => $user->getLastLogin(),
- );
- }
-}
-OC_JSON::success(array('data' => $users));
diff --git a/settings/application.php b/settings/application.php
index 64aa4671228..0a80bd8b1e7 100644
--- a/settings/application.php
+++ b/settings/application.php
@@ -10,11 +10,14 @@
namespace OC\Settings;
-use OC\AppFramework\Utility\SimpleContainer;
use OC\Settings\Controller\AppSettingsController;
+use OC\Settings\Controller\GroupsController;
use OC\Settings\Controller\MailSettingsController;
use OC\Settings\Controller\SecuritySettingsController;
+use OC\Settings\Controller\UsersController;
+use OC\Settings\Middleware\SubadminMiddleware;
use \OCP\AppFramework\App;
+use OCP\IContainer;
use \OCP\Util;
/**
@@ -34,7 +37,7 @@ class Application extends App {
/**
* Controllers
*/
- $container->registerService('MailSettingsController', function(SimpleContainer $c) {
+ $container->registerService('MailSettingsController', function(IContainer $c) {
return new MailSettingsController(
$c->query('AppName'),
$c->query('Request'),
@@ -46,7 +49,7 @@ class Application extends App {
$c->query('DefaultMailAddress')
);
});
- $container->registerService('AppSettingsController', function(SimpleContainer $c) {
+ $container->registerService('AppSettingsController', function(IContainer $c) {
return new AppSettingsController(
$c->query('AppName'),
$c->query('Request'),
@@ -54,33 +57,81 @@ class Application extends App {
$c->query('Config')
);
});
- $container->registerService('SecuritySettingsController', function(SimpleContainer $c) {
+ $container->registerService('SecuritySettingsController', function(IContainer $c) {
return new SecuritySettingsController(
$c->query('AppName'),
$c->query('Request'),
$c->query('Config')
);
});
+ $container->registerService('GroupsController', function(IContainer $c) {
+ return new GroupsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('GroupManager'),
+ $c->query('UserSession'),
+ $c->query('IsAdmin'),
+ $c->query('L10N')
+ );
+ });
+ $container->registerService('UsersController', function(IContainer $c) {
+ return new UsersController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('UserManager'),
+ $c->query('GroupManager'),
+ $c->query('UserSession'),
+ $c->query('Config'),
+ $c->query('IsAdmin'),
+ $c->query('L10N')
+ );
+ });
+
+ /**
+ * Middleware
+ */
+ $container->registerService('SubadminMiddleware', function(IContainer $c){
+ return new SubadminMiddleware(
+ $c->query('ControllerMethodReflector'),
+ $c->query('IsSubAdmin')
+ );
+ });
+ // Execute middlewares
+ $container->registerMiddleware('SubadminMiddleware');
/**
* Core class wrappers
*/
- $container->registerService('Config', function(SimpleContainer $c) {
+ $container->registerService('Config', function(IContainer $c) {
return $c->query('ServerContainer')->getConfig();
});
- $container->registerService('L10N', function(SimpleContainer $c) {
+ $container->registerService('L10N', function(IContainer $c) {
return $c->query('ServerContainer')->getL10N('settings');
});
- $container->registerService('UserSession', function(SimpleContainer $c) {
+ $container->registerService('GroupManager', function(IContainer $c) {
+ return $c->query('ServerContainer')->getGroupManager();
+ });
+ $container->registerService('UserManager', function(IContainer $c) {
+ return $c->query('ServerContainer')->getUserManager();
+ });
+ $container->registerService('UserSession', function(IContainer $c) {
return $c->query('ServerContainer')->getUserSession();
});
- $container->registerService('Mail', function(SimpleContainer $c) {
+ /** FIXME: Remove once OC_User is non-static and mockable */
+ $container->registerService('IsAdmin', function(IContainer $c) {
+ return \OC_User::isAdminUser(\OC_User::getUser());
+ });
+ /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
+ $container->registerService('IsSubAdmin', function(IContainer $c) {
+ return \OC_Subadmin::isSubAdmin(\OC_User::getUser());
+ });
+ $container->registerService('Mail', function(IContainer $c) {
return new \OC_Mail;
});
- $container->registerService('Defaults', function(SimpleContainer $c) {
+ $container->registerService('Defaults', function(IContainer $c) {
return new \OC_Defaults;
});
- $container->registerService('DefaultMailAddress', function(SimpleContainer $c) {
+ $container->registerService('DefaultMailAddress', function(IContainer $c) {
return Util::getDefaultEmailAddress('no-reply');
});
}
diff --git a/settings/changepassword/controller.php b/settings/changepassword/controller.php
index ee596c3e7ed..4ed907daf96 100644
--- a/settings/changepassword/controller.php
+++ b/settings/changepassword/controller.php
@@ -52,7 +52,7 @@ class Controller {
if (\OC_App::isEnabled('files_encryption')) {
//handle the recovery case
- $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), $username);
+ $util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), $username);
$recoveryAdminEnabled = \OC_Appconfig::getValue('files_encryption', 'recoveryAdminEnabled');
$validRecoveryPassword = false;
diff --git a/settings/controller/groupscontroller.php b/settings/controller/groupscontroller.php
new file mode 100644
index 00000000000..82e72821c3d
--- /dev/null
+++ b/settings/controller/groupscontroller.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Settings\Controller;
+
+use OC\AppFramework\Http;
+use \OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\IGroupManager;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUserSession;
+
+/**
+ * @package OC\Settings\Controller
+ */
+class GroupsController extends Controller {
+ /** @var IGroupManager */
+ private $groupManager;
+ /** @var IL10N */
+ private $l10n;
+ /** @var IUserSession */
+ private $userSession;
+ /** @var bool */
+ private $isAdmin;
+
+ /**
+ * @param string $appName
+ * @param IRequest $request
+ * @param IGroupManager $groupManager
+ * @param IUserSession $userSession
+ * @param bool $isAdmin
+ * @param IL10N $l10n
+ */
+ public function __construct($appName,
+ IRequest $request,
+ IGroupManager $groupManager,
+ IUserSession $userSession,
+ $isAdmin,
+ IL10N $l10n) {
+ parent::__construct($appName, $request);
+ $this->groupManager = $groupManager;
+ $this->userSession = $userSession;
+ $this->isAdmin = $isAdmin;
+ $this->l10n = $l10n;
+ }
+
+ /**
+ * @NoAdminRequired
+ *
+ * @param string $pattern
+ * @param bool $filterGroups
+ * @return DataResponse
+ */
+ public function index($pattern = '', $filterGroups = false) {
+ $groupPattern = $filterGroups ? $pattern : '';
+
+ $groupsInfo = new \OC\Group\MetaData($this->userSession->getUser()->getUID(),
+ $this->isAdmin, $this->groupManager);
+ $groupsInfo->setSorting($groupsInfo::SORT_USERCOUNT);
+ list($adminGroups, $groups) = $groupsInfo->get($groupPattern, $pattern);
+
+ return new DataResponse(
+ array(
+ 'data' => array('adminGroups' => $adminGroups, 'groups' => $groups)
+ )
+ );
+ }
+
+ /**
+ * @param string $id
+ * @return DataResponse
+ */
+ public function create($id) {
+ if($this->groupManager->groupExists($id)) {
+ return new DataResponse(
+ array(
+ 'message' => (string)$this->l10n->t('Group already exists.')
+ ),
+ Http::STATUS_CONFLICT
+ );
+ }
+ if($this->groupManager->createGroup($id)) {
+ return new DataResponse(
+ array(
+ 'groupname' => $id
+ ),
+ Http::STATUS_CREATED
+ );
+ }
+
+ return new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => (string)$this->l10n->t('Unable to add group.')
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+ /**
+ * @param string $id
+ * @return DataResponse
+ */
+ public function destroy($id) {
+ $group = $this->groupManager->get($id);
+ if ($group) {
+ if ($group->delete()) {
+ return new DataResponse(
+ array(
+ 'status' => 'success',
+ 'data' => array(
+ 'groupname' => $id
+ )
+ ),
+ Http::STATUS_NO_CONTENT
+ );
+ }
+ }
+ return new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => (string)$this->l10n->t('Unable to delete group.')
+ ),
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+}
diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php
new file mode 100644
index 00000000000..c25989af1a9
--- /dev/null
+++ b/settings/controller/userscontroller.php
@@ -0,0 +1,280 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Settings\Controller;
+
+use OC\AppFramework\Http;
+use OC\User\Manager;
+use OC\User\User;
+use \OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\IConfig;
+use OCP\IGroupManager;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\IUserSession;
+
+/**
+ * @package OC\Settings\Controller
+ */
+class UsersController extends Controller {
+ /** @var IL10N */
+ private $l10n;
+ /** @var IUserSession */
+ private $userSession;
+ /** @var bool */
+ private $isAdmin;
+ /** @var IUserManager */
+ private $userManager;
+ /** @var IGroupManager */
+ private $groupManager;
+ /** @var IConfig */
+ private $config;
+
+ /**
+ * @param string $appName
+ * @param IRequest $request
+ * @param IUserManager $userManager
+ * @param IGroupManager $groupManager
+ * @param IUserSession $userSession
+ * @param IConfig $config
+ * @param bool $isAdmin
+ * @param IL10N $l10n
+ */
+ public function __construct($appName,
+ IRequest $request,
+ IUserManager $userManager,
+ IGroupManager $groupManager,
+ IUserSession $userSession,
+ IConfig $config,
+ $isAdmin,
+ IL10N $l10n) {
+ parent::__construct($appName, $request);
+ $this->userManager = $userManager;
+ $this->groupManager = $groupManager;
+ $this->userSession = $userSession;
+ $this->config = $config;
+ $this->isAdmin = $isAdmin;
+ $this->l10n = $l10n;
+ }
+
+ /**
+ * @param IUser $user
+ * @param array $userGroups
+ * @return array
+ */
+ private function formatUserForIndex(IUser $user, array $userGroups = null) {
+ return array(
+ 'name' => $user->getUID(),
+ 'displayname' => $user->getDisplayName(),
+ 'groups' => (empty($userGroups)) ? $this->groupManager->getUserGroupIds($user) : $userGroups,
+ 'subadmin' => \OC_SubAdmin::getSubAdminsGroups($user->getUID()),
+ 'quota' => $this->config->getUserValue($user->getUID(), 'files', 'quota', 'default'),
+ 'storageLocation' => $user->getHome(),
+ 'lastLogin' => $user->getLastLogin(),
+ 'backend' => $user->getBackendClassName()
+ );
+ }
+
+ /**
+ * @param array $userIDs Array with schema [$uid => $displayName]
+ * @return IUser[]
+ */
+ private function getUsersForUID(array $userIDs) {
+ $users = [];
+ foreach ($userIDs as $uid => $displayName) {
+ $users[] = $this->userManager->get($uid);
+ }
+ return $users;
+ }
+
+ /**
+ * @NoAdminRequired
+ *
+ * @param int $offset
+ * @param int $limit
+ * @param string $gid GID to filter for
+ * @param string $pattern Pattern to search for in the username
+ * @param string $backend Backend to filter for (class-name)
+ * @return DataResponse
+ *
+ * TODO: Tidy up and write unit tests - code is mainly static method calls
+ */
+ public function index($offset = 0, $limit = 10, $gid = '', $pattern = '', $backend = '') {
+ // FIXME: The JS sends the group '_everyone' instead of no GID for the "all users" group.
+ if($gid === '_everyone') {
+ $gid = '';
+ }
+
+ // Remove backends
+ if(!empty($backend)) {
+ $activeBackends = $this->userManager->getBackends();
+ $this->userManager->clearBackends();
+ foreach($activeBackends as $singleActiveBackend) {
+ if($backend === get_class($singleActiveBackend)) {
+ $this->userManager->registerBackend($singleActiveBackend);
+ break;
+ }
+ }
+ }
+
+ $users = array();
+ if ($this->isAdmin) {
+
+ if($gid !== '') {
+ $batch = $this->getUsersForUID($this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset));
+ } else {
+ $batch = $this->userManager->search('', $limit, $offset);
+ }
+
+ foreach ($batch as $user) {
+ $users[] = $this->formatUserForIndex($user);
+ }
+
+ } else {
+ // Set the $gid parameter to an empty value if the subadmin has no rights to access a specific group
+ if($gid !== '' && !in_array($gid, \OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID()))) {
+ $gid = '';
+ }
+
+ $batch = $this->getUsersForUID($this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset));
+ foreach ($batch as $user) {
+ // Only add the groups, this user is a subadmin of
+ $userGroups = array_intersect($this->groupManager->getUserGroupIds($user),
+ \OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID()));
+ $users[] = $this->formatUserForIndex($user, $userGroups);
+ }
+ }
+
+ return new DataResponse($users);
+ }
+
+ /**
+ * @NoAdminRequired
+ *
+ * @param string $username
+ * @param string $password
+ * @param array $groups
+ * @return DataResponse
+ *
+ * TODO: Tidy up and write unit tests - code is mainly static method calls
+ */
+ public function create($username, $password, array $groups) {
+
+ if (!$this->isAdmin) {
+ if (!empty($groups)) {
+ foreach ($groups as $key => $group) {
+ if (!\OC_SubAdmin::isGroupAccessible($this->userSession->getUser()->getUID(), $group)) {
+ unset($groups[$key]);
+ }
+ }
+ }
+ if (empty($groups)) {
+ $groups = \OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID());
+ }
+ }
+
+ try {
+ $user = $this->userManager->createUser($username, $password);
+ } catch (\Exception $exception) {
+ return new DataResponse(
+ array(
+ 'message' => (string)$this->l10n->t('Unable to create user.')
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+ if($user instanceof User) {
+ foreach( $groups as $groupName ) {
+ $group = $this->groupManager->get($groupName);
+
+ if(empty($group)) {
+ $group = $this->groupManager->createGroup($groupName);
+ }
+ $group->addUser($user);
+ }
+ }
+
+ return new DataResponse(
+ array(
+ 'username' => $username,
+ 'groups' => $this->groupManager->getUserGroupIds($user),
+ 'storageLocation' => $user->getHome(),
+ 'backend' => $user->getBackendClassName()
+ ),
+ Http::STATUS_CREATED
+ );
+
+ }
+
+ /**
+ * @NoAdminRequired
+ *
+ * @param string $id
+ * @return DataResponse
+ *
+ * TODO: Tidy up and write unit tests - code is mainly static method calls
+ */
+ public function destroy($id) {
+ if($this->userSession->getUser()->getUID() === $id) {
+ return new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => (string)$this->l10n->t('Unable to delete user.')
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+ // FIXME: Remove this static function call at some point…
+ if(!$this->isAdmin && !\OC_SubAdmin::isUserAccessible($this->userSession->getUser()->getUID(), $id)) {
+ return new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => (string)$this->l10n->t('Authentication error')
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+ $user = $this->userManager->get($id);
+ if($user) {
+ if($user->delete()) {
+ return new DataResponse(
+ array(
+ 'status' => 'success',
+ 'data' => array(
+ 'username' => $id
+ )
+ ),
+ Http::STATUS_NO_CONTENT
+ );
+ }
+ }
+
+ return new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => (string)$this->l10n->t('Unable to delete user.')
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ }
+
+}
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 4594a22c6d0..fa699e50a4b 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -94,8 +94,11 @@ td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidde
td.password, td.quota, td.displayName { width:12em; cursor:pointer; }
td.password>span, td.quota>span, rd.displayName>span { margin-right: 1.2em; color: #C7C7C7; }
span.usersLastLoginTooltip { white-space: nowrap; }
-th#headerLastLogin, td.lastLogin { display : none; }
-th#headerStorageLocation, td.storageLocation { display : none; }
+#userlist .storageLocation,
+#userlist .userBackend,
+#userlist .lastLogin {
+ display : none;
+}
td.remove { width:1em; padding-right:1em; }
tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; }
diff --git a/settings/js/settings.js b/settings/js/settings.js
index 13c56a8f53a..e98bd2cc895 100644
--- a/settings/js/settings.js
+++ b/settings/js/settings.js
@@ -41,7 +41,7 @@ OC.Settings = _.extend(OC.Settings, {
};
}
$.ajax({
- url: OC.generateUrl('/settings/ajax/grouplist'),
+ url: OC.generateUrl('/settings/users/groups'),
data: queryData,
dataType: 'json',
success: function(data) {
diff --git a/settings/js/users/deleteHandler.js b/settings/js/users/deleteHandler.js
index c89a844044e..942bae91cd3 100644
--- a/settings/js/users/deleteHandler.js
+++ b/settings/js/users/deleteHandler.js
@@ -189,11 +189,10 @@ DeleteHandler.prototype.deleteEntry = function(keepNotification) {
var payload = {};
payload[dh.ajaxParamID] = dh.oidToDelete;
$.ajax({
- type: 'POST',
- url: OC.filePath('settings', 'ajax', dh.ajaxEndpoint),
+ type: 'DELETE',
+ url: OC.generateUrl(dh.ajaxEndpoint+'/'+this.oidToDelete),
// FIXME: do not use synchronous ajax calls as they block the browser !
async: false,
- data: payload,
success: function (result) {
if (result.status === 'success') {
// Remove undo option, & remove user from table
diff --git a/settings/js/users/filter.js b/settings/js/users/filter.js
index c5944e9b4b1..72f2cfc6d24 100644
--- a/settings/js/users/filter.js
+++ b/settings/js/users/filter.js
@@ -70,7 +70,14 @@ UserManagementFilter.prototype.run = _.debounce(function() {
* @returns string
*/
UserManagementFilter.prototype.getPattern = function() {
- return this.filterInput.val();
+ var input = this.filterInput.val(),
+ html = $('html'),
+ isIE8or9 = html.hasClass('lte9');
+ // FIXME - TODO - once support for IE8 and IE9 is dropped
+ if(isIE8or9 && input == this.filterInput.attr('placeholder')) {
+ input = '';
+ }
+ return input;
};
/**
diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index 081842734f0..c06bc5ff14b 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -84,29 +84,24 @@ GroupList = {
createGroup: function (groupname) {
$.post(
- OC.filePath('settings', 'ajax', 'creategroup.php'),
+ OC.generateUrl('/settings/users/groups'),
{
- groupname: groupname
+ id: groupname
},
function (result) {
- if (result.status !== 'success') {
- OC.dialogs.alert(result.data.message,
- t('settings', 'Error creating group'));
+ if (result.groupname) {
+ var addedGroup = result.groupname;
+ UserList.availableGroups = $.unique($.merge(UserList.availableGroups, [addedGroup]));
+ GroupList.addGroup(result.groupname);
+
+ $('.groupsselect, .subadminsselect')
+ .append($('<option>', { value: result.groupname })
+ .text(result.groupname));
}
- else {
- if (result.data.groupname) {
- var addedGroup = result.data.groupname;
- UserList.availableGroups = $.unique($.merge(UserList.availableGroups, [addedGroup]));
- GroupList.addGroup(result.data.groupname);
-
- $('.groupsselect, .subadminsselect')
- .append($('<option>', { value: result.data.groupname })
- .text(result.data.groupname));
- }
- GroupList.toggleAddGroup();
- }
- }
- );
+ GroupList.toggleAddGroup();
+ }).fail(function(result, textStatus, errorThrown) {
+ OC.dialogs.alert(result.responseJSON.message, t('settings', 'Error creating group'));
+ });
},
update: function () {
@@ -115,7 +110,7 @@ GroupList = {
}
GroupList.updating = true;
$.get(
- OC.generateUrl('/settings/ajax/grouplist'),
+ OC.generateUrl('/settings/users/groups'),
{
pattern: filter.getPattern(),
filterGroups: filter.filterGroups ? 1 : 0
@@ -221,7 +216,7 @@ GroupList = {
},
initDeleteHandling: function () {
//set up handler
- GroupDeleteHandler = new DeleteHandler('removegroup.php', 'groupname',
+ GroupDeleteHandler = new DeleteHandler('/settings/users/groups', 'groupname',
GroupList.hide, GroupList.remove);
//configure undo
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 5e0c0cac189..62e18d1be04 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -12,9 +12,7 @@ var filter;
var UserList = {
availableGroups: [],
- offset: 30, //The first 30 users are there. No prob, if less in total.
- //hardcoded in settings/users.php
-
+ offset: 0,
usersToLoad: 10, //So many users will be loaded when user scrolls down
currentGid: '',
@@ -30,20 +28,33 @@ var UserList = {
this.$el.find('.quota-user').singleSelect().on('change', this.onQuotaSelect);
},
- add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort) {
+ add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort, backend) {
var $tr = $userListBody.find('tr:first-child').clone();
+ // this removes just the `display:none` of the template row
+ $tr.removeAttr('style');
var subAdminsEl;
var subAdminSelect;
var groupsSelect;
+
+ /**
+ * Avatar or placeholder
+ */
if ($tr.find('div.avatardiv').length){
$tr.find('.avatardiv').imageplaceholder(username, displayname);
$('div.avatardiv', $tr).avatar(username, 32);
}
+
+ /**
+ * add username and displayname to row (in data and visible markup
+ */
$tr.data('uid', username);
$tr.data('displayname', displayname);
$tr.find('td.name').text(username);
$tr.find('td.displayName > span').text(displayname);
+ /**
+ * groups and subadmins
+ */
// make them look like the multiselect buttons
// until they get time to really get initialized
groupsSelect = $('<select multiple="multiple" class="groupsselect multiselect button" data-placehoder="Groups" title="' + t('settings', 'no group') + '"></select>')
@@ -67,6 +78,10 @@ var UserList = {
if (subAdminsEl.length > 0) {
subAdminsEl.append(subAdminSelect);
}
+
+ /**
+ * remove action
+ */
if ($tr.find('td.remove img').length === 0 && OC.currentUser !== username) {
var deleteImage = $('<img class="svg action">').attr({
src: OC.imagePath('core', 'actions/delete')
@@ -78,6 +93,10 @@ var UserList = {
} else if (OC.currentUser === username) {
$tr.find('td.remove a').remove();
}
+
+ /**
+ * quota
+ */
var $quotaSelect = $tr.find('.quota-user');
if (quota === 'default') {
$quotaSelect
@@ -91,8 +110,20 @@ var UserList = {
$quotaSelect.append('<option value="' + escapeHTML(quota) + '" selected="selected">' + escapeHTML(quota) + '</option>');
}
}
+
+ /**
+ * storage location
+ */
$tr.find('td.storageLocation').text(storageLocation);
+ /**
+ * user backend
+ */
+ $tr.find('td.userBackend').text(backend);
+
+ /**
+ * last login
+ */
var lastLoginRel = t('settings', 'never');
var lastLoginAbs = lastLoginRel;
if(lastLogin !== 0) {
@@ -107,6 +138,10 @@ var UserList = {
var tooltip = $('<div>').html($($tdLastLogin.attr('original-title')).text(lastLoginAbs)).html();
$tdLastLogin.tipsy({gravity:'s', fade:true, html:true});
$tdLastLogin.attr('title', tooltip);
+
+ /**
+ * append generated row to user list
+ */
$tr.appendTo($userList);
if(UserList.isEmpty === true) {
//when the list was emptied, one row was left, necessary to keep
@@ -116,6 +151,10 @@ var UserList = {
UserList.isEmpty = false;
UserList.checkUsersToLoad();
}
+
+ /**
+ * sort list
+ */
if (sort) {
UserList.doSort();
}
@@ -292,7 +331,7 @@ var UserList = {
},
initDeleteHandling: function() {
//set up handler
- UserDeleteHandler = new DeleteHandler('removeuser.php', 'username',
+ UserDeleteHandler = new DeleteHandler('/settings/users/users', 'username',
UserList.markRemove, UserList.remove);
//configure undo
@@ -326,40 +365,39 @@ var UserList = {
UserList.currentGid = gid;
var pattern = filter.getPattern();
$.get(
- OC.generateUrl('/settings/ajax/userlist'),
+ OC.generateUrl('/settings/users/users'),
{ offset: UserList.offset, limit: UserList.usersToLoad, gid: gid, pattern: pattern },
function (result) {
var loadedUsers = 0;
var trs = [];
- if (result.status === 'success') {
- //The offset does not mirror the amount of users available,
- //because it is backend-dependent. For correct retrieval,
- //always the limit(requested amount of users) needs to be added.
- $.each(result.data, function (index, user) {
- if(UserList.has(user.name)) {
- return true;
- }
- var $tr = UserList.add(user.name, user.displayname, user.groups, user.subadmin, user.quota, user.storageLocation, user.lastLogin, false);
- $tr.addClass('appear transparent');
- trs.push($tr);
- loadedUsers++;
- });
- if (result.data.length > 0) {
- UserList.doSort();
- $userList.siblings('.loading').css('visibility', 'hidden');
- }
- else {
- UserList.noMoreEntries = true;
- $userList.siblings('.loading').remove();
+ //The offset does not mirror the amount of users available,
+ //because it is backend-dependent. For correct retrieval,
+ //always the limit(requested amount of users) needs to be added.
+ $.each(result, function (index, user) {
+ if(UserList.has(user.name)) {
+ return true;
}
- UserList.offset += loadedUsers;
- // animate
- setTimeout(function() {
- for (var i = 0; i < trs.length; i++) {
- trs[i].removeClass('transparent');
- }
- }, 0);
+ var $tr = UserList.add(user.name, user.displayname, user.groups, user.subadmin, user.quota, user.storageLocation, user.lastLogin, false, user.backend);
+ $tr.addClass('appear transparent');
+ trs.push($tr);
+ loadedUsers++;
+ });
+ if (result.length > 0) {
+ UserList.doSort();
+ $userList.siblings('.loading').css('visibility', 'hidden');
+ }
+ else {
+ UserList.noMoreEntries = true;
+ $userList.siblings('.loading').remove();
}
+ UserList.offset += loadedUsers;
+ // animate
+ setTimeout(function() {
+ for (var i = 0; i < trs.length; i++) {
+ trs[i].removeClass('transparent');
+ }
+ }, 0);
+ }).always(function() {
UserList.updating = false;
});
},
@@ -667,72 +705,72 @@ $(document).ready(function () {
var groups = $('#newusergroups').val();
$('#newuser').get(0).reset();
$.post(
- OC.filePath('settings', 'ajax', 'createuser.php'),
+ OC.generateUrl('/settings/users/users'),
{
username: username,
password: password,
groups: groups
},
function (result) {
- if (result.status !== 'success') {
- OC.dialogs.alert(result.data.message,
- t('settings', 'Error creating user'));
- } else {
- if (result.data.groups) {
- var addedGroups = result.data.groups;
- for (var i in result.data.groups) {
- var gid = result.data.groups[i];
- if(UserList.availableGroups.indexOf(gid) === -1) {
- UserList.availableGroups.push(gid);
- }
- $li = GroupList.getGroupLI(gid);
- userCount = GroupList.getUserCount($li);
- GroupList.setUserCount($li, userCount + 1);
- }
- }
- if (result.data.homeExists){
- OC.Notification.hide();
- OC.Notification.show(t('settings', 'Warning: Home directory for user "{user}" already exists', {user: result.data.username}));
- if (UserList.notificationTimeout){
- window.clearTimeout(UserList.notificationTimeout);
+ if (result.groups) {
+ for (var i in result.groups) {
+ var gid = result.groups[i];
+ if(UserList.availableGroups.indexOf(gid) === -1) {
+ UserList.availableGroups.push(gid);
}
- UserList.notificationTimeout = window.setTimeout(
- function(){
- OC.Notification.hide();
- UserList.notificationTimeout = null;
- }, 10000);
+ $li = GroupList.getGroupLI(gid);
+ userCount = GroupList.getUserCount($li);
+ GroupList.setUserCount($li, userCount + 1);
}
- if(!UserList.has(username)) {
- UserList.add(username, username, result.data.groups, null, 'default', result.data.storageLocation, 0, true);
+ }
+ if (result.homeExists){
+ OC.Notification.hide();
+ OC.Notification.show(t('settings', 'Warning: Home directory for user "{user}" already exists', {user: result.username}));
+ if (UserList.notificationTimeout){
+ window.clearTimeout(UserList.notificationTimeout);
}
- $('#newusername').focus();
- GroupList.incEveryoneCount();
+ UserList.notificationTimeout = window.setTimeout(
+ function(){
+ OC.Notification.hide();
+ UserList.notificationTimeout = null;
+ }, 10000);
}
- }
- );
+ if(!UserList.has(username)) {
+ UserList.add(username, username, result.groups, null, 'default', result.storageLocation, 0, true, result.backend);
+ }
+ $('#newusername').focus();
+ GroupList.incEveryoneCount();
+ }).fail(function(result, textStatus, errorThrown) {
+ OC.dialogs.alert(result.responseJSON.message, t('settings', 'Error creating user'));
+ });
});
// Option to display/hide the "Storage location" column
$('#CheckboxStorageLocation').click(function() {
if ($('#CheckboxStorageLocation').is(':checked')) {
- $("#headerStorageLocation").show();
- $("#userlist td.storageLocation").show();
+ $("#userlist .storageLocation").show();
} else {
- $("#headerStorageLocation").hide();
- $("#userlist td.storageLocation").hide();
+ $("#userlist .storageLocation").hide();
}
});
// Option to display/hide the "Last Login" column
$('#CheckboxLastLogin').click(function() {
if ($('#CheckboxLastLogin').is(':checked')) {
- $("#headerLastLogin").show();
- $("#userlist td.lastLogin").show();
+ $("#userlist .lastLogin").show();
} else {
- $("#headerLastLogin").hide();
- $("#userlist td.lastLogin").hide();
+ $("#userlist .lastLogin").hide();
+ }
+ });
+ // Option to display/hide the "Last Login" column
+ $('#CheckboxUserBackend').click(function() {
+ if ($('#CheckboxUserBackend').is(':checked')) {
+ $("#userlist .userBackend").show();
+ } else {
+ $("#userlist .userBackend").hide();
}
});
-
+ // trigger loading of users on startup
+ UserList.update(UserList.currentGid);
});
diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js
index f3e4d498cbd..61173b62149 100644
--- a/settings/l10n/ar.js
+++ b/settings/l10n/ar.js
@@ -9,12 +9,8 @@ OC.L10N.register(
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
"Your full name has been changed." : "اسمك الكامل تم تغييره.",
"Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
- "Group already exists" : "المجموعة موجودة مسبقاً",
- "Unable to add group" : "فشل إضافة المجموعة",
"Email saved" : "تم حفظ البريد الإلكتروني",
"Invalid email" : "البريد الإلكتروني غير صالح",
- "Unable to delete group" : "فشل إزالة المجموعة",
- "Unable to delete user" : "فشل إزالة المستخدم",
"Backups restored successfully" : "تم إسترجاع النسخة الإحتياطية بنجاح",
"Language changed" : "تم تغيير اللغة",
"Invalid request" : "طلب غير مفهوم",
@@ -72,7 +68,6 @@ OC.L10N.register(
"Login" : "تسجيل الدخول",
"Security Warning" : "تحذير أمان",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "انت تستخدم %s عن طريق HTTP . نحن نقترح باصرار ان تهيء الخادم ليتمكن من الوصول عن طريق HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
"Setup Warning" : "تحذير في التنصيب",
"Module 'fileinfo' missing" : "الموديل 'fileinfo' مفقود",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "موديل 'fileinfo' الخاص بالـPHP مفقود . نوصي بتفعيل هذا الموديل للحصول على أفضل النتائج مع خاصية التحقق ",
diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json
index bd5171b4350..c44761e7324 100644
--- a/settings/l10n/ar.json
+++ b/settings/l10n/ar.json
@@ -7,12 +7,8 @@
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
"Your full name has been changed." : "اسمك الكامل تم تغييره.",
"Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
- "Group already exists" : "المجموعة موجودة مسبقاً",
- "Unable to add group" : "فشل إضافة المجموعة",
"Email saved" : "تم حفظ البريد الإلكتروني",
"Invalid email" : "البريد الإلكتروني غير صالح",
- "Unable to delete group" : "فشل إزالة المجموعة",
- "Unable to delete user" : "فشل إزالة المستخدم",
"Backups restored successfully" : "تم إسترجاع النسخة الإحتياطية بنجاح",
"Language changed" : "تم تغيير اللغة",
"Invalid request" : "طلب غير مفهوم",
@@ -70,7 +66,6 @@
"Login" : "تسجيل الدخول",
"Security Warning" : "تحذير أمان",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "انت تستخدم %s عن طريق HTTP . نحن نقترح باصرار ان تهيء الخادم ليتمكن من الوصول عن طريق HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
"Setup Warning" : "تحذير في التنصيب",
"Module 'fileinfo' missing" : "الموديل 'fileinfo' مفقود",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "موديل 'fileinfo' الخاص بالـPHP مفقود . نوصي بتفعيل هذا الموديل للحصول على أفضل النتائج مع خاصية التحقق ",
diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js
index 3c0e0cbd58a..187ef5e7f0a 100644
--- a/settings/l10n/ast.js
+++ b/settings/l10n/ast.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Fallu d'autenticación",
"Your full name has been changed." : "Camudóse'l nome completu.",
"Unable to change full name" : "Nun pue camudase'l nome completu",
- "Group already exists" : "El grupu yá esiste",
- "Unable to add group" : "Nun pudo amestase'l grupu",
"Files decrypted successfully" : "Descifráronse los ficheros",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nun pudieron descifrase sus ficheros. Revisa'l owncloud.log o consulta col alministrador",
"Couldn't decrypt your files, check your password and try again" : "Nun pudieron descifrase los ficheros. Revisa la contraseña ya inténtalo dempués",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
"Email saved" : "Corréu-e guardáu",
"Invalid email" : "Corréu electrónicu non válidu",
- "Unable to delete group" : "Nun pudo desaniciase'l grupu",
- "Unable to delete user" : "Nun pudo desaniciase l'usuariu",
"Backups restored successfully" : "Copia de seguridá restaurada",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron restaurase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
"Language changed" : "Camudóse la llingua",
@@ -101,7 +97,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Avisu de seguridá",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Tas ingresando a %s vía HTTP. Encamentámoste que configures el sirvidor pa solicitar HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
"Setup Warning" : "Avisu de configuración",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
@@ -127,13 +122,13 @@ OC.L10N.register(
"Allow users to share via link" : "Permitir a los usuarios compartir vía enllaz",
"Enforce password protection" : "Ameyora la proteición por contraseña.",
"Allow public uploads" : "Permitir xubes públiques",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
"Set default expiration date" : "Afitar la data d'espiración predeterminada",
"Expire after " : "Caduca dempués de",
"days" : "díes",
"Enforce expiration date" : "Facer cumplir la data de caducidá",
"Allow resharing" : "Permitir re-compartición",
"Restrict users to only share with users in their groups" : "Restrinxir a los usuarios a compartir namái con otros usuarios nos sos grupos",
- "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
"Exclude groups from sharing" : "Esclúi grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
"Enforce HTTPS" : "Forciar HTTPS",
diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json
index 2d1a48006c7..e558e69db95 100644
--- a/settings/l10n/ast.json
+++ b/settings/l10n/ast.json
@@ -7,8 +7,6 @@
"Authentication error" : "Fallu d'autenticación",
"Your full name has been changed." : "Camudóse'l nome completu.",
"Unable to change full name" : "Nun pue camudase'l nome completu",
- "Group already exists" : "El grupu yá esiste",
- "Unable to add group" : "Nun pudo amestase'l grupu",
"Files decrypted successfully" : "Descifráronse los ficheros",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nun pudieron descifrase sus ficheros. Revisa'l owncloud.log o consulta col alministrador",
"Couldn't decrypt your files, check your password and try again" : "Nun pudieron descifrase los ficheros. Revisa la contraseña ya inténtalo dempués",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
"Email saved" : "Corréu-e guardáu",
"Invalid email" : "Corréu electrónicu non válidu",
- "Unable to delete group" : "Nun pudo desaniciase'l grupu",
- "Unable to delete user" : "Nun pudo desaniciase l'usuariu",
"Backups restored successfully" : "Copia de seguridá restaurada",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron restaurase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
"Language changed" : "Camudóse la llingua",
@@ -99,7 +95,6 @@
"TLS" : "TLS",
"Security Warning" : "Avisu de seguridá",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Tas ingresando a %s vía HTTP. Encamentámoste que configures el sirvidor pa solicitar HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
"Setup Warning" : "Avisu de configuración",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
@@ -125,13 +120,13 @@
"Allow users to share via link" : "Permitir a los usuarios compartir vía enllaz",
"Enforce password protection" : "Ameyora la proteición por contraseña.",
"Allow public uploads" : "Permitir xubes públiques",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
"Set default expiration date" : "Afitar la data d'espiración predeterminada",
"Expire after " : "Caduca dempués de",
"days" : "díes",
"Enforce expiration date" : "Facer cumplir la data de caducidá",
"Allow resharing" : "Permitir re-compartición",
"Restrict users to only share with users in their groups" : "Restrinxir a los usuarios a compartir namái con otros usuarios nos sos grupos",
- "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
"Exclude groups from sharing" : "Esclúi grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
"Enforce HTTPS" : "Forciar HTTPS",
diff --git a/settings/l10n/az.js b/settings/l10n/az.js
index a1843da2ca2..edea4677552 100644
--- a/settings/l10n/az.js
+++ b/settings/l10n/az.js
@@ -4,8 +4,6 @@ OC.L10N.register(
"Authentication error" : "Təyinat metodikası",
"Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
"Unable to change full name" : "Tam adı dəyişmək olmur",
- "Group already exists" : "Qrup artıq mövcuddur",
- "Unable to add group" : "Qrupu əlavə etmək olmur",
"Files decrypted successfully" : "Fayllar uğurla deşifrə edildi",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Sizin faylları deşifrə etmək olmur, xahiş olunur owncloud.log faylını yoxlaya vəya inzibatçıya müraciət edəsiniz.",
"Couldn't decrypt your files, check your password and try again" : "Sizin faylları deşifrə etmək olmur, xahiş olunur şifrəni yoxlaya və yenidən təkrar edəsiniz.",
@@ -14,8 +12,6 @@ OC.L10N.register(
"Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
"Email saved" : "Məktub yadda saxlanıldı",
"Invalid email" : "Yalnış məktub",
- "Unable to delete group" : "Qrupu silmək olmur",
- "Unable to delete user" : "İstifadəçini silmək olmur",
"Backups restored successfully" : "Ehtiyyat nüsxələr uğurla geri qaytarıldı",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı geri qaytarmaq mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
"Language changed" : "Dil dəyişdirildi",
diff --git a/settings/l10n/az.json b/settings/l10n/az.json
index 37e8fe44761..222e8372f4c 100644
--- a/settings/l10n/az.json
+++ b/settings/l10n/az.json
@@ -2,8 +2,6 @@
"Authentication error" : "Təyinat metodikası",
"Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
"Unable to change full name" : "Tam adı dəyişmək olmur",
- "Group already exists" : "Qrup artıq mövcuddur",
- "Unable to add group" : "Qrupu əlavə etmək olmur",
"Files decrypted successfully" : "Fayllar uğurla deşifrə edildi",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Sizin faylları deşifrə etmək olmur, xahiş olunur owncloud.log faylını yoxlaya vəya inzibatçıya müraciət edəsiniz.",
"Couldn't decrypt your files, check your password and try again" : "Sizin faylları deşifrə etmək olmur, xahiş olunur şifrəni yoxlaya və yenidən təkrar edəsiniz.",
@@ -12,8 +10,6 @@
"Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
"Email saved" : "Məktub yadda saxlanıldı",
"Invalid email" : "Yalnış məktub",
- "Unable to delete group" : "Qrupu silmək olmur",
- "Unable to delete user" : "İstifadəçini silmək olmur",
"Backups restored successfully" : "Ehtiyyat nüsxələr uğurla geri qaytarıldı",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı geri qaytarmaq mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
"Language changed" : "Dil dəyişdirildi",
diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js
index 506f44c4407..85b29f50807 100644
--- a/settings/l10n/bg_BG.js
+++ b/settings/l10n/bg_BG.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Възникна проблем с идентификацията",
"Your full name has been changed." : "Пълното ти име е променено.",
"Unable to change full name" : "Неуспешна промяна на пълното име.",
- "Group already exists" : "Групата вече съществува",
- "Unable to add group" : "Неуспешно добавяне на група",
"Files decrypted successfully" : "Успешно разшифроването на файловете.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Неуспешно разшифроване на файловете ти, моля провери owncloud.log или попитай администратора.",
"Couldn't decrypt your files, check your password and try again" : "Неуспешно разшифроване на файловете ти, провери паролата си и опитай отново.",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Неуспешно премахване на приложението.",
"Email saved" : "Имейла запазен",
"Invalid email" : "Невалиден имейл",
- "Unable to delete group" : "Неуспешно изтриване на група",
- "Unable to delete user" : "Неуспешно изтриване на потребител",
"Backups restored successfully" : "Резервното копие е успешно възстановено.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно възстановяване на криптиращите ти ключове, моля провери owncloud.log или попитай администратора.",
"Language changed" : "Езикът е променен",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Предупреждение за Сигурноста",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "В момента използваш HTTP, за да посетиш %s. Силно препоръчваме да настроиш съвръра си да използва HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
"Setup Warning" : "Предупреждение за Настройките",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
@@ -117,7 +112,6 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "Това означва, че може да има проблеми с определини символи в имената на файловете.",
"URL generation in notification emails" : "Генериране на URL в имейлите за известяване",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталацията не e инсталиранa в root на домейна и използва cron, може да има проблеми с генерирането на URL. За да избегнеш тези проблеми, моля, промени \"overwritewebroot\" в config.php с webroot пътя (Препоръчително: \"%s\")",
- "Connectivity Checks" : "Проверки за свързаност",
"No problems found" : "Не са открити проблеми",
"Please double check the <a href='%s'>installation guides</a>." : "Моля, провери <a href='%s'>ръководството за инсталиране</a> отново.",
"Last cron was executed at %s." : "Последният cron се изпълни в %s.",
@@ -130,13 +124,13 @@ OC.L10N.register(
"Allow users to share via link" : "Разреши потребителите да споделят с връзка",
"Enforce password protection" : "Изискай защита с парола.",
"Allow public uploads" : "Разреши общодостъпно качване",
+ "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
"Set default expiration date" : "Заложи дата на изтичане по подразбиране",
"Expire after " : "Изтечи след",
"days" : "дена",
"Enforce expiration date" : "Изисквай дата на изтичане",
"Allow resharing" : "Разреши пресподеляне.",
"Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
- "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
"Exclude groups from sharing" : "Забрани групи да споделят",
"These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
"Enforce HTTPS" : "Изисквай HTTPS",
diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json
index 2c000622209..a59b086b9e7 100644
--- a/settings/l10n/bg_BG.json
+++ b/settings/l10n/bg_BG.json
@@ -8,8 +8,6 @@
"Authentication error" : "Възникна проблем с идентификацията",
"Your full name has been changed." : "Пълното ти име е променено.",
"Unable to change full name" : "Неуспешна промяна на пълното име.",
- "Group already exists" : "Групата вече съществува",
- "Unable to add group" : "Неуспешно добавяне на група",
"Files decrypted successfully" : "Успешно разшифроването на файловете.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Неуспешно разшифроване на файловете ти, моля провери owncloud.log или попитай администратора.",
"Couldn't decrypt your files, check your password and try again" : "Неуспешно разшифроване на файловете ти, провери паролата си и опитай отново.",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Неуспешно премахване на приложението.",
"Email saved" : "Имейла запазен",
"Invalid email" : "Невалиден имейл",
- "Unable to delete group" : "Неуспешно изтриване на група",
- "Unable to delete user" : "Неуспешно изтриване на потребител",
"Backups restored successfully" : "Резервното копие е успешно възстановено.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно възстановяване на криптиращите ти ключове, моля провери owncloud.log или попитай администратора.",
"Language changed" : "Езикът е променен",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Предупреждение за Сигурноста",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "В момента използваш HTTP, за да посетиш %s. Силно препоръчваме да настроиш съвръра си да използва HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
"Setup Warning" : "Предупреждение за Настройките",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
@@ -115,7 +110,6 @@
"This means that there might be problems with certain characters in file names." : "Това означва, че може да има проблеми с определини символи в имената на файловете.",
"URL generation in notification emails" : "Генериране на URL в имейлите за известяване",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталацията не e инсталиранa в root на домейна и използва cron, може да има проблеми с генерирането на URL. За да избегнеш тези проблеми, моля, промени \"overwritewebroot\" в config.php с webroot пътя (Препоръчително: \"%s\")",
- "Connectivity Checks" : "Проверки за свързаност",
"No problems found" : "Не са открити проблеми",
"Please double check the <a href='%s'>installation guides</a>." : "Моля, провери <a href='%s'>ръководството за инсталиране</a> отново.",
"Last cron was executed at %s." : "Последният cron се изпълни в %s.",
@@ -128,13 +122,13 @@
"Allow users to share via link" : "Разреши потребителите да споделят с връзка",
"Enforce password protection" : "Изискай защита с парола.",
"Allow public uploads" : "Разреши общодостъпно качване",
+ "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
"Set default expiration date" : "Заложи дата на изтичане по подразбиране",
"Expire after " : "Изтечи след",
"days" : "дена",
"Enforce expiration date" : "Изисквай дата на изтичане",
"Allow resharing" : "Разреши пресподеляне.",
"Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
- "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
"Exclude groups from sharing" : "Забрани групи да споделят",
"These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
"Enforce HTTPS" : "Изисквай HTTPS",
diff --git a/settings/l10n/bn_BD.js b/settings/l10n/bn_BD.js
index 8d841f08b89..23d6f94c506 100644
--- a/settings/l10n/bn_BD.js
+++ b/settings/l10n/bn_BD.js
@@ -6,14 +6,10 @@ OC.L10N.register(
"Email Server" : "ইমেইল সার্ভার",
"Authentication error" : "অনুমোদন ঘটিত সমস্যা",
"Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
- "Group already exists" : "গোষ্ঠীটি পূর্ব থেকেই বিদ্যমান",
- "Unable to add group" : "গোষ্ঠী যোগ করা সম্ভব হলো না",
"Files decrypted successfully" : "সার্থকভাবে ফাইল ডিক্রিপ্ট করা হয়েছে",
"Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
"Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
"Invalid email" : "ই-মেইলটি সঠিক নয়",
- "Unable to delete group" : "গোষ্ঠী মুছে ফেলা সম্ভব হলো না ",
- "Unable to delete user" : "ব্যবহারকারী মুছে ফেলা সম্ভব হলো না ",
"Backups restored successfully" : "ব্যাকআপ পূণঃস্থাপন সুসম্পন্ন",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "িআপনার এনক্রিপসন কি পূনর্বাসন করা গেলনা, আপনার owncloud.log পিরীক্ষা করুন বা প্রশাসককে জিজ্ঞাসা করুন",
"Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
diff --git a/settings/l10n/bn_BD.json b/settings/l10n/bn_BD.json
index 3c73fdcfd00..5f147b92a2d 100644
--- a/settings/l10n/bn_BD.json
+++ b/settings/l10n/bn_BD.json
@@ -4,14 +4,10 @@
"Email Server" : "ইমেইল সার্ভার",
"Authentication error" : "অনুমোদন ঘটিত সমস্যা",
"Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
- "Group already exists" : "গোষ্ঠীটি পূর্ব থেকেই বিদ্যমান",
- "Unable to add group" : "গোষ্ঠী যোগ করা সম্ভব হলো না",
"Files decrypted successfully" : "সার্থকভাবে ফাইল ডিক্রিপ্ট করা হয়েছে",
"Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
"Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
"Invalid email" : "ই-মেইলটি সঠিক নয়",
- "Unable to delete group" : "গোষ্ঠী মুছে ফেলা সম্ভব হলো না ",
- "Unable to delete user" : "ব্যবহারকারী মুছে ফেলা সম্ভব হলো না ",
"Backups restored successfully" : "ব্যাকআপ পূণঃস্থাপন সুসম্পন্ন",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "িআপনার এনক্রিপসন কি পূনর্বাসন করা গেলনা, আপনার owncloud.log পিরীক্ষা করুন বা প্রশাসককে জিজ্ঞাসা করুন",
"Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js
index a37af93933d..447346bf90a 100644
--- a/settings/l10n/ca.js
+++ b/settings/l10n/ca.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Error d'autenticació",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
- "Group already exists" : "El grup ja existeix",
- "Unable to add group" : "No es pot afegir el grup",
"Files decrypted successfully" : "Els fitxers s'han desencriptat amb èxit",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No es poden desencriptar els fitxers. Comproveu owncloud.log o demaneu-ho a l'administrador.",
"Couldn't decrypt your files, check your password and try again" : "No s'han pogut desencriptar els fitxers, comproveu la contrasenya i proveu-ho de nou",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
"Email saved" : "S'ha desat el correu electrònic",
"Invalid email" : "El correu electrònic no és vàlid",
- "Unable to delete group" : "No es pot eliminar el grup",
- "Unable to delete user" : "No es pot eliminar l'usuari",
"Backups restored successfully" : "Les còpies de seguretat s'han restablert correctament",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden restablir les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
"Language changed" : "S'ha canviat l'idioma",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Avís de seguretat",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Esteu accedint a %s a través de HTTP. Us recomanem fermament que configureu el servidor perquè requereixi HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
"Setup Warning" : "Avís de configuració",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
@@ -117,7 +112,6 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "Això podria comportar problemes amb alguns caràcters en els noms dels fitxer.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s",
"URL generation in notification emails" : "Generar URL en els correus de notificació",
- "Connectivity Checks" : "Verificacions de connectivitat",
"No problems found" : "No hem trovat problemes",
"Please double check the <a href='%s'>installation guides</a>." : "Comproveu les <a href='%s'>guies d'instal·lació</a>.",
"Last cron was executed at %s." : "L'últim cron s'ha executat el %s",
@@ -130,13 +124,13 @@ OC.L10N.register(
"Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
"Enforce password protection" : "Reforça la protecció amb contrasenya",
"Allow public uploads" : "Permet pujada pública",
+ "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
"Set default expiration date" : "Estableix la data de venciment",
"Expire after " : "Venciment després de",
"days" : "dies",
"Enforce expiration date" : "Força la data de venciment",
"Allow resharing" : "Permet compartir de nou",
"Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup",
- "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
"Exclude groups from sharing" : "Exclou grups de compartició",
"These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.",
"Enforce HTTPS" : "Força HTTPS",
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
index c8145ed03e2..ed4d4593e3f 100644
--- a/settings/l10n/ca.json
+++ b/settings/l10n/ca.json
@@ -8,8 +8,6 @@
"Authentication error" : "Error d'autenticació",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
- "Group already exists" : "El grup ja existeix",
- "Unable to add group" : "No es pot afegir el grup",
"Files decrypted successfully" : "Els fitxers s'han desencriptat amb èxit",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No es poden desencriptar els fitxers. Comproveu owncloud.log o demaneu-ho a l'administrador.",
"Couldn't decrypt your files, check your password and try again" : "No s'han pogut desencriptar els fitxers, comproveu la contrasenya i proveu-ho de nou",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
"Email saved" : "S'ha desat el correu electrònic",
"Invalid email" : "El correu electrònic no és vàlid",
- "Unable to delete group" : "No es pot eliminar el grup",
- "Unable to delete user" : "No es pot eliminar l'usuari",
"Backups restored successfully" : "Les còpies de seguretat s'han restablert correctament",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden restablir les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
"Language changed" : "S'ha canviat l'idioma",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Avís de seguretat",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Esteu accedint a %s a través de HTTP. Us recomanem fermament que configureu el servidor perquè requereixi HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
"Setup Warning" : "Avís de configuració",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
@@ -115,7 +110,6 @@
"This means that there might be problems with certain characters in file names." : "Això podria comportar problemes amb alguns caràcters en els noms dels fitxer.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s",
"URL generation in notification emails" : "Generar URL en els correus de notificació",
- "Connectivity Checks" : "Verificacions de connectivitat",
"No problems found" : "No hem trovat problemes",
"Please double check the <a href='%s'>installation guides</a>." : "Comproveu les <a href='%s'>guies d'instal·lació</a>.",
"Last cron was executed at %s." : "L'últim cron s'ha executat el %s",
@@ -128,13 +122,13 @@
"Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
"Enforce password protection" : "Reforça la protecció amb contrasenya",
"Allow public uploads" : "Permet pujada pública",
+ "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
"Set default expiration date" : "Estableix la data de venciment",
"Expire after " : "Venciment després de",
"days" : "dies",
"Enforce expiration date" : "Força la data de venciment",
"Allow resharing" : "Permet compartir de nou",
"Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup",
- "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
"Exclude groups from sharing" : "Exclou grups de compartició",
"These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.",
"Enforce HTTPS" : "Força HTTPS",
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index 24a7d8dc31a..8b29f9b1687 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Chyba přihlášení",
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Unable to change full name" : "Nelze změnit celé jméno",
- "Group already exists" : "Skupina již existuje",
- "Unable to add group" : "Nelze přidat skupinu",
"Files decrypted successfully" : "Soubory úspěšně dešifrovány",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nebylo možno dešifrovat soubory, zkontroluje prosím owncloud.log nebo kontaktujte svého správce systému",
"Couldn't decrypt your files, check your password and try again" : "Nebylo možno dešifrovat soubory, zkontrolujte své heslo a zkuste znovu",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
"Email saved" : "E-mail uložen",
"Invalid email" : "Neplatný e-mail",
- "Unable to delete group" : "Nelze smazat skupinu",
- "Unable to delete user" : "Nelze smazat uživatele",
"Backups restored successfully" : "Zálohy úspěšně obnoveny",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno obnovit vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
"Language changed" : "Jazyk byl změněn",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Povoleno",
"Not enabled" : "Vypnuto",
"Recommended" : "Doporučeno",
+ "Group already exists." : "Skupina již existuje.",
+ "Unable to add group." : "Nelze přidat skupinu.",
+ "Unable to delete group." : "Nelze smazat skupinu.",
"Saved" : "Uloženo",
"test email settings" : "otestovat nastavení e-mailu",
"If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento e-mail, nastavení se zdají být v pořádku.",
"A problem occurred while sending the email. Please revise your settings." : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení.",
"Email sent" : "E-mail odeslán",
"You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Unable to create user." : "Nelze vytvořit uživatele.",
+ "Unable to delete user." : "Nelze smazat uživatele.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
"Add trusted domain" : "Přidat důvěryhodnou doménu",
"Sending..." : "Odesílání...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Bezpečnostní upozornění",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Přistupujete na %s protokolem HTTP. Důrazně doporučujeme nakonfigurovat server pro použití HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
"Read-Only config enabled" : "Konfigurační soubor pouze pro čtení",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurační soubor je pouze pro čtení. Toto omezuje možnost nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do souboru ručně.",
"Setup Warning" : "Upozornění nastavení",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.",
"URL generation in notification emails" : "Generování adresy URL v oznamovacích e-mailech",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwritewebroot\" (Doporučujeme: \"%s\")",
- "Connectivity Checks" : "Ověřování připojení",
+ "Configuration Checks" : "Ověření konfigurace",
"No problems found" : "Nebyly nalezeny žádné problémy",
"Please double check the <a href='%s'>installation guides</a>." : "Zkonzultujte, prosím, <a href='%s'>průvodce instalací</a>.",
"Last cron was executed at %s." : "Poslední cron byl spuštěn v %s",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
"Enforce password protection" : "Vynutit ochranu heslem",
"Allow public uploads" : "Povolit veřejné nahrávání souborů",
+ "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
"Set default expiration date" : "Nastavit výchozí datum vypršení platnosti",
"Expire after " : "Vyprší po",
"days" : "dnech",
"Enforce expiration date" : "Vynutit datum vypršení",
"Allow resharing" : "Povolit znovu-sdílení",
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
- "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
+ "Allow users to send mail notification for shared files to other users" : "Povolit uživatelům odesílat e-mailová upozornění na sdílené soubory",
"Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
"These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možno sdílet, nemohou ale sami sdílet ostatním.",
"Enforce HTTPS" : "Vynutit HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Dokumentace:",
"User Documentation" : "Uživatelská dokumentace",
"Admin Documentation" : "Dokumentace pro administrátory",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
"Update to %s" : "Aktualizovat na %s",
"Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
"Uninstall App" : "Odinstalovat aplikaci",
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index a20d98b1b77..c55b4c06e2b 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -8,8 +8,6 @@
"Authentication error" : "Chyba přihlášení",
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Unable to change full name" : "Nelze změnit celé jméno",
- "Group already exists" : "Skupina již existuje",
- "Unable to add group" : "Nelze přidat skupinu",
"Files decrypted successfully" : "Soubory úspěšně dešifrovány",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nebylo možno dešifrovat soubory, zkontroluje prosím owncloud.log nebo kontaktujte svého správce systému",
"Couldn't decrypt your files, check your password and try again" : "Nebylo možno dešifrovat soubory, zkontrolujte své heslo a zkuste znovu",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
"Email saved" : "E-mail uložen",
"Invalid email" : "Neplatný e-mail",
- "Unable to delete group" : "Nelze smazat skupinu",
- "Unable to delete user" : "Nelze smazat uživatele",
"Backups restored successfully" : "Zálohy úspěšně obnoveny",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno obnovit vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
"Language changed" : "Jazyk byl změněn",
@@ -37,12 +33,17 @@
"Enabled" : "Povoleno",
"Not enabled" : "Vypnuto",
"Recommended" : "Doporučeno",
+ "Group already exists." : "Skupina již existuje.",
+ "Unable to add group." : "Nelze přidat skupinu.",
+ "Unable to delete group." : "Nelze smazat skupinu.",
"Saved" : "Uloženo",
"test email settings" : "otestovat nastavení e-mailu",
"If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento e-mail, nastavení se zdají být v pořádku.",
"A problem occurred while sending the email. Please revise your settings." : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení.",
"Email sent" : "E-mail odeslán",
"You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Unable to create user." : "Nelze vytvořit uživatele.",
+ "Unable to delete user." : "Nelze smazat uživatele.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
"Add trusted domain" : "Přidat důvěryhodnou doménu",
"Sending..." : "Odesílání...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Bezpečnostní upozornění",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Přistupujete na %s protokolem HTTP. Důrazně doporučujeme nakonfigurovat server pro použití HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
"Read-Only config enabled" : "Konfigurační soubor pouze pro čtení",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurační soubor je pouze pro čtení. Toto omezuje možnost nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do souboru ručně.",
"Setup Warning" : "Upozornění nastavení",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.",
"URL generation in notification emails" : "Generování adresy URL v oznamovacích e-mailech",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwritewebroot\" (Doporučujeme: \"%s\")",
- "Connectivity Checks" : "Ověřování připojení",
+ "Configuration Checks" : "Ověření konfigurace",
"No problems found" : "Nebyly nalezeny žádné problémy",
"Please double check the <a href='%s'>installation guides</a>." : "Zkonzultujte, prosím, <a href='%s'>průvodce instalací</a>.",
"Last cron was executed at %s." : "Poslední cron byl spuštěn v %s",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
"Enforce password protection" : "Vynutit ochranu heslem",
"Allow public uploads" : "Povolit veřejné nahrávání souborů",
+ "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
"Set default expiration date" : "Nastavit výchozí datum vypršení platnosti",
"Expire after " : "Vyprší po",
"days" : "dnech",
"Enforce expiration date" : "Vynutit datum vypršení",
"Allow resharing" : "Povolit znovu-sdílení",
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
- "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
+ "Allow users to send mail notification for shared files to other users" : "Povolit uživatelům odesílat e-mailová upozornění na sdílené soubory",
"Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
"These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možno sdílet, nemohou ale sami sdílet ostatním.",
"Enforce HTTPS" : "Vynutit HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Dokumentace:",
"User Documentation" : "Uživatelská dokumentace",
"Admin Documentation" : "Dokumentace pro administrátory",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
"Update to %s" : "Aktualizovat na %s",
"Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
"Uninstall App" : "Odinstalovat aplikaci",
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
index 98482027750..ad4a41979db 100644
--- a/settings/l10n/da.js
+++ b/settings/l10n/da.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Adgangsfejl",
"Your full name has been changed." : "Dit fulde navn er blevet ændret.",
"Unable to change full name" : "Ikke i stand til at ændre dit fulde navn",
- "Group already exists" : "Gruppen findes allerede",
- "Unable to add group" : "Gruppen kan ikke oprettes",
"Files decrypted successfully" : "Filer dekrypteret med succes",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dine filer kunne ikke dekrypteres. Gennemse din owncloud log eller spørg din administrator",
"Couldn't decrypt your files, check your password and try again" : "Dine filer kunne ikke dekrypteres. Check din adgangskode og forsøg igen",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Kunne ikke fjerne app'en.",
"Email saved" : "E-mailadressen er gemt",
"Invalid email" : "Ugyldig e-mailadresse",
- "Unable to delete group" : "Gruppen kan ikke slettes",
- "Unable to delete user" : "Bruger kan ikke slettes",
"Backups restored successfully" : "Genskabelsen af sikkerhedskopierne blev gennemført",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
"Language changed" : "Sprog ændret",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Aktiveret",
"Not enabled" : "Slået fra",
"Recommended" : "Anbefalet",
+ "Group already exists." : "Gruppen findes allerede.",
+ "Unable to add group." : "Kan ikke tilføje gruppen.",
+ "Unable to delete group." : "Kan ikke slette gruppen.",
"Saved" : "Gemt",
"test email settings" : "test e-mailindstillinger",
"If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.",
"A problem occurred while sending the email. Please revise your settings." : "Der opstod en fejl under afsendelse af e-mailen. Gennemse venligst dine indstillinger.",
"Email sent" : "E-mail afsendt",
"You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.",
+ "Unable to create user." : "Kan ikke oprette brugeren.",
+ "Unable to delete user." : "Kan ikke slette brugeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
"Add trusted domain" : "Tilføj et domæne som du har tillid til",
"Sending..." : "Sender...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Sikkerhedsadvarsel",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
"Read-Only config enabled" : "Skrivebeskyttet konfig. slået til",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivebeskyttede konfiguration er blevet slået til. Dette forhindrer indstillinger af nogle konfigurationer via webgrænsefladen. I tillæg skal filen gøres skrivbar manuelt for hver opdatering.",
"Setup Warning" : "Opsætnings Advarsel",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.",
"URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwritewebroot\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
- "Connectivity Checks" : "Forbindelsestjek",
+ "Configuration Checks" : "Konfigurationstjek",
"No problems found" : "Der blev ikke fundet problemer",
"Please double check the <a href='%s'>installation guides</a>." : "Dobbelttjek venligst <a href='%s'>installations vejledningerne</a>.",
"Last cron was executed at %s." : "Seneste 'cron' blev kørt %s.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Tillad brugere at dele via link",
"Enforce password protection" : "tving kodeords beskyttelse",
"Allow public uploads" : "Tillad offentlig upload",
+ "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
"Set default expiration date" : "Vælg standard udløbsdato",
"Expire after " : "Udløber efter",
"days" : "dage",
"Enforce expiration date" : "Påtving udløbsdato",
"Allow resharing" : "Tillad videredeling",
"Restrict users to only share with users in their groups" : "Begræns brugere til deling med brugere i deres gruppe",
- "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
+ "Allow users to send mail notification for shared files to other users" : "Tillader brugere at sende mailnotifikationer for delte filer til andre brugere",
"Exclude groups from sharing" : "Ekskluder grupper fra at dele",
"These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, dog ikke skabe dem.",
"Enforce HTTPS" : "Gennemtving HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Dokumentation:",
"User Documentation" : "Brugerdokumentation",
"Admin Documentation" : "Administrator Dokumentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
"Update to %s" : "Opdatér til %s",
"Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
"Uninstall App" : "Afinstallér app",
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
index 1700339c849..8861beb5b08 100644
--- a/settings/l10n/da.json
+++ b/settings/l10n/da.json
@@ -8,8 +8,6 @@
"Authentication error" : "Adgangsfejl",
"Your full name has been changed." : "Dit fulde navn er blevet ændret.",
"Unable to change full name" : "Ikke i stand til at ændre dit fulde navn",
- "Group already exists" : "Gruppen findes allerede",
- "Unable to add group" : "Gruppen kan ikke oprettes",
"Files decrypted successfully" : "Filer dekrypteret med succes",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dine filer kunne ikke dekrypteres. Gennemse din owncloud log eller spørg din administrator",
"Couldn't decrypt your files, check your password and try again" : "Dine filer kunne ikke dekrypteres. Check din adgangskode og forsøg igen",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Kunne ikke fjerne app'en.",
"Email saved" : "E-mailadressen er gemt",
"Invalid email" : "Ugyldig e-mailadresse",
- "Unable to delete group" : "Gruppen kan ikke slettes",
- "Unable to delete user" : "Bruger kan ikke slettes",
"Backups restored successfully" : "Genskabelsen af sikkerhedskopierne blev gennemført",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
"Language changed" : "Sprog ændret",
@@ -37,12 +33,17 @@
"Enabled" : "Aktiveret",
"Not enabled" : "Slået fra",
"Recommended" : "Anbefalet",
+ "Group already exists." : "Gruppen findes allerede.",
+ "Unable to add group." : "Kan ikke tilføje gruppen.",
+ "Unable to delete group." : "Kan ikke slette gruppen.",
"Saved" : "Gemt",
"test email settings" : "test e-mailindstillinger",
"If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.",
"A problem occurred while sending the email. Please revise your settings." : "Der opstod en fejl under afsendelse af e-mailen. Gennemse venligst dine indstillinger.",
"Email sent" : "E-mail afsendt",
"You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.",
+ "Unable to create user." : "Kan ikke oprette brugeren.",
+ "Unable to delete user." : "Kan ikke slette brugeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
"Add trusted domain" : "Tilføj et domæne som du har tillid til",
"Sending..." : "Sender...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Sikkerhedsadvarsel",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
"Read-Only config enabled" : "Skrivebeskyttet konfig. slået til",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivebeskyttede konfiguration er blevet slået til. Dette forhindrer indstillinger af nogle konfigurationer via webgrænsefladen. I tillæg skal filen gøres skrivbar manuelt for hver opdatering.",
"Setup Warning" : "Opsætnings Advarsel",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.",
"URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwritewebroot\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
- "Connectivity Checks" : "Forbindelsestjek",
+ "Configuration Checks" : "Konfigurationstjek",
"No problems found" : "Der blev ikke fundet problemer",
"Please double check the <a href='%s'>installation guides</a>." : "Dobbelttjek venligst <a href='%s'>installations vejledningerne</a>.",
"Last cron was executed at %s." : "Seneste 'cron' blev kørt %s.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Tillad brugere at dele via link",
"Enforce password protection" : "tving kodeords beskyttelse",
"Allow public uploads" : "Tillad offentlig upload",
+ "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
"Set default expiration date" : "Vælg standard udløbsdato",
"Expire after " : "Udløber efter",
"days" : "dage",
"Enforce expiration date" : "Påtving udløbsdato",
"Allow resharing" : "Tillad videredeling",
"Restrict users to only share with users in their groups" : "Begræns brugere til deling med brugere i deres gruppe",
- "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
+ "Allow users to send mail notification for shared files to other users" : "Tillader brugere at sende mailnotifikationer for delte filer til andre brugere",
"Exclude groups from sharing" : "Ekskluder grupper fra at dele",
"These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, dog ikke skabe dem.",
"Enforce HTTPS" : "Gennemtving HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Dokumentation:",
"User Documentation" : "Brugerdokumentation",
"Admin Documentation" : "Administrator Dokumentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
"Update to %s" : "Opdatér til %s",
"Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
"Uninstall App" : "Afinstallér app",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index ec118a742cd..16ec56a7cf8 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Fehler bei der Anmeldung",
"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",
- "Group already exists" : "Gruppe existiert bereits",
- "Unable to add group" : "Gruppe konnte nicht angelegt werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
"Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfe Dein Passwort und versuche es erneut.",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Email saved" : "E-Mail Adresse gespeichert",
"Invalid email" : "Ungültige E-Mail Adresse",
- "Unable to delete group" : "Gruppe konnte nicht gelöscht werden",
- "Unable to delete user" : "Benutzer konnte nicht gelöscht werden",
"Backups restored successfully" : "Backups erfolgreich wiederhergestellt",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
"Language changed" : "Sprache geändert",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "Group already exists." : "Gruppe existiert bereits.",
+ "Unable to add group." : "Gruppe konnte nicht angelegt werden.",
+ "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.",
"Saved" : "Gespeichert",
"test email settings" : "E-Mail-Einstellungen testen",
"If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
"Email sent" : "E-Mail wurde verschickt",
"You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Sende...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Sicherheitswarnung",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du greifst auf %s via HTTP zu. Wir empfehlen Dir dringend, Deinen Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
"Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
"Setup Warning" : "Einrichtungswarnung",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
"URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwritewebroot\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").",
- "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "Configuration Checks" : "Konfigurationsprüfungen",
"No problems found" : "Keine Probleme gefunden",
"Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfe die <a href='%s'>Installationsanleitungen</a>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Erlaube Nutzern, mithilfe von Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
"Set default expiration date" : "Setze Ablaufdatum",
"Expire after " : "Ablauf nach ",
"days" : "Tagen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaubt erneutes Teilen",
"Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
- "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "Erzwinge HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Dokumentation:",
"User Documentation" : "Dokumentation für Benutzer",
"Admin Documentation" : "Admin-Dokumentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Die App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Update to %s" : "Aktualisierung auf %s",
"Enable only for specific groups" : "Nur für spezifizierte Gruppen aktivieren",
"Uninstall App" : "App deinstallieren",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index 1a9342458bc..fc8f62c4496 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -8,8 +8,6 @@
"Authentication error" : "Fehler bei der Anmeldung",
"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",
- "Group already exists" : "Gruppe existiert bereits",
- "Unable to add group" : "Gruppe konnte nicht angelegt werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
"Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfe Dein Passwort und versuche es erneut.",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Email saved" : "E-Mail Adresse gespeichert",
"Invalid email" : "Ungültige E-Mail Adresse",
- "Unable to delete group" : "Gruppe konnte nicht gelöscht werden",
- "Unable to delete user" : "Benutzer konnte nicht gelöscht werden",
"Backups restored successfully" : "Backups erfolgreich wiederhergestellt",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
"Language changed" : "Sprache geändert",
@@ -37,12 +33,17 @@
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "Group already exists." : "Gruppe existiert bereits.",
+ "Unable to add group." : "Gruppe konnte nicht angelegt werden.",
+ "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.",
"Saved" : "Gespeichert",
"test email settings" : "E-Mail-Einstellungen testen",
"If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
"Email sent" : "E-Mail wurde verschickt",
"You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Sende...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Sicherheitswarnung",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du greifst auf %s via HTTP zu. Wir empfehlen Dir dringend, Deinen Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
"Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
"Setup Warning" : "Einrichtungswarnung",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
"URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwritewebroot\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").",
- "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "Configuration Checks" : "Konfigurationsprüfungen",
"No problems found" : "Keine Probleme gefunden",
"Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfe die <a href='%s'>Installationsanleitungen</a>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Erlaube Nutzern, mithilfe von Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
"Set default expiration date" : "Setze Ablaufdatum",
"Expire after " : "Ablauf nach ",
"days" : "Tagen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaubt erneutes Teilen",
"Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
- "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "Erzwinge HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Dokumentation:",
"User Documentation" : "Dokumentation für Benutzer",
"Admin Documentation" : "Admin-Dokumentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Die App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Update to %s" : "Aktualisierung auf %s",
"Enable only for specific groups" : "Nur für spezifizierte Gruppen aktivieren",
"Uninstall App" : "App deinstallieren",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 756e8a0d8dd..611092ba723 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Authentifizierungs-Fehler",
"Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
- "Group already exists" : "Die Gruppe existiert bereits",
- "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
"Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfen Sie Ihr Passwort und versuchen Sie es erneut.",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Email saved" : "E-Mail-Adresse gespeichert",
"Invalid email" : "Ungültige E-Mail-Adresse",
- "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
- "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
"Backups restored successfully" : "Sicherungen erfolgreich wiederhergestellt",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
"Language changed" : "Sprache geändert",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "Group already exists." : "Gruppe existiert bereits.",
+ "Unable to add group." : "Gruppe konnte nicht angelegt werden.",
+ "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.",
"Saved" : "Gespeichert",
"test email settings" : "E-Mail-Einstellungen testen",
"If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
"Email sent" : "E-Mail gesendet",
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Wird gesendet …",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Sicherheitshinweis",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sie greifen auf %s via HTTP zu. Wir empfehlen Ihnen dringend, Ihren Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
"Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
"Setup Warning" : "Einrichtungswarnung",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
"URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis Ihrer Installation (Vorschlag: »%s«).",
- "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "Configuration Checks" : "Konfigurationsprüfungen",
"No problems found" : "Keine Probleme gefunden",
"Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Benutzern erlauben, über Links Inhalte freizugeben",
"Enforce password protection" : "Passwortschutz erzwingen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
"Set default expiration date" : "Standardablaufdatum einstellen",
"Expire after " : "Ablauf nach ",
"days" : "Tagen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaube Weiterverteilen",
"Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
- "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "HTTPS erzwingen",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Dokumentation:",
"User Documentation" : "Dokumentation für Benutzer",
"Admin Documentation" : "Dokumentation für Administratoren",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Update to %s" : "Aktualisierung auf %s",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
"Uninstall App" : "App deinstallieren",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index f28a3bafd21..6be5a21ffc4 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -8,8 +8,6 @@
"Authentication error" : "Authentifizierungs-Fehler",
"Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
- "Group already exists" : "Die Gruppe existiert bereits",
- "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
"Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
"Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfen Sie Ihr Passwort und versuchen Sie es erneut.",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Email saved" : "E-Mail-Adresse gespeichert",
"Invalid email" : "Ungültige E-Mail-Adresse",
- "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
- "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
"Backups restored successfully" : "Sicherungen erfolgreich wiederhergestellt",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
"Language changed" : "Sprache geändert",
@@ -37,12 +33,17 @@
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "Group already exists." : "Gruppe existiert bereits.",
+ "Unable to add group." : "Gruppe konnte nicht angelegt werden.",
+ "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.",
"Saved" : "Gespeichert",
"test email settings" : "E-Mail-Einstellungen testen",
"If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
"Email sent" : "E-Mail gesendet",
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Wird gesendet …",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Sicherheitshinweis",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sie greifen auf %s via HTTP zu. Wir empfehlen Ihnen dringend, Ihren Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
"Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
"Setup Warning" : "Einrichtungswarnung",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
"URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis Ihrer Installation (Vorschlag: »%s«).",
- "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "Configuration Checks" : "Konfigurationsprüfungen",
"No problems found" : "Keine Probleme gefunden",
"Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Benutzern erlauben, über Links Inhalte freizugeben",
"Enforce password protection" : "Passwortschutz erzwingen",
"Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
"Set default expiration date" : "Standardablaufdatum einstellen",
"Expire after " : "Ablauf nach ",
"days" : "Tagen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaube Weiterverteilen",
"Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
- "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "HTTPS erzwingen",
@@ -171,6 +172,7 @@
"Documentation:" : "Dokumentation:",
"User Documentation" : "Dokumentation für Benutzer",
"Admin Documentation" : "Dokumentation für Administratoren",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Update to %s" : "Aktualisierung auf %s",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
"Uninstall App" : "App deinstallieren",
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index 545b39b7687..3e00b0984d7 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Σφάλμα πιστοποίησης",
"Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.",
"Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας",
- "Group already exists" : "Η ομάδα υπάρχει ήδη",
- "Unable to add group" : "Αδυναμία προσθήκης ομάδας",
"Files decrypted successfully" : "Τα αρχεία αποκρυπτογραφήθηκαν με επιτυχία",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων, παρακαλώ ελέγξτε το owncloud.log ή ενημερωθείτε από τον διαχειριστή συστημάτων σας",
"Couldn't decrypt your files, check your password and try again" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων σας, ελέγξτε τον κωδικό πρόσβασής σας και δοκιμάστε πάλι",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
"Email saved" : "Το email αποθηκεύτηκε ",
"Invalid email" : "Μη έγκυρο email",
- "Unable to delete group" : "Αδυναμία διαγραφής ομάδας",
- "Unable to delete user" : "Αδυναμία διαγραφής χρήστη",
"Backups restored successfully" : "Η επαναφορά αντιγράφων ασφαλείας έγινε με επιτυχία",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η επαναφορά των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
"Language changed" : "Η γλώσσα άλλαξε",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Προειδοποίηση Ασφαλείας",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
"Setup Warning" : "Ρύθμιση Προειδοποίησης",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
@@ -129,13 +124,13 @@ OC.L10N.register(
"Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
"Enforce password protection" : "Επιβολή προστασίας με κωδικό",
"Allow public uploads" : "Επιτρέπεται το κοινόχρηστο ανέβασμα",
+ "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
"Set default expiration date" : "Ορισμός ερήμην ημερομηνίας λήξης",
"Expire after " : "Λήξη μετά από",
"days" : "ημέρες",
"Enforce expiration date" : "Επιβολή της ημερομηνίας λήξης",
"Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
"Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
- "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
"Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
"These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
"Enforce HTTPS" : "Επιβολή χρήσης HTTPS",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index 7ac46e926d0..d25d7fd0345 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -8,8 +8,6 @@
"Authentication error" : "Σφάλμα πιστοποίησης",
"Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.",
"Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας",
- "Group already exists" : "Η ομάδα υπάρχει ήδη",
- "Unable to add group" : "Αδυναμία προσθήκης ομάδας",
"Files decrypted successfully" : "Τα αρχεία αποκρυπτογραφήθηκαν με επιτυχία",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων, παρακαλώ ελέγξτε το owncloud.log ή ενημερωθείτε από τον διαχειριστή συστημάτων σας",
"Couldn't decrypt your files, check your password and try again" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων σας, ελέγξτε τον κωδικό πρόσβασής σας και δοκιμάστε πάλι",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
"Email saved" : "Το email αποθηκεύτηκε ",
"Invalid email" : "Μη έγκυρο email",
- "Unable to delete group" : "Αδυναμία διαγραφής ομάδας",
- "Unable to delete user" : "Αδυναμία διαγραφής χρήστη",
"Backups restored successfully" : "Η επαναφορά αντιγράφων ασφαλείας έγινε με επιτυχία",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η επαναφορά των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
"Language changed" : "Η γλώσσα άλλαξε",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Προειδοποίηση Ασφαλείας",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
"Setup Warning" : "Ρύθμιση Προειδοποίησης",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
@@ -127,13 +122,13 @@
"Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
"Enforce password protection" : "Επιβολή προστασίας με κωδικό",
"Allow public uploads" : "Επιτρέπεται το κοινόχρηστο ανέβασμα",
+ "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
"Set default expiration date" : "Ορισμός ερήμην ημερομηνίας λήξης",
"Expire after " : "Λήξη μετά από",
"days" : "ημέρες",
"Enforce expiration date" : "Επιβολή της ημερομηνίας λήξης",
"Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
"Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
- "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
"Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
"These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
"Enforce HTTPS" : "Επιβολή χρήσης HTTPS",
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index 321d42c58c6..e318a10079b 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Authentication error",
"Your full name has been changed." : "Your full name has been changed.",
"Unable to change full name" : "Unable to change full name",
- "Group already exists" : "Group already exists",
- "Unable to add group" : "Unable to add group",
"Files decrypted successfully" : "Files decrypted successfully",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Couldn't decrypt your files, please check your owncloud.log or ask your administrator",
"Couldn't decrypt your files, check your password and try again" : "Couldn't decrypt your files, check your password and try again",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Couldn't remove app.",
"Email saved" : "Email saved",
"Invalid email" : "Invalid email",
- "Unable to delete group" : "Unable to delete group",
- "Unable to delete user" : "Unable to delete user",
"Backups restored successfully" : "Backups restored successfully",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator",
"Language changed" : "Language changed",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Enabled",
"Not enabled" : "Not enabled",
"Recommended" : "Recommended",
+ "Group already exists." : "Group already exists.",
+ "Unable to add group." : "Unable to add group.",
+ "Unable to delete group." : "Unable to delete group.",
"Saved" : "Saved",
"test email settings" : "test email settings",
"If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.",
"A problem occurred while sending the email. Please revise your settings." : "A problem occurred whilst sending the email. Please revise your settings.",
"Email sent" : "Email sent",
"You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.",
+ "Unable to create user." : "Unable to create user.",
+ "Unable to delete user." : "Unable to delete user.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
"Add trusted domain" : "Add trusted domain",
"Sending..." : "Sending...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Security Warning",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
"Read-Only config enabled" : "Read-Only config enabled",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.",
"Setup Warning" : "Setup Warning",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.",
"URL generation in notification emails" : "URL generation in notification emails",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")",
- "Connectivity Checks" : "Connectivity Checks",
+ "Configuration Checks" : "Configuration Checks",
"No problems found" : "No problems found",
"Please double check the <a href='%s'>installation guides</a>." : "Please double check the <a href='%s'>installation guides</a>.",
"Last cron was executed at %s." : "Last cron was executed at %s.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Allow users to share via link",
"Enforce password protection" : "Enforce password protection",
"Allow public uploads" : "Allow public uploads",
+ "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
"Set default expiration date" : "Set default expiry date",
"Expire after " : "Expire after ",
"days" : "days",
"Enforce expiration date" : "Enforce expiry date",
"Allow resharing" : "Allow resharing",
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
- "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
+ "Allow users to send mail notification for shared files to other users" : "Allow users to send email notification for shared files to other users",
"Exclude groups from sharing" : "Exclude groups from sharing",
"These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
"Enforce HTTPS" : "Enforce HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Documentation:",
"User Documentation" : "User Documentation",
"Admin Documentation" : "Admin Documentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
"Update to %s" : "Update to %s",
"Enable only for specific groups" : "Enable only for specific groups",
"Uninstall App" : "Uninstall App",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index ded988671e0..fde7897451a 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -8,8 +8,6 @@
"Authentication error" : "Authentication error",
"Your full name has been changed." : "Your full name has been changed.",
"Unable to change full name" : "Unable to change full name",
- "Group already exists" : "Group already exists",
- "Unable to add group" : "Unable to add group",
"Files decrypted successfully" : "Files decrypted successfully",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Couldn't decrypt your files, please check your owncloud.log or ask your administrator",
"Couldn't decrypt your files, check your password and try again" : "Couldn't decrypt your files, check your password and try again",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Couldn't remove app.",
"Email saved" : "Email saved",
"Invalid email" : "Invalid email",
- "Unable to delete group" : "Unable to delete group",
- "Unable to delete user" : "Unable to delete user",
"Backups restored successfully" : "Backups restored successfully",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator",
"Language changed" : "Language changed",
@@ -37,12 +33,17 @@
"Enabled" : "Enabled",
"Not enabled" : "Not enabled",
"Recommended" : "Recommended",
+ "Group already exists." : "Group already exists.",
+ "Unable to add group." : "Unable to add group.",
+ "Unable to delete group." : "Unable to delete group.",
"Saved" : "Saved",
"test email settings" : "test email settings",
"If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.",
"A problem occurred while sending the email. Please revise your settings." : "A problem occurred whilst sending the email. Please revise your settings.",
"Email sent" : "Email sent",
"You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.",
+ "Unable to create user." : "Unable to create user.",
+ "Unable to delete user." : "Unable to delete user.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
"Add trusted domain" : "Add trusted domain",
"Sending..." : "Sending...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Security Warning",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
"Read-Only config enabled" : "Read-Only config enabled",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.",
"Setup Warning" : "Setup Warning",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.",
"URL generation in notification emails" : "URL generation in notification emails",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")",
- "Connectivity Checks" : "Connectivity Checks",
+ "Configuration Checks" : "Configuration Checks",
"No problems found" : "No problems found",
"Please double check the <a href='%s'>installation guides</a>." : "Please double check the <a href='%s'>installation guides</a>.",
"Last cron was executed at %s." : "Last cron was executed at %s.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Allow users to share via link",
"Enforce password protection" : "Enforce password protection",
"Allow public uploads" : "Allow public uploads",
+ "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
"Set default expiration date" : "Set default expiry date",
"Expire after " : "Expire after ",
"days" : "days",
"Enforce expiration date" : "Enforce expiry date",
"Allow resharing" : "Allow resharing",
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
- "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
+ "Allow users to send mail notification for shared files to other users" : "Allow users to send email notification for shared files to other users",
"Exclude groups from sharing" : "Exclude groups from sharing",
"These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
"Enforce HTTPS" : "Enforce HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Documentation:",
"User Documentation" : "User Documentation",
"Admin Documentation" : "Admin Documentation",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
"Update to %s" : "Update to %s",
"Enable only for specific groups" : "Enable only for specific groups",
"Uninstall App" : "Uninstall App",
diff --git a/settings/l10n/eo.js b/settings/l10n/eo.js
index ff757ce143c..3e9c7b19e6f 100644
--- a/settings/l10n/eo.js
+++ b/settings/l10n/eo.js
@@ -9,14 +9,10 @@ OC.L10N.register(
"Authentication error" : "Aŭtentiga eraro",
"Your full name has been changed." : "Via plena nomo ŝanĝitas.",
"Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
- "Group already exists" : "La grupo jam ekzistas",
- "Unable to add group" : "Ne eblis aldoni la grupon",
"Files decrypted successfully" : "La dosieroj malĉifriĝis sukcese",
"Encryption keys deleted permanently" : "La ĉifroklavojn foriĝis por ĉiam.",
"Email saved" : "La retpoŝtadreso konserviĝis",
"Invalid email" : "Nevalida retpoŝtadreso",
- "Unable to delete group" : "Ne eblis forigi la grupon",
- "Unable to delete user" : "Ne eblis forigi la uzanton",
"Backups restored successfully" : "La savokopioj restaŭriĝis sukcese",
"Language changed" : "La lingvo estas ŝanĝita",
"Invalid request" : "Nevalida peto",
diff --git a/settings/l10n/eo.json b/settings/l10n/eo.json
index 35af2f7f22f..41facf15927 100644
--- a/settings/l10n/eo.json
+++ b/settings/l10n/eo.json
@@ -7,14 +7,10 @@
"Authentication error" : "Aŭtentiga eraro",
"Your full name has been changed." : "Via plena nomo ŝanĝitas.",
"Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
- "Group already exists" : "La grupo jam ekzistas",
- "Unable to add group" : "Ne eblis aldoni la grupon",
"Files decrypted successfully" : "La dosieroj malĉifriĝis sukcese",
"Encryption keys deleted permanently" : "La ĉifroklavojn foriĝis por ĉiam.",
"Email saved" : "La retpoŝtadreso konserviĝis",
"Invalid email" : "Nevalida retpoŝtadreso",
- "Unable to delete group" : "Ne eblis forigi la grupon",
- "Unable to delete user" : "Ne eblis forigi la uzanton",
"Backups restored successfully" : "La savokopioj restaŭriĝis sukcese",
"Language changed" : "La lingvo estas ŝanĝita",
"Invalid request" : "Nevalida peto",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index 10f19a54063..069466d7840 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Error de autenticación",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No se pudo añadir el grupo",
"Files decrypted successfully" : "Los archivos fueron descifrados",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No se pudo descifrar sus archivos. Revise el owncloud.log o consulte con su administrador",
"Couldn't decrypt your files, check your password and try again" : "No se pudo descifrar sus archivos. Revise su contraseña e inténtelo de nuevo",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "No se pudo eliminar la aplicación.",
"Email saved" : "Correo electrónico guardado",
"Invalid email" : "Correo electrónico no válido",
- "Unable to delete group" : "No se pudo eliminar el grupo",
- "Unable to delete user" : "No se pudo eliminar el usuario",
"Backups restored successfully" : "Copia de seguridad restaurada",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron restarurar sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
"Language changed" : "Idioma cambiado",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Habilitado",
"Not enabled" : "No habilitado",
"Recommended" : "Recomendado",
+ "Group already exists." : "El grupo ya existe.",
+ "Unable to add group." : "No se pudo agregar el grupo.",
+ "Unable to delete group." : "No se pudo eliminar el grupo.",
"Saved" : "Guardado",
"test email settings" : "probar configuración de correo electrónico",
"If you received this email, the settings seem to be correct." : "Si recibió este mensaje de correo electrónico, su configuración debe estar correcta.",
"A problem occurred while sending the email. Please revise your settings." : "Ocurrió un problema al mandar el mensaje. Revise la configuración.",
"Email sent" : "Correo electrónico enviado",
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
+ "Unable to create user." : "No se pudo crear el usuario.",
+ "Unable to delete user." : "No se pudo eliminar el usuario.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
"Sending..." : "Enviando...",
@@ -75,7 +76,7 @@ OC.L10N.register(
"Unable to delete {objName}" : "No es posible eliminar {objName}",
"Error creating group" : "Error al crear un grupo",
"A valid group name must be provided" : "Se debe dar un nombre válido para el grupo ",
- "deleted {groupName}" : "borrado {groupName}",
+ "deleted {groupName}" : "{groupName} eliminado",
"undo" : "deshacer",
"no group" : "sin grupo",
"never" : "nunca",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Read-Only config enabled" : "Configuración de solo lectura activada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.",
"Setup Warning" : "Advertencia de configuración",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
"URL generation in notification emails" : "Generación de URL en mensajes de notificación",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwritewebroot\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
- "Connectivity Checks" : "Probar la Conectividad",
+ "Configuration Checks" : "Comprobaciones de la configuración",
"No problems found" : "No se han encontrado problemas",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor, vuelva a comprobar las <a href='%s'>guías de instalación</a>.",
"Last cron was executed at %s." : "Cron fue ejecutado por última vez a las %s.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
"Enforce password protection" : "Forzar la protección por contraseña.",
"Allow public uploads" : "Permitir subidas públicas",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
"Set default expiration date" : "Establecer fecha de caducidad predeterminada",
"Expire after " : "Caduca luego de",
"days" : "días",
"Enforce expiration date" : "Imponer fecha de caducidad",
"Allow resharing" : "Permitir re-compartición",
"Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos",
- "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
+ "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electronico de los archivos compartidos a otros usuarios",
"Exclude groups from sharing" : "Excluye grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.",
"Enforce HTTPS" : "Forzar HTTPS",
@@ -173,7 +174,8 @@ OC.L10N.register(
"Documentation:" : "Documentación:",
"User Documentation" : "Documentación de usuario",
"Admin Documentation" : "Documentación para administradores",
- "Update to %s" : "Actualizado a %s",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no se han cumplido:",
+ "Update to %s" : "Actualizar a %s",
"Enable only for specific groups" : "Activar solamente para grupos específicos",
"Uninstall App" : "Desinstalar aplicación",
"Administrator Documentation" : "Documentación de administrador",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 988401fb82d..3cfec8d9e1d 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -8,8 +8,6 @@
"Authentication error" : "Error de autenticación",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No se pudo añadir el grupo",
"Files decrypted successfully" : "Los archivos fueron descifrados",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No se pudo descifrar sus archivos. Revise el owncloud.log o consulte con su administrador",
"Couldn't decrypt your files, check your password and try again" : "No se pudo descifrar sus archivos. Revise su contraseña e inténtelo de nuevo",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "No se pudo eliminar la aplicación.",
"Email saved" : "Correo electrónico guardado",
"Invalid email" : "Correo electrónico no válido",
- "Unable to delete group" : "No se pudo eliminar el grupo",
- "Unable to delete user" : "No se pudo eliminar el usuario",
"Backups restored successfully" : "Copia de seguridad restaurada",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron restarurar sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
"Language changed" : "Idioma cambiado",
@@ -37,12 +33,17 @@
"Enabled" : "Habilitado",
"Not enabled" : "No habilitado",
"Recommended" : "Recomendado",
+ "Group already exists." : "El grupo ya existe.",
+ "Unable to add group." : "No se pudo agregar el grupo.",
+ "Unable to delete group." : "No se pudo eliminar el grupo.",
"Saved" : "Guardado",
"test email settings" : "probar configuración de correo electrónico",
"If you received this email, the settings seem to be correct." : "Si recibió este mensaje de correo electrónico, su configuración debe estar correcta.",
"A problem occurred while sending the email. Please revise your settings." : "Ocurrió un problema al mandar el mensaje. Revise la configuración.",
"Email sent" : "Correo electrónico enviado",
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
+ "Unable to create user." : "No se pudo crear el usuario.",
+ "Unable to delete user." : "No se pudo eliminar el usuario.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
"Sending..." : "Enviando...",
@@ -73,7 +74,7 @@
"Unable to delete {objName}" : "No es posible eliminar {objName}",
"Error creating group" : "Error al crear un grupo",
"A valid group name must be provided" : "Se debe dar un nombre válido para el grupo ",
- "deleted {groupName}" : "borrado {groupName}",
+ "deleted {groupName}" : "{groupName} eliminado",
"undo" : "deshacer",
"no group" : "sin grupo",
"never" : "nunca",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Read-Only config enabled" : "Configuración de solo lectura activada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.",
"Setup Warning" : "Advertencia de configuración",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
"URL generation in notification emails" : "Generación de URL en mensajes de notificación",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwritewebroot\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
- "Connectivity Checks" : "Probar la Conectividad",
+ "Configuration Checks" : "Comprobaciones de la configuración",
"No problems found" : "No se han encontrado problemas",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor, vuelva a comprobar las <a href='%s'>guías de instalación</a>.",
"Last cron was executed at %s." : "Cron fue ejecutado por última vez a las %s.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
"Enforce password protection" : "Forzar la protección por contraseña.",
"Allow public uploads" : "Permitir subidas públicas",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
"Set default expiration date" : "Establecer fecha de caducidad predeterminada",
"Expire after " : "Caduca luego de",
"days" : "días",
"Enforce expiration date" : "Imponer fecha de caducidad",
"Allow resharing" : "Permitir re-compartición",
"Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos",
- "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
+ "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electronico de los archivos compartidos a otros usuarios",
"Exclude groups from sharing" : "Excluye grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.",
"Enforce HTTPS" : "Forzar HTTPS",
@@ -171,7 +172,8 @@
"Documentation:" : "Documentación:",
"User Documentation" : "Documentación de usuario",
"Admin Documentation" : "Documentación para administradores",
- "Update to %s" : "Actualizado a %s",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no se han cumplido:",
+ "Update to %s" : "Actualizar a %s",
"Enable only for specific groups" : "Activar solamente para grupos específicos",
"Uninstall App" : "Desinstalar aplicación",
"Administrator Documentation" : "Documentación de administrador",
diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js
index b681fa8d077..ab923585a7a 100644
--- a/settings/l10n/es_AR.js
+++ b/settings/l10n/es_AR.js
@@ -9,13 +9,9 @@ OC.L10N.register(
"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",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No fue posible añadir el grupo",
"Files decrypted successfully" : "Archivos des-encriptados correctamente",
"Email saved" : "e-mail guardado",
"Invalid email" : "El e-mail no es válido ",
- "Unable to delete group" : "No fue posible borrar el grupo",
- "Unable to delete user" : "No fue posible borrar el usuario",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Pedido inválido",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
@@ -76,7 +72,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accediendo %s vía HTTP. Se sugiere fuertemente que configure su servidor para requerir el uso de HTTPS en vez del otro.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
"Setup Warning" : "Alerta de Configuración",
"Module 'fileinfo' missing" : "El módulo 'fileinfo' no existe",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El módulo PHP 'fileinfo' no existe. Es recomendable que actives este módulo para obtener mejores resultados con la detección mime-type",
@@ -88,8 +83,8 @@ OC.L10N.register(
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamarlo cada 15 minutos usando http.",
"Allow apps to use the Share API" : "Permitir a las aplicaciones usar la Share API",
"Allow public uploads" : "Permitir subidas públicas",
- "Allow resharing" : "Permitir Re-Compartir",
"Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
+ "Allow resharing" : "Permitir Re-Compartir",
"Enforce HTTPS" : "Forzar HTTPS",
"Forces the clients to connect to %s via an encrypted connection." : "Fuerza al cliente a conectarse a %s por medio de una conexión encriptada.",
"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor conéctese a su %s por medio de HTTPS para habilitar o deshabilitar la característica SSL",
diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json
index 14ce77fbb88..23025ae0510 100644
--- a/settings/l10n/es_AR.json
+++ b/settings/l10n/es_AR.json
@@ -7,13 +7,9 @@
"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",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No fue posible añadir el grupo",
"Files decrypted successfully" : "Archivos des-encriptados correctamente",
"Email saved" : "e-mail guardado",
"Invalid email" : "El e-mail no es válido ",
- "Unable to delete group" : "No fue posible borrar el grupo",
- "Unable to delete user" : "No fue posible borrar el usuario",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Pedido inválido",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
@@ -74,7 +70,6 @@
"TLS" : "TLS",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accediendo %s vía HTTP. Se sugiere fuertemente que configure su servidor para requerir el uso de HTTPS en vez del otro.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
"Setup Warning" : "Alerta de Configuración",
"Module 'fileinfo' missing" : "El módulo 'fileinfo' no existe",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El módulo PHP 'fileinfo' no existe. Es recomendable que actives este módulo para obtener mejores resultados con la detección mime-type",
@@ -86,8 +81,8 @@
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamarlo cada 15 minutos usando http.",
"Allow apps to use the Share API" : "Permitir a las aplicaciones usar la Share API",
"Allow public uploads" : "Permitir subidas públicas",
- "Allow resharing" : "Permitir Re-Compartir",
"Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
+ "Allow resharing" : "Permitir Re-Compartir",
"Enforce HTTPS" : "Forzar HTTPS",
"Forces the clients to connect to %s via an encrypted connection." : "Fuerza al cliente a conectarse a %s por medio de una conexión encriptada.",
"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor conéctese a su %s por medio de HTTPS para habilitar o deshabilitar la característica SSL",
diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js
index ff7bc009b82..b643ed0fa84 100644
--- a/settings/l10n/es_MX.js
+++ b/settings/l10n/es_MX.js
@@ -8,12 +8,8 @@ OC.L10N.register(
"Authentication error" : "Error de autenticación",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No se pudo añadir el grupo",
"Email saved" : "Correo electrónico guardado",
"Invalid email" : "Correo electrónico no válido",
- "Unable to delete group" : "No se pudo eliminar el grupo",
- "Unable to delete user" : "No se pudo eliminar el usuario",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Petición no válida",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
@@ -59,7 +55,6 @@ OC.L10N.register(
"Login" : "Iniciar sesión",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Setup Warning" : "Advertencia de configuración",
"Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
index 8e6456ec85b..dfe586677a1 100644
--- a/settings/l10n/es_MX.json
+++ b/settings/l10n/es_MX.json
@@ -6,12 +6,8 @@
"Authentication error" : "Error de autenticación",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
- "Group already exists" : "El grupo ya existe",
- "Unable to add group" : "No se pudo añadir el grupo",
"Email saved" : "Correo electrónico guardado",
"Invalid email" : "Correo electrónico no válido",
- "Unable to delete group" : "No se pudo eliminar el grupo",
- "Unable to delete user" : "No se pudo eliminar el usuario",
"Language changed" : "Idioma cambiado",
"Invalid request" : "Petición no válida",
"Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
@@ -57,7 +53,6 @@
"Login" : "Iniciar sesión",
"Security Warning" : "Advertencia de seguridad",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
"Setup Warning" : "Advertencia de configuración",
"Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js
index 18d7cff60f9..b2056c498b2 100644
--- a/settings/l10n/et_EE.js
+++ b/settings/l10n/et_EE.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Autentimise viga",
"Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
"Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
- "Group already exists" : "Grupp on juba olemas",
- "Unable to add group" : "Keela grupi lisamine",
"Files decrypted successfully" : "Failide krüpteerimine õnnestus",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ei suutnud faile dekrüpteerida, palun kontrolli oma owncloud.log-i või küsi nõu administraatorilt",
"Couldn't decrypt your files, check your password and try again" : "Ei suutnud failde dekrüpteerida, kontrolli parooli ja proovi uuesti",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
"Email saved" : "Kiri on salvestatud",
"Invalid email" : "Vigane e-post",
- "Unable to delete group" : "Grupi kustutamine ebaõnnestus",
- "Unable to delete user" : "Kasutaja kustutamine ebaõnnestus",
"Backups restored successfully" : "Varukoopiad taastatud edukalt.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud taastada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
"Language changed" : "Keel on muudetud",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Turvahoiatus",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sa kasutad %s ligipääsuks HTTP protokolli. Soovitame tungivalt seadistada oma server selle asemel kasutama HTTPS-i.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
"Setup Warning" : "Paigalduse hoiatus",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
@@ -117,7 +112,6 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "See tähendab, et võib esineda probleeme failide nimedes mõnede sümbolitega.",
"URL generation in notification emails" : "URL-ide loomine teavituskirjades",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kui sinu sait pole paigaldatud domeeni juurkausta ja see kasutab ajastatud tegevusi, siis võib tekkide probleeme URL-ide loomisega. Nende probleemide vältimiseks sisesta palun failis config.php valikusse \"overwritewebroot\" oma veebiserveri juurkaust (Soovituslik: \"%s\")",
- "Connectivity Checks" : "Ühenduse kontrollid",
"No problems found" : "Ühtegi probleemi ei leitud",
"Please double check the <a href='%s'>installation guides</a>." : "Palun tutvu veelkord <a href='%s'>paigalduse juhenditega</a>.",
"Last cron was executed at %s." : "Cron käivitati viimati %s.",
@@ -130,13 +124,13 @@ OC.L10N.register(
"Allow users to share via link" : "Luba kasutajatel lingiga jagamist ",
"Enforce password protection" : "Sunni parooliga kaitsmist",
"Allow public uploads" : "Luba avalikud üleslaadimised",
+ "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Set default expiration date" : "Määra vaikimisi aegumise kuupäev",
"Expire after " : "Aegu pärast",
"days" : "päeva",
"Enforce expiration date" : "Sunnitud aegumise kuupäev",
"Allow resharing" : "Luba edasijagamine",
"Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
- "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Exclude groups from sharing" : "Eemalda grupid jagamisest",
"These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
"Enforce HTTPS" : "Sunni peale HTTPS-i kasutamine",
diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json
index 0b2c35b5f1f..60258e4bbd9 100644
--- a/settings/l10n/et_EE.json
+++ b/settings/l10n/et_EE.json
@@ -8,8 +8,6 @@
"Authentication error" : "Autentimise viga",
"Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
"Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
- "Group already exists" : "Grupp on juba olemas",
- "Unable to add group" : "Keela grupi lisamine",
"Files decrypted successfully" : "Failide krüpteerimine õnnestus",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ei suutnud faile dekrüpteerida, palun kontrolli oma owncloud.log-i või küsi nõu administraatorilt",
"Couldn't decrypt your files, check your password and try again" : "Ei suutnud failde dekrüpteerida, kontrolli parooli ja proovi uuesti",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
"Email saved" : "Kiri on salvestatud",
"Invalid email" : "Vigane e-post",
- "Unable to delete group" : "Grupi kustutamine ebaõnnestus",
- "Unable to delete user" : "Kasutaja kustutamine ebaõnnestus",
"Backups restored successfully" : "Varukoopiad taastatud edukalt.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud taastada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
"Language changed" : "Keel on muudetud",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Turvahoiatus",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sa kasutad %s ligipääsuks HTTP protokolli. Soovitame tungivalt seadistada oma server selle asemel kasutama HTTPS-i.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
"Setup Warning" : "Paigalduse hoiatus",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
@@ -115,7 +110,6 @@
"This means that there might be problems with certain characters in file names." : "See tähendab, et võib esineda probleeme failide nimedes mõnede sümbolitega.",
"URL generation in notification emails" : "URL-ide loomine teavituskirjades",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kui sinu sait pole paigaldatud domeeni juurkausta ja see kasutab ajastatud tegevusi, siis võib tekkide probleeme URL-ide loomisega. Nende probleemide vältimiseks sisesta palun failis config.php valikusse \"overwritewebroot\" oma veebiserveri juurkaust (Soovituslik: \"%s\")",
- "Connectivity Checks" : "Ühenduse kontrollid",
"No problems found" : "Ühtegi probleemi ei leitud",
"Please double check the <a href='%s'>installation guides</a>." : "Palun tutvu veelkord <a href='%s'>paigalduse juhenditega</a>.",
"Last cron was executed at %s." : "Cron käivitati viimati %s.",
@@ -128,13 +122,13 @@
"Allow users to share via link" : "Luba kasutajatel lingiga jagamist ",
"Enforce password protection" : "Sunni parooliga kaitsmist",
"Allow public uploads" : "Luba avalikud üleslaadimised",
+ "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Set default expiration date" : "Määra vaikimisi aegumise kuupäev",
"Expire after " : "Aegu pärast",
"days" : "päeva",
"Enforce expiration date" : "Sunnitud aegumise kuupäev",
"Allow resharing" : "Luba edasijagamine",
"Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
- "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Exclude groups from sharing" : "Eemalda grupid jagamisest",
"These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
"Enforce HTTPS" : "Sunni peale HTTPS-i kasutamine",
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index eeff2dd7dbd..d943edfbf13 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Autentifikazio errorea",
"Your full name has been changed." : "Zure izena aldatu egin da.",
"Unable to change full name" : "Ezin izan da izena aldatu",
- "Group already exists" : "Taldea dagoeneko existitzenda",
- "Unable to add group" : "Ezin izan da taldea gehitu",
"Files decrypted successfully" : "Fitxategiak ongi deskodetu dira.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure fitxategiak deskodetu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
"Couldn't decrypt your files, check your password and try again" : "Ezin izan dira deskodetu zure fitxategiak, egiaztatu zure pasahitza eta saiatu berriz",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
"Email saved" : "Eposta gorde da",
"Invalid email" : "Baliogabeko eposta",
- "Unable to delete group" : "Ezin izan da taldea ezabatu",
- "Unable to delete user" : "Ezin izan da erabiltzailea ezabatu",
"Backups restored successfully" : "Babeskopiak ongi leheneratu dira",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak leheneratu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
"Language changed" : "Hizkuntza aldatuta",
@@ -100,7 +96,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Segurtasun abisua",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s HTTP bidez erabiltzen ari zara. Aholkatzen dizugu zure zerbitzaria HTTPS erabil dezan.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
"Setup Warning" : "Konfiguratu abisuak",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
@@ -127,13 +122,13 @@ OC.L10N.register(
"Allow users to share via link" : "Baimendu erabiltzaileak esteken bidez partekatzea",
"Enforce password protection" : "Betearazi pasahitzaren babesa",
"Allow public uploads" : "Baimendu igoera publikoak",
+ "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Set default expiration date" : "Ezarri muga data lehenetsia",
"Expire after " : "Iraungia honen ondoren",
"days" : "egun",
"Enforce expiration date" : "Muga data betearazi",
"Allow resharing" : "Baimendu birpartekatzea",
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
- "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
"Enforce HTTPS" : "Behartu HTTPS",
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index 3405967c4a9..6ea44378db4 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -7,8 +7,6 @@
"Authentication error" : "Autentifikazio errorea",
"Your full name has been changed." : "Zure izena aldatu egin da.",
"Unable to change full name" : "Ezin izan da izena aldatu",
- "Group already exists" : "Taldea dagoeneko existitzenda",
- "Unable to add group" : "Ezin izan da taldea gehitu",
"Files decrypted successfully" : "Fitxategiak ongi deskodetu dira.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure fitxategiak deskodetu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
"Couldn't decrypt your files, check your password and try again" : "Ezin izan dira deskodetu zure fitxategiak, egiaztatu zure pasahitza eta saiatu berriz",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
"Email saved" : "Eposta gorde da",
"Invalid email" : "Baliogabeko eposta",
- "Unable to delete group" : "Ezin izan da taldea ezabatu",
- "Unable to delete user" : "Ezin izan da erabiltzailea ezabatu",
"Backups restored successfully" : "Babeskopiak ongi leheneratu dira",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak leheneratu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
"Language changed" : "Hizkuntza aldatuta",
@@ -98,7 +94,6 @@
"TLS" : "TLS",
"Security Warning" : "Segurtasun abisua",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s HTTP bidez erabiltzen ari zara. Aholkatzen dizugu zure zerbitzaria HTTPS erabil dezan.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
"Setup Warning" : "Konfiguratu abisuak",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
@@ -125,13 +120,13 @@
"Allow users to share via link" : "Baimendu erabiltzaileak esteken bidez partekatzea",
"Enforce password protection" : "Betearazi pasahitzaren babesa",
"Allow public uploads" : "Baimendu igoera publikoak",
+ "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Set default expiration date" : "Ezarri muga data lehenetsia",
"Expire after " : "Iraungia honen ondoren",
"days" : "egun",
"Enforce expiration date" : "Muga data betearazi",
"Allow resharing" : "Baimendu birpartekatzea",
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
- "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
"Enforce HTTPS" : "Behartu HTTPS",
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
index c3ba168338d..4d14c490af9 100644
--- a/settings/l10n/fa.js
+++ b/settings/l10n/fa.js
@@ -9,15 +9,11 @@ OC.L10N.register(
"Authentication error" : "خطا در اعتبار سنجی",
"Your full name has been changed." : "نام کامل شما تغییر یافت",
"Unable to change full name" : "امکان تغییر نام کامل وجود ندارد",
- "Group already exists" : "این گروه در حال حاضر موجود است",
- "Unable to add group" : "افزودن گروه امکان پذیر نیست",
"Files decrypted successfully" : "فایل ها با موفقیت رمزگشایی شدند.",
"Encryption keys deleted permanently" : "کلیدهای رمزگذاری به طور کامل حذف شدند",
"Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
"Email saved" : "ایمیل ذخیره شد",
"Invalid email" : "ایمیل غیر قابل قبول",
- "Unable to delete group" : "حذف گروه امکان پذیر نیست",
- "Unable to delete user" : "حذف کاربر امکان پذیر نیست",
"Backups restored successfully" : "پشتیبان ها با موفقیت بازیابی شدند",
"Language changed" : "زبان تغییر کرد",
"Invalid request" : "درخواست نامعتبر",
@@ -86,7 +82,6 @@ OC.L10N.register(
"SSL" : "SSL",
"TLS" : "TLS",
"Security Warning" : "اخطار امنیتی",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشه‌ی data و فایل‌های شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمی‌کند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشه‌ی data شما غیر قابل دسترسی باشد یا اینکه پوشه‌‎ی data را به خارج از ریشه‌ی اصلی وب سرور انتقال دهید.",
"Setup Warning" : "هشدار راه اندازی",
"Database Performance Info" : "اطلاعات کارایی پایگاه داده",
"Module 'fileinfo' missing" : "ماژول 'fileinfo' از کار افتاده",
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
index 766ffa4381e..c729c39c722 100644
--- a/settings/l10n/fa.json
+++ b/settings/l10n/fa.json
@@ -7,15 +7,11 @@
"Authentication error" : "خطا در اعتبار سنجی",
"Your full name has been changed." : "نام کامل شما تغییر یافت",
"Unable to change full name" : "امکان تغییر نام کامل وجود ندارد",
- "Group already exists" : "این گروه در حال حاضر موجود است",
- "Unable to add group" : "افزودن گروه امکان پذیر نیست",
"Files decrypted successfully" : "فایل ها با موفقیت رمزگشایی شدند.",
"Encryption keys deleted permanently" : "کلیدهای رمزگذاری به طور کامل حذف شدند",
"Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
"Email saved" : "ایمیل ذخیره شد",
"Invalid email" : "ایمیل غیر قابل قبول",
- "Unable to delete group" : "حذف گروه امکان پذیر نیست",
- "Unable to delete user" : "حذف کاربر امکان پذیر نیست",
"Backups restored successfully" : "پشتیبان ها با موفقیت بازیابی شدند",
"Language changed" : "زبان تغییر کرد",
"Invalid request" : "درخواست نامعتبر",
@@ -84,7 +80,6 @@
"SSL" : "SSL",
"TLS" : "TLS",
"Security Warning" : "اخطار امنیتی",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشه‌ی data و فایل‌های شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمی‌کند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشه‌ی data شما غیر قابل دسترسی باشد یا اینکه پوشه‌‎ی data را به خارج از ریشه‌ی اصلی وب سرور انتقال دهید.",
"Setup Warning" : "هشدار راه اندازی",
"Database Performance Info" : "اطلاعات کارایی پایگاه داده",
"Module 'fileinfo' missing" : "ماژول 'fileinfo' از کار افتاده",
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index 5d23d380e62..d6a5900c9e0 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Tunnistautumisvirhe",
"Your full name has been changed." : "Koko nimesi on muutettu.",
"Unable to change full name" : "Koko nimen muuttaminen epäonnistui",
- "Group already exists" : "Ryhmä on jo olemassa",
- "Unable to add group" : "Ryhmän lisäys epäonnistui",
"Files decrypted successfully" : "Tiedostojen salaus purettiin onnistuneesti",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista owncloud.log-tiedosto tai ota yhteys ylläpitäjään",
"Couldn't decrypt your files, check your password and try again" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista salasanasi ja yritä uudelleen",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
"Email saved" : "Sähköposti tallennettu",
"Invalid email" : "Virheellinen sähköposti",
- "Unable to delete group" : "Ryhmän poisto epäonnistui",
- "Unable to delete user" : "Käyttäjän poisto epäonnistui",
"Backups restored successfully" : "Varmuuskopiot palautettiin onnistuneesti",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi palauttaminen ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
"Language changed" : "Kieli on vaihdettu",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Käytössä",
"Not enabled" : "Ei käytössä",
"Recommended" : "Suositeltu",
+ "Group already exists." : "Ryhmä on jo olemassa.",
+ "Unable to add group." : "Ryhmän lisääminen ei onnistunut.",
+ "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.",
"Saved" : "Tallennettu",
"test email settings" : "testaa sähköpostiasetukset",
"If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.",
"A problem occurred while sending the email. Please revise your settings." : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset.",
"Email sent" : "Sähköposti lähetetty",
"You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.",
+ "Unable to create user." : "Käyttäjän luominen ei onnistunut.",
+ "Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
"Add trusted domain" : "Lisää luotettu toimialue",
"Sending..." : "Lähetetään...",
@@ -101,7 +102,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Turvallisuusvaroitus",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Käytät %sia HTTP-yhteydellä. Suosittelemme määrittämään palvelimen vaatimaan salattua HTTPS-yhteyttä.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
"Read-Only config enabled" : "Vain luku -määritykset otettu käyttöön",
"Setup Warning" : "Asetusvaroitus",
"Database Performance Info" : "Tietokannan suorituskyvyn tiedot",
@@ -127,13 +127,14 @@ OC.L10N.register(
"Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
"Enforce password protection" : "Pakota salasanasuojaus",
"Allow public uploads" : "Salli julkiset lähetykset",
+ "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
"Set default expiration date" : "Aseta oletusvanhenemispäivä",
"Expire after " : "Vanhenna",
"days" : "päivän jälkeen",
"Enforce expiration date" : "Pakota vanhenemispäivä",
"Allow resharing" : "Salli uudelleenjakaminen",
"Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
- "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
+ "Allow users to send mail notification for shared files to other users" : "Salli käyttäjien lähettää muille käyttäjille sähköpostitse ilmoitus jaetuista tiedostoista",
"Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
"These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
"Enforce HTTPS" : "Pakota HTTPS",
@@ -166,6 +167,7 @@ OC.L10N.register(
"Documentation:" : "Ohjeistus:",
"User Documentation" : "Käyttäjäohjeistus",
"Admin Documentation" : "Ylläpitäjän ohjeistus",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
"Update to %s" : "Päivitä versioon %s",
"Enable only for specific groups" : "Salli vain tietyille ryhmille",
"Uninstall App" : "Poista sovelluksen asennus",
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index 856e2117bf7..cecfa94719e 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -8,8 +8,6 @@
"Authentication error" : "Tunnistautumisvirhe",
"Your full name has been changed." : "Koko nimesi on muutettu.",
"Unable to change full name" : "Koko nimen muuttaminen epäonnistui",
- "Group already exists" : "Ryhmä on jo olemassa",
- "Unable to add group" : "Ryhmän lisäys epäonnistui",
"Files decrypted successfully" : "Tiedostojen salaus purettiin onnistuneesti",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista owncloud.log-tiedosto tai ota yhteys ylläpitäjään",
"Couldn't decrypt your files, check your password and try again" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista salasanasi ja yritä uudelleen",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
"Email saved" : "Sähköposti tallennettu",
"Invalid email" : "Virheellinen sähköposti",
- "Unable to delete group" : "Ryhmän poisto epäonnistui",
- "Unable to delete user" : "Käyttäjän poisto epäonnistui",
"Backups restored successfully" : "Varmuuskopiot palautettiin onnistuneesti",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi palauttaminen ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
"Language changed" : "Kieli on vaihdettu",
@@ -37,12 +33,17 @@
"Enabled" : "Käytössä",
"Not enabled" : "Ei käytössä",
"Recommended" : "Suositeltu",
+ "Group already exists." : "Ryhmä on jo olemassa.",
+ "Unable to add group." : "Ryhmän lisääminen ei onnistunut.",
+ "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.",
"Saved" : "Tallennettu",
"test email settings" : "testaa sähköpostiasetukset",
"If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.",
"A problem occurred while sending the email. Please revise your settings." : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset.",
"Email sent" : "Sähköposti lähetetty",
"You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.",
+ "Unable to create user." : "Käyttäjän luominen ei onnistunut.",
+ "Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
"Add trusted domain" : "Lisää luotettu toimialue",
"Sending..." : "Lähetetään...",
@@ -99,7 +100,6 @@
"TLS" : "TLS",
"Security Warning" : "Turvallisuusvaroitus",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Käytät %sia HTTP-yhteydellä. Suosittelemme määrittämään palvelimen vaatimaan salattua HTTPS-yhteyttä.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
"Read-Only config enabled" : "Vain luku -määritykset otettu käyttöön",
"Setup Warning" : "Asetusvaroitus",
"Database Performance Info" : "Tietokannan suorituskyvyn tiedot",
@@ -125,13 +125,14 @@
"Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
"Enforce password protection" : "Pakota salasanasuojaus",
"Allow public uploads" : "Salli julkiset lähetykset",
+ "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
"Set default expiration date" : "Aseta oletusvanhenemispäivä",
"Expire after " : "Vanhenna",
"days" : "päivän jälkeen",
"Enforce expiration date" : "Pakota vanhenemispäivä",
"Allow resharing" : "Salli uudelleenjakaminen",
"Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
- "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
+ "Allow users to send mail notification for shared files to other users" : "Salli käyttäjien lähettää muille käyttäjille sähköpostitse ilmoitus jaetuista tiedostoista",
"Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
"These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
"Enforce HTTPS" : "Pakota HTTPS",
@@ -164,6 +165,7 @@
"Documentation:" : "Ohjeistus:",
"User Documentation" : "Käyttäjäohjeistus",
"Admin Documentation" : "Ylläpitäjän ohjeistus",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
"Update to %s" : "Päivitä versioon %s",
"Enable only for specific groups" : "Salli vain tietyille ryhmille",
"Uninstall App" : "Poista sovelluksen asennus",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index 651f6608207..ef267f51b58 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"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",
- "Group already exists" : "Ce groupe existe déjà",
- "Unable to add group" : "Impossible d'ajouter le groupe",
"Files decrypted successfully" : "Fichiers décryptés avec succès",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossible de décrypter vos fichiers, veuillez vérifier votre owncloud.log ou demander à votre administrateur",
"Couldn't decrypt your files, check your password and try again" : "Impossible de décrypter vos fichiers, vérifiez votre mot de passe et essayez à nouveau",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Email saved" : "E-mail sauvegardé",
"Invalid email" : "E-mail invalide",
- "Unable to delete group" : "Impossible de supprimer le groupe",
- "Unable to delete user" : "Impossible de supprimer l'utilisateur",
"Backups restored successfully" : "La sauvegarde a été restaurée avec succès",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de restaurer vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
"Language changed" : "Langue changée",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Activées",
"Not enabled" : "Désactivées",
"Recommended" : "Recommandées",
+ "Group already exists." : "Ce groupe existe déjà.",
+ "Unable to add group." : "Impossible d'ajouter le groupe.",
+ "Unable to delete group." : "Impossible de supprimer le groupe.",
"Saved" : "Sauvegardé",
"test email settings" : "tester les paramètres d'e-mail",
"If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
"A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
"Email sent" : "Email envoyé",
"You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Unable to create user." : "Impossible de créer l'utilisateur.",
+ "Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"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",
"Sending..." : "Envoi en cours...",
@@ -102,7 +103,8 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Avertissement de sécurité",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à %s via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
+ "Read-Only config enabled" : "Configuration en mode lecture seule activée",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture pour chaque mise à jour.",
"Setup Warning" : "Avertissement, problème de configuration",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes. Cela rendra plusieurs applications de base inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
@@ -118,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
"URL generation in notification emails" : "Génération d'URL dans les mails de notification",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
- "Connectivity Checks" : "Vérification de la connectivité",
+ "Configuration Checks" : "Vérification de la configuration",
"No problems found" : "Aucun problème trouvé",
"Please double check the <a href='%s'>installation guides</a>." : "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
"Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
@@ -131,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Enforce password protection" : "Obliger la protection par mot de passe",
"Allow public uploads" : "Autoriser les téléversements publics",
+ "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
"Set default expiration date" : "Spécifier la date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
"Allow resharing" : "Autoriser le repartage",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
- "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
+ "Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer une notification par courriel concernant les fichiers partagés",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Enforce HTTPS" : "Forcer HTTPS",
@@ -171,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Documentation :",
"User Documentation" : "Documentation utilisateur",
"Admin Documentation" : "Documentation administrateur",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites:",
"Update to %s" : "Mettre à niveau vers la version %s",
"Enable only for specific groups" : "Activer uniquement pour certains groupes",
"Uninstall App" : "Désinstaller l'application",
@@ -181,7 +185,7 @@ OC.L10N.register(
"Commercial Support" : "Support commercial",
"Get the apps to sync your files" : "Obtenez les applications de synchronisation de vos fichiers",
"If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Si voulez soutenir le projet, \n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">rejoignez le développement</a>\n\t\tou \n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">parlez-en</a> !",
- "Show First Run Wizard again" : "Revoir le premier lancement de l'installeur",
+ "Show First Run Wizard again" : "Revoir la fenêtre d'accueil affichée lors de votre première connexion",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Vous avez utilisé <strong>%s</strong> des <strong>%s<strong> disponibles",
"Password" : "Mot de passe",
"Your password was changed" : "Votre mot de passe a été changé",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 450b5542985..516b06694c4 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -8,8 +8,6 @@
"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",
- "Group already exists" : "Ce groupe existe déjà",
- "Unable to add group" : "Impossible d'ajouter le groupe",
"Files decrypted successfully" : "Fichiers décryptés avec succès",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossible de décrypter vos fichiers, veuillez vérifier votre owncloud.log ou demander à votre administrateur",
"Couldn't decrypt your files, check your password and try again" : "Impossible de décrypter vos fichiers, vérifiez votre mot de passe et essayez à nouveau",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Email saved" : "E-mail sauvegardé",
"Invalid email" : "E-mail invalide",
- "Unable to delete group" : "Impossible de supprimer le groupe",
- "Unable to delete user" : "Impossible de supprimer l'utilisateur",
"Backups restored successfully" : "La sauvegarde a été restaurée avec succès",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de restaurer vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
"Language changed" : "Langue changée",
@@ -37,12 +33,17 @@
"Enabled" : "Activées",
"Not enabled" : "Désactivées",
"Recommended" : "Recommandées",
+ "Group already exists." : "Ce groupe existe déjà.",
+ "Unable to add group." : "Impossible d'ajouter le groupe.",
+ "Unable to delete group." : "Impossible de supprimer le groupe.",
"Saved" : "Sauvegardé",
"test email settings" : "tester les paramètres d'e-mail",
"If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
"A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
"Email sent" : "Email envoyé",
"You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Unable to create user." : "Impossible de créer l'utilisateur.",
+ "Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"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",
"Sending..." : "Envoi en cours...",
@@ -100,7 +101,8 @@
"TLS" : "TLS",
"Security Warning" : "Avertissement de sécurité",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à %s via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
+ "Read-Only config enabled" : "Configuration en mode lecture seule activée",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture pour chaque mise à jour.",
"Setup Warning" : "Avertissement, problème de configuration",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes. Cela rendra plusieurs applications de base inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
@@ -116,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
"URL generation in notification emails" : "Génération d'URL dans les mails de notification",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
- "Connectivity Checks" : "Vérification de la connectivité",
+ "Configuration Checks" : "Vérification de la configuration",
"No problems found" : "Aucun problème trouvé",
"Please double check the <a href='%s'>installation guides</a>." : "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
"Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
@@ -129,13 +131,14 @@
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Enforce password protection" : "Obliger la protection par mot de passe",
"Allow public uploads" : "Autoriser les téléversements publics",
+ "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
"Set default expiration date" : "Spécifier la date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
"Allow resharing" : "Autoriser le repartage",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
- "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
+ "Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer une notification par courriel concernant les fichiers partagés",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Enforce HTTPS" : "Forcer HTTPS",
@@ -169,6 +172,7 @@
"Documentation:" : "Documentation :",
"User Documentation" : "Documentation utilisateur",
"Admin Documentation" : "Documentation administrateur",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites:",
"Update to %s" : "Mettre à niveau vers la version %s",
"Enable only for specific groups" : "Activer uniquement pour certains groupes",
"Uninstall App" : "Désinstaller l'application",
@@ -179,7 +183,7 @@
"Commercial Support" : "Support commercial",
"Get the apps to sync your files" : "Obtenez les applications de synchronisation de vos fichiers",
"If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Si voulez soutenir le projet, \n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">rejoignez le développement</a>\n\t\tou \n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">parlez-en</a> !",
- "Show First Run Wizard again" : "Revoir le premier lancement de l'installeur",
+ "Show First Run Wizard again" : "Revoir la fenêtre d'accueil affichée lors de votre première connexion",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Vous avez utilisé <strong>%s</strong> des <strong>%s<strong> disponibles",
"Password" : "Mot de passe",
"Your password was changed" : "Votre mot de passe a été changé",
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index 64e73cf0d0e..a564cb05bac 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Produciuse un erro de autenticación",
"Your full name has been changed." : "O seu nome completo foi cambiado",
"Unable to change full name" : "Non é posíbel cambiar o nome completo",
- "Group already exists" : "O grupo xa existe",
- "Unable to add group" : "Non é posíbel engadir o grupo",
"Files decrypted successfully" : "Ficheiros descifrados satisfactoriamente",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Non foi posíbel descifrar os seus ficheiros. revise o ficheiro de rexistro owncloud.log, ou pregúntelle ao administrador",
"Couldn't decrypt your files, check your password and try again" : "Non foi posíbel descifrar os seus ficheiros. revise o seu contrasinal e ténteo de novo",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Non foi posíbel retirar a aplicación.",
"Email saved" : "Correo gardado",
"Invalid email" : "Correo incorrecto",
- "Unable to delete group" : "Non é posíbel eliminar o grupo.",
- "Unable to delete user" : "Non é posíbel eliminar o usuario",
"Backups restored successfully" : "As copias de seguranza foron restauradas satisfactoriamente",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Non foi posíbel restaurar as chaves de cifrado. revise o ficheiro de rexistro owncloud.log, ou pregúntelle ao administrador",
"Language changed" : "O idioma cambiou",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Aviso de seguranza",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accedendo a %s a través de HTTP. Suxerímoslle que configure o seu servidor para requirir, no seu canto, o uso de HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.",
"Read-Only config enabled" : "Activada a restrición da configuración a só lectura",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Foi activada a restrición da configuración a só lectura. Isto impide o estabelecemento dalgunhas configuracións a través da interface web. Ademais, ten que facer escribíbel manualmente o ficheiro para cada actualización.",
"Setup Warning" : "Configurar os avisos",
@@ -120,7 +115,6 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomendámoslle que instale no sistema os paquetes necesarios para admitir unha das seguintes configuracións rexionais: %s.",
"URL generation in notification emails" : "Xeración dos URL nos correos de notificación",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación non foi feita na raíz do dominio e usa o sistema de cron, poden xurdir problemas coa xeración dos URL. Para evitar estes problemas, axuste a opción «overwritewebroot» no ficheiro config.php ás ruta de webroot da súa instalación (suxírese: «%s»)",
- "Connectivity Checks" : "Comprobacións de conectividade",
"No problems found" : "Non se atoparon problemas",
"Please double check the <a href='%s'>installation guides</a>." : "Volva comprobar as <a href='%s'>guías de instalación</a>",
"Last cron was executed at %s." : "O último «cron» executouse ás %s.",
@@ -133,13 +127,13 @@ OC.L10N.register(
"Allow users to share via link" : "Permitir que os usuarios compartan a través de ligazóns",
"Enforce password protection" : "Forzar a protección por contrasinal",
"Allow public uploads" : "Permitir os envíos públicos",
+ "Allow users to send mail notification for shared files" : "Permitirlle aos usuarios enviar notificacións por correo para os ficheiros compartidos",
"Set default expiration date" : "Definir a data predeterminada de caducidade",
"Expire after " : "Caduca após",
"days" : "días",
"Enforce expiration date" : "Obrigar a data de caducidade",
"Allow resharing" : "Permitir compartir",
"Restrict users to only share with users in their groups" : "Restrinxir aos usuarios a compartir só cos usuarios dos seus grupos",
- "Allow users to send mail notification for shared files" : "Permitirlle aos usuarios enviar notificacións por correo para os ficheiros compartidos",
"Exclude groups from sharing" : "Excluír grupos da compartición",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderán recibir comparticións, mais non inicialas.",
"Enforce HTTPS" : "Forzar HTTPS",
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index f72ae5d272f..fc82f8965df 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -8,8 +8,6 @@
"Authentication error" : "Produciuse un erro de autenticación",
"Your full name has been changed." : "O seu nome completo foi cambiado",
"Unable to change full name" : "Non é posíbel cambiar o nome completo",
- "Group already exists" : "O grupo xa existe",
- "Unable to add group" : "Non é posíbel engadir o grupo",
"Files decrypted successfully" : "Ficheiros descifrados satisfactoriamente",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Non foi posíbel descifrar os seus ficheiros. revise o ficheiro de rexistro owncloud.log, ou pregúntelle ao administrador",
"Couldn't decrypt your files, check your password and try again" : "Non foi posíbel descifrar os seus ficheiros. revise o seu contrasinal e ténteo de novo",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Non foi posíbel retirar a aplicación.",
"Email saved" : "Correo gardado",
"Invalid email" : "Correo incorrecto",
- "Unable to delete group" : "Non é posíbel eliminar o grupo.",
- "Unable to delete user" : "Non é posíbel eliminar o usuario",
"Backups restored successfully" : "As copias de seguranza foron restauradas satisfactoriamente",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Non foi posíbel restaurar as chaves de cifrado. revise o ficheiro de rexistro owncloud.log, ou pregúntelle ao administrador",
"Language changed" : "O idioma cambiou",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Aviso de seguranza",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accedendo a %s a través de HTTP. Suxerímoslle que configure o seu servidor para requirir, no seu canto, o uso de HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.",
"Read-Only config enabled" : "Activada a restrición da configuración a só lectura",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Foi activada a restrición da configuración a só lectura. Isto impide o estabelecemento dalgunhas configuracións a través da interface web. Ademais, ten que facer escribíbel manualmente o ficheiro para cada actualización.",
"Setup Warning" : "Configurar os avisos",
@@ -118,7 +113,6 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomendámoslle que instale no sistema os paquetes necesarios para admitir unha das seguintes configuracións rexionais: %s.",
"URL generation in notification emails" : "Xeración dos URL nos correos de notificación",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación non foi feita na raíz do dominio e usa o sistema de cron, poden xurdir problemas coa xeración dos URL. Para evitar estes problemas, axuste a opción «overwritewebroot» no ficheiro config.php ás ruta de webroot da súa instalación (suxírese: «%s»)",
- "Connectivity Checks" : "Comprobacións de conectividade",
"No problems found" : "Non se atoparon problemas",
"Please double check the <a href='%s'>installation guides</a>." : "Volva comprobar as <a href='%s'>guías de instalación</a>",
"Last cron was executed at %s." : "O último «cron» executouse ás %s.",
@@ -131,13 +125,13 @@
"Allow users to share via link" : "Permitir que os usuarios compartan a través de ligazóns",
"Enforce password protection" : "Forzar a protección por contrasinal",
"Allow public uploads" : "Permitir os envíos públicos",
+ "Allow users to send mail notification for shared files" : "Permitirlle aos usuarios enviar notificacións por correo para os ficheiros compartidos",
"Set default expiration date" : "Definir a data predeterminada de caducidade",
"Expire after " : "Caduca após",
"days" : "días",
"Enforce expiration date" : "Obrigar a data de caducidade",
"Allow resharing" : "Permitir compartir",
"Restrict users to only share with users in their groups" : "Restrinxir aos usuarios a compartir só cos usuarios dos seus grupos",
- "Allow users to send mail notification for shared files" : "Permitirlle aos usuarios enviar notificacións por correo para os ficheiros compartidos",
"Exclude groups from sharing" : "Excluír grupos da compartición",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderán recibir comparticións, mais non inicialas.",
"Enforce HTTPS" : "Forzar HTTPS",
diff --git a/settings/l10n/he.js b/settings/l10n/he.js
index 72fe1591b13..014eb59dbaf 100644
--- a/settings/l10n/he.js
+++ b/settings/l10n/he.js
@@ -6,12 +6,8 @@ OC.L10N.register(
"Security" : "אבטחה",
"Log" : "יומן",
"Authentication error" : "שגיאת הזדהות",
- "Group already exists" : "הקבוצה כבר קיימת",
- "Unable to add group" : "לא ניתן להוסיף קבוצה",
"Email saved" : "הדוא״ל נשמר",
"Invalid email" : "דוא״ל לא חוקי",
- "Unable to delete group" : "לא ניתן למחוק את הקבוצה",
- "Unable to delete user" : "לא ניתן למחוק את המשתמש",
"Language changed" : "שפה השתנתה",
"Invalid request" : "בקשה לא חוקית",
"Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
diff --git a/settings/l10n/he.json b/settings/l10n/he.json
index 7f3ac6506e0..f9c3986d1a1 100644
--- a/settings/l10n/he.json
+++ b/settings/l10n/he.json
@@ -4,12 +4,8 @@
"Security" : "אבטחה",
"Log" : "יומן",
"Authentication error" : "שגיאת הזדהות",
- "Group already exists" : "הקבוצה כבר קיימת",
- "Unable to add group" : "לא ניתן להוסיף קבוצה",
"Email saved" : "הדוא״ל נשמר",
"Invalid email" : "דוא״ל לא חוקי",
- "Unable to delete group" : "לא ניתן למחוק את הקבוצה",
- "Unable to delete user" : "לא ניתן למחוק את המשתמש",
"Language changed" : "שפה השתנתה",
"Invalid request" : "בקשה לא חוקית",
"Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
diff --git a/settings/l10n/hr.js b/settings/l10n/hr.js
index ff690b743e3..e11664d13e5 100644
--- a/settings/l10n/hr.js
+++ b/settings/l10n/hr.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Pogrešna autentikacija",
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Unable to change full name" : "Puno ime nije moguće promijeniti.",
- "Group already exists" : "Grupa već postoji",
- "Unable to add group" : "Grupu nije moguće dodati",
"Files decrypted successfully" : "Datoteke uspješno dešifrirane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Vaše datoteke nije moguće dešifrirati, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.",
"Couldn't decrypt your files, check your password and try again" : "Vaše datoteke nije moguće dešifrirati, provjerite svoju lozinku i pokušajte ponovno.",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nije moguće ukloniti app.",
"Email saved" : "E-pošta spremljena",
"Invalid email" : "E-pošta neispravna",
- "Unable to delete group" : "Grupu nije moguće izbrisati",
- "Unable to delete user" : "Korisnika nije moguće izbrisati",
"Backups restored successfully" : "Sigurnosne kopije uspješno obnovljene",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Vaše ključeve za šifriranje nije moguće obnoviti, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.",
"Language changed" : "Promjena jezika",
@@ -96,7 +92,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Sigurnosno upozorenje",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vi %s pristupate putem HTTP. Toplo vam preporučujemo da svoj poslužitelj konfigurirate takoda umjesto HTTP zahtijeva korištenje HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vašem podatkovnom direktoriju i vašim datotekama pristup je vjerojatno moguć s interneta.Datoteka .htaccess ne radi. Toplo vam preporučujemo da svoj web poslužitelj konfigurirate tako daje pristup podatkovnom direktoriju nemoguć ili pak podatkovni direktorij premjestite izvan korijena dokumentaweb poslužitelja.",
"Setup Warning" : "Upozorenje programa za postavljanje",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.",
@@ -122,13 +117,13 @@ OC.L10N.register(
"Allow users to share via link" : "Dopustite korisnicia dijeljenje putem veze",
"Enforce password protection" : "Nametnite zaštitu lozinki",
"Allow public uploads" : "Dopustite javno učitavanje sadržaja",
+ "Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Set default expiration date" : "Postavite zadani datum isteka",
"Expire after " : "Istek nakon",
"days" : "dana",
"Enforce expiration date" : "Nametnite datum isteka",
"Allow resharing" : "Dopustite ponovno dijeljenje zajedničkih resursa",
"Restrict users to only share with users in their groups" : "Ograničite korisnike na meusobno dijeljenje resursa samo s korisnicima unutar svoje grupe",
- "Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Exclude groups from sharing" : "Isključite grupe iz dijeljenja zajedničkih resursa",
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene resurse, ali ne i inicirati ih",
"Enforce HTTPS" : "Nametnite HTTPS",
diff --git a/settings/l10n/hr.json b/settings/l10n/hr.json
index 4f28ba64adc..ecbcd19fddd 100644
--- a/settings/l10n/hr.json
+++ b/settings/l10n/hr.json
@@ -7,8 +7,6 @@
"Authentication error" : "Pogrešna autentikacija",
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Unable to change full name" : "Puno ime nije moguće promijeniti.",
- "Group already exists" : "Grupa već postoji",
- "Unable to add group" : "Grupu nije moguće dodati",
"Files decrypted successfully" : "Datoteke uspješno dešifrirane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Vaše datoteke nije moguće dešifrirati, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.",
"Couldn't decrypt your files, check your password and try again" : "Vaše datoteke nije moguće dešifrirati, provjerite svoju lozinku i pokušajte ponovno.",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Nije moguće ukloniti app.",
"Email saved" : "E-pošta spremljena",
"Invalid email" : "E-pošta neispravna",
- "Unable to delete group" : "Grupu nije moguće izbrisati",
- "Unable to delete user" : "Korisnika nije moguće izbrisati",
"Backups restored successfully" : "Sigurnosne kopije uspješno obnovljene",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Vaše ključeve za šifriranje nije moguće obnoviti, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.",
"Language changed" : "Promjena jezika",
@@ -94,7 +90,6 @@
"TLS" : "TLS",
"Security Warning" : "Sigurnosno upozorenje",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vi %s pristupate putem HTTP. Toplo vam preporučujemo da svoj poslužitelj konfigurirate takoda umjesto HTTP zahtijeva korištenje HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vašem podatkovnom direktoriju i vašim datotekama pristup je vjerojatno moguć s interneta.Datoteka .htaccess ne radi. Toplo vam preporučujemo da svoj web poslužitelj konfigurirate tako daje pristup podatkovnom direktoriju nemoguć ili pak podatkovni direktorij premjestite izvan korijena dokumentaweb poslužitelja.",
"Setup Warning" : "Upozorenje programa za postavljanje",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.",
@@ -120,13 +115,13 @@
"Allow users to share via link" : "Dopustite korisnicia dijeljenje putem veze",
"Enforce password protection" : "Nametnite zaštitu lozinki",
"Allow public uploads" : "Dopustite javno učitavanje sadržaja",
+ "Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Set default expiration date" : "Postavite zadani datum isteka",
"Expire after " : "Istek nakon",
"days" : "dana",
"Enforce expiration date" : "Nametnite datum isteka",
"Allow resharing" : "Dopustite ponovno dijeljenje zajedničkih resursa",
"Restrict users to only share with users in their groups" : "Ograničite korisnike na meusobno dijeljenje resursa samo s korisnicima unutar svoje grupe",
- "Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Exclude groups from sharing" : "Isključite grupe iz dijeljenja zajedničkih resursa",
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene resurse, ali ne i inicirati ih",
"Enforce HTTPS" : "Nametnite HTTPS",
diff --git a/settings/l10n/hu_HU.js b/settings/l10n/hu_HU.js
index 4a83a78a977..fc746d43f94 100644
--- a/settings/l10n/hu_HU.js
+++ b/settings/l10n/hu_HU.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Azonosítási hiba",
"Your full name has been changed." : "Az Ön teljes nevét módosítottuk.",
"Unable to change full name" : "Nem sikerült megváltoztatni a teljes nevét",
- "Group already exists" : "A csoport már létezik",
- "Unable to add group" : "A csoport nem hozható létre",
"Files decrypted successfully" : "A fájlok titkosítását sikeresen megszüntettük.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Fájljainak titkosítását nem sikerült megszüntetni, kérjük forduljon a rendszergazdához!",
"Couldn't decrypt your files, check your password and try again" : "Fájljainak titkosítását nem sikerült megszüntetni, ellenőrizze a jelszavát, és próbálja újra!",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.",
"Email saved" : "Elmentettük az e-mail címet",
"Invalid email" : "Hibás e-mail",
- "Unable to delete group" : "A csoport nem törölhető",
- "Unable to delete user" : "A felhasználó nem törölhető",
"Backups restored successfully" : "A kulcsokat sikereresen visszaállítottuk a mentésekből.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "A titkosítási kulcsok visszaállítása nem sikerült. Kérjük ellenőrizze az owncloud.log naplófájlt vagy forduljon a rendszergazdához!",
"Language changed" : "A nyelv megváltozott",
@@ -96,7 +92,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Biztonsági figyelmeztetés",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "A %s szolgáltatás elérése jelenleg HTTP-n keresztül történik. Nagyon ajánlott, hogy a kiszolgálót úgy állítsa be, hogy az elérés HTTPS-en keresztül történjék.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon erősen ajánlott, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár ne legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre.",
"Setup Warning" : "A beállítással kapcsolatos figyelmeztetés",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.",
@@ -122,13 +117,13 @@ OC.L10N.register(
"Allow users to share via link" : "Engedjük meg az állományok linkekkel történő megosztását",
"Enforce password protection" : "Legyen kötelező a linkek jelszóval való védelme",
"Allow public uploads" : "Nyilvános feltöltés engedélyezése",
+ "Allow users to send mail notification for shared files" : "A felhasználók küldhessenek e-mail értesítést a megosztás létrejöttéről",
"Set default expiration date" : "Alapértelmezett lejárati idő beállítása",
"Expire after " : "A lejárat legyen",
"days" : "nap",
"Enforce expiration date" : "A beállított lejárati idő legyen kötelezően érvényes",
"Allow resharing" : "A megosztás továbbadásának engedélyezése",
"Restrict users to only share with users in their groups" : "A csoporttagok csak a saját csoportjukon belül oszthassanak meg anyagokat",
- "Allow users to send mail notification for shared files" : "A felhasználók küldhessenek e-mail értesítést a megosztás létrejöttéről",
"Exclude groups from sharing" : "Csoportok megosztási jogának tiltása",
"These groups will still be able to receive shares, but not to initiate them." : "E csoportok tagjaival meg lehet osztani anyagokat, de ők nem hozhatnak létre megosztást.",
"Enforce HTTPS" : "Kötelező HTTPS",
diff --git a/settings/l10n/hu_HU.json b/settings/l10n/hu_HU.json
index 01895bb8b9f..b4204c0d126 100644
--- a/settings/l10n/hu_HU.json
+++ b/settings/l10n/hu_HU.json
@@ -7,8 +7,6 @@
"Authentication error" : "Azonosítási hiba",
"Your full name has been changed." : "Az Ön teljes nevét módosítottuk.",
"Unable to change full name" : "Nem sikerült megváltoztatni a teljes nevét",
- "Group already exists" : "A csoport már létezik",
- "Unable to add group" : "A csoport nem hozható létre",
"Files decrypted successfully" : "A fájlok titkosítását sikeresen megszüntettük.",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Fájljainak titkosítását nem sikerült megszüntetni, kérjük forduljon a rendszergazdához!",
"Couldn't decrypt your files, check your password and try again" : "Fájljainak titkosítását nem sikerült megszüntetni, ellenőrizze a jelszavát, és próbálja újra!",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.",
"Email saved" : "Elmentettük az e-mail címet",
"Invalid email" : "Hibás e-mail",
- "Unable to delete group" : "A csoport nem törölhető",
- "Unable to delete user" : "A felhasználó nem törölhető",
"Backups restored successfully" : "A kulcsokat sikereresen visszaállítottuk a mentésekből.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "A titkosítási kulcsok visszaállítása nem sikerült. Kérjük ellenőrizze az owncloud.log naplófájlt vagy forduljon a rendszergazdához!",
"Language changed" : "A nyelv megváltozott",
@@ -94,7 +90,6 @@
"TLS" : "TLS",
"Security Warning" : "Biztonsági figyelmeztetés",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "A %s szolgáltatás elérése jelenleg HTTP-n keresztül történik. Nagyon ajánlott, hogy a kiszolgálót úgy állítsa be, hogy az elérés HTTPS-en keresztül történjék.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon erősen ajánlott, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár ne legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre.",
"Setup Warning" : "A beállítással kapcsolatos figyelmeztetés",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.",
@@ -120,13 +115,13 @@
"Allow users to share via link" : "Engedjük meg az állományok linkekkel történő megosztását",
"Enforce password protection" : "Legyen kötelező a linkek jelszóval való védelme",
"Allow public uploads" : "Nyilvános feltöltés engedélyezése",
+ "Allow users to send mail notification for shared files" : "A felhasználók küldhessenek e-mail értesítést a megosztás létrejöttéről",
"Set default expiration date" : "Alapértelmezett lejárati idő beállítása",
"Expire after " : "A lejárat legyen",
"days" : "nap",
"Enforce expiration date" : "A beállított lejárati idő legyen kötelezően érvényes",
"Allow resharing" : "A megosztás továbbadásának engedélyezése",
"Restrict users to only share with users in their groups" : "A csoporttagok csak a saját csoportjukon belül oszthassanak meg anyagokat",
- "Allow users to send mail notification for shared files" : "A felhasználók küldhessenek e-mail értesítést a megosztás létrejöttéről",
"Exclude groups from sharing" : "Csoportok megosztási jogának tiltása",
"These groups will still be able to receive shares, but not to initiate them." : "E csoportok tagjaival meg lehet osztani anyagokat, de ők nem hozhatnak létre megosztást.",
"Enforce HTTPS" : "Kötelező HTTPS",
diff --git a/settings/l10n/id.js b/settings/l10n/id.js
index c772bc8127c..58d29aa64ff 100644
--- a/settings/l10n/id.js
+++ b/settings/l10n/id.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Terjadi kesalahan saat otentikasi",
"Your full name has been changed." : "Nama lengkap Anda telah diubah",
"Unable to change full name" : "Tidak dapat mengubah nama lengkap",
- "Group already exists" : "Grup sudah ada",
- "Unable to add group" : "Tidak dapat menambah grup",
"Files decrypted successfully" : "Berkas berhasil dideskripsi",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tidak dapat mendeskripsi berkas Anda, mohon periksa owncloud.log Anda atau tanyakan pada administrator Anda",
"Couldn't decrypt your files, check your password and try again" : "Tidak dapat mendeskripsi berkas Anda, periksa sandi Anda dan coba lagi",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
"Email saved" : "Email disimpan",
"Invalid email" : "Email tidak valid",
- "Unable to delete group" : "Tidak dapat menghapus grup",
- "Unable to delete user" : "Tidak dapat menghapus pengguna",
"Backups restored successfully" : "Cadangan berhasil dipulihkan",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Tidak dapat memulihkan kunci enkripsi Anda, mohon periksa owncloud.log Anda atau tanyakan pada administrator Anda.",
"Language changed" : "Bahasa telah diubah",
@@ -101,7 +97,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Peringatan Keamanan",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Anda mengakses %s melalui HTTP. Kami sangat menyarankan Anda untuk mengkonfigurasi server dengan menggunakan HTTPS sebagai gantinya.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Direktori data dan berkas Anda mungkin dapat diakses dari internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan untuk mengkonfigurasi server web Anda agar direktori data tidak lagi dapat diakses atau Anda dapat memindahkan direktori data di luar dokumen root webserver.",
"Setup Warning" : "Peringatan Pengaturan",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
@@ -128,13 +123,13 @@ OC.L10N.register(
"Allow users to share via link" : "Izinkan pengguna untuk membagikan via tautan",
"Enforce password protection" : "Berlakukan perlindungan sandi",
"Allow public uploads" : "Izinkan unggahan publik",
+ "Allow users to send mail notification for shared files" : "Izinkan pengguna untuk mengirimkan email pemberitahuan untuk berkas berbagi",
"Set default expiration date" : "Atur tanggal kadaluarsa default",
"Expire after " : "Kadaluarsa setelah",
"days" : "hari",
"Enforce expiration date" : "Berlakukan tanggal kadaluarsa",
"Allow resharing" : "Izinkan pembagian ulang",
"Restrict users to only share with users in their groups" : "Batasi pengguna untuk hanya membagikan dengan pengguna didalam grup mereka",
- "Allow users to send mail notification for shared files" : "Izinkan pengguna untuk mengirimkan email pemberitahuan untuk berkas berbagi",
"Exclude groups from sharing" : "Tidak termasuk grup untuk berbagi",
"These groups will still be able to receive shares, but not to initiate them." : "Grup ini akan tetap dapat menerima berbagi, tatapi tidak dapat membagikan.",
"Enforce HTTPS" : "Selalu Gunakan HTTPS",
diff --git a/settings/l10n/id.json b/settings/l10n/id.json
index 5a507822b59..b2de287e5fb 100644
--- a/settings/l10n/id.json
+++ b/settings/l10n/id.json
@@ -7,8 +7,6 @@
"Authentication error" : "Terjadi kesalahan saat otentikasi",
"Your full name has been changed." : "Nama lengkap Anda telah diubah",
"Unable to change full name" : "Tidak dapat mengubah nama lengkap",
- "Group already exists" : "Grup sudah ada",
- "Unable to add group" : "Tidak dapat menambah grup",
"Files decrypted successfully" : "Berkas berhasil dideskripsi",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tidak dapat mendeskripsi berkas Anda, mohon periksa owncloud.log Anda atau tanyakan pada administrator Anda",
"Couldn't decrypt your files, check your password and try again" : "Tidak dapat mendeskripsi berkas Anda, periksa sandi Anda dan coba lagi",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
"Email saved" : "Email disimpan",
"Invalid email" : "Email tidak valid",
- "Unable to delete group" : "Tidak dapat menghapus grup",
- "Unable to delete user" : "Tidak dapat menghapus pengguna",
"Backups restored successfully" : "Cadangan berhasil dipulihkan",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Tidak dapat memulihkan kunci enkripsi Anda, mohon periksa owncloud.log Anda atau tanyakan pada administrator Anda.",
"Language changed" : "Bahasa telah diubah",
@@ -99,7 +95,6 @@
"TLS" : "TLS",
"Security Warning" : "Peringatan Keamanan",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Anda mengakses %s melalui HTTP. Kami sangat menyarankan Anda untuk mengkonfigurasi server dengan menggunakan HTTPS sebagai gantinya.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Direktori data dan berkas Anda mungkin dapat diakses dari internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan untuk mengkonfigurasi server web Anda agar direktori data tidak lagi dapat diakses atau Anda dapat memindahkan direktori data di luar dokumen root webserver.",
"Setup Warning" : "Peringatan Pengaturan",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
@@ -126,13 +121,13 @@
"Allow users to share via link" : "Izinkan pengguna untuk membagikan via tautan",
"Enforce password protection" : "Berlakukan perlindungan sandi",
"Allow public uploads" : "Izinkan unggahan publik",
+ "Allow users to send mail notification for shared files" : "Izinkan pengguna untuk mengirimkan email pemberitahuan untuk berkas berbagi",
"Set default expiration date" : "Atur tanggal kadaluarsa default",
"Expire after " : "Kadaluarsa setelah",
"days" : "hari",
"Enforce expiration date" : "Berlakukan tanggal kadaluarsa",
"Allow resharing" : "Izinkan pembagian ulang",
"Restrict users to only share with users in their groups" : "Batasi pengguna untuk hanya membagikan dengan pengguna didalam grup mereka",
- "Allow users to send mail notification for shared files" : "Izinkan pengguna untuk mengirimkan email pemberitahuan untuk berkas berbagi",
"Exclude groups from sharing" : "Tidak termasuk grup untuk berbagi",
"These groups will still be able to receive shares, but not to initiate them." : "Grup ini akan tetap dapat menerima berbagi, tatapi tidak dapat membagikan.",
"Enforce HTTPS" : "Selalu Gunakan HTTPS",
diff --git a/settings/l10n/is.js b/settings/l10n/is.js
index d6d42ad0536..6e6fd5c902a 100644
--- a/settings/l10n/is.js
+++ b/settings/l10n/is.js
@@ -2,12 +2,8 @@ OC.L10N.register(
"settings",
{
"Authentication error" : "Villa við auðkenningu",
- "Group already exists" : "Hópur er þegar til",
- "Unable to add group" : "Ekki tókst að bæta við hóp",
"Email saved" : "Netfang vistað",
"Invalid email" : "Ógilt netfang",
- "Unable to delete group" : "Ekki tókst að eyða hóp",
- "Unable to delete user" : "Ekki tókst að eyða notenda",
"Language changed" : "Tungumáli breytt",
"Invalid request" : "Ógild fyrirspurn",
"Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
diff --git a/settings/l10n/is.json b/settings/l10n/is.json
index d61b3ccfd1c..5a957e8e626 100644
--- a/settings/l10n/is.json
+++ b/settings/l10n/is.json
@@ -1,11 +1,7 @@
{ "translations": {
"Authentication error" : "Villa við auðkenningu",
- "Group already exists" : "Hópur er þegar til",
- "Unable to add group" : "Ekki tókst að bæta við hóp",
"Email saved" : "Netfang vistað",
"Invalid email" : "Ógilt netfang",
- "Unable to delete group" : "Ekki tókst að eyða hóp",
- "Unable to delete user" : "Ekki tókst að eyða notenda",
"Language changed" : "Tungumáli breytt",
"Invalid request" : "Ógild fyrirspurn",
"Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 14ed39b3711..279c9f0836c 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Errore di autenticazione",
"Your full name has been changed." : "Il tuo nome completo è stato cambiato.",
"Unable to change full name" : "Impossibile cambiare il nome completo",
- "Group already exists" : "Il gruppo esiste già",
- "Unable to add group" : "Impossibile aggiungere il gruppo",
"Files decrypted successfully" : "File decifrato correttamente",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossibile decifrare i tuoi file, controlla il file owncloud.log o chiedi al tuo amministratore",
"Couldn't decrypt your files, check your password and try again" : "Impossibile decifrare i tuoi file, controlla la password e prova ancora",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
"Email saved" : "Email salvata",
"Invalid email" : "Email non valida",
- "Unable to delete group" : "Impossibile eliminare il gruppo",
- "Unable to delete user" : "Impossibile eliminare l'utente",
"Backups restored successfully" : "Copie di sicurezza ripristinate correttamente",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossibile ripristinare le chiavi di cifratura, controlla il file owncloud.log o chiedi al tuo amministratore",
"Language changed" : "Lingua modificata",
@@ -102,8 +98,8 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Avviso di sicurezza",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sei connesso a %s tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere l'utilizzo del protocollo HTTPS al posto di HTTP.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o spostare la cartella fuori dalla radice del server web.",
- "Read-Only config enabled" : "Config di sola lettura abilitata",
+ "Read-Only config enabled" : "Configurazione di sola lettura abilitata",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configurazione di sola lettura è stata abilitata. Ciò impedisce l'impostazione di alcune configurazioni tramite l'interfaccia web. Inoltre, i file devono essere resi scrivibili manualmente per ogni aggiornamento.",
"Setup Warning" : "Avviso di configurazione",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.",
@@ -119,7 +115,6 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Consigliamo vivamente di installare i pacchetti richiesti sul tuo sistema per supportare una delle localizzazioni seguenti: %s.",
"URL generation in notification emails" : "Generazione di URL nelle email di notifica",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwritewebroot\" nel file config.php al percorso della radice del sito della tua installazione (Suggerito: \"%s\")",
- "Connectivity Checks" : "Controlli di connettività",
"No problems found" : "Nessun problema trovato",
"Please double check the <a href='%s'>installation guides</a>." : "Leggi attentamente le <a href='%s'>guide d'installazione</a>.",
"Last cron was executed at %s." : "L'ultimo cron è stato eseguito alle %s.",
@@ -132,13 +127,13 @@ OC.L10N.register(
"Allow users to share via link" : "Consenti agli utenti di condivere tramite collegamento",
"Enforce password protection" : "Imponi la protezione con password",
"Allow public uploads" : "Consenti caricamenti pubblici",
+ "Allow users to send mail notification for shared files" : "Consenti agli utenti di inviare email di notifica per i file condivisi",
"Set default expiration date" : "Imposta data di scadenza predefinita",
"Expire after " : "Scadenza dopo",
"days" : "giorni",
"Enforce expiration date" : "Forza la data di scadenza",
"Allow resharing" : "Consenti la ri-condivisione",
"Restrict users to only share with users in their groups" : "Limita gli utenti a condividere solo con gli utenti nei loro gruppi",
- "Allow users to send mail notification for shared files" : "Consenti agli utenti di inviare email di notifica per i file condivisi",
"Exclude groups from sharing" : "Escludi gruppi dalla condivisione",
"These groups will still be able to receive shares, but not to initiate them." : "Questi gruppi saranno in grado di ricevere condivisioni, ma non iniziarle.",
"Enforce HTTPS" : "Forza HTTPS",
@@ -172,6 +167,7 @@ OC.L10N.register(
"Documentation:" : "Documentazione:",
"User Documentation" : "Documentazione utente",
"Admin Documentation" : "Documentazione di amministrazione",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
"Update to %s" : "Aggiornato a %s",
"Enable only for specific groups" : "Abilita solo per gruppi specifici",
"Uninstall App" : "Disinstalla applicazione",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 15429d9fec3..7211fe5a309 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -8,8 +8,6 @@
"Authentication error" : "Errore di autenticazione",
"Your full name has been changed." : "Il tuo nome completo è stato cambiato.",
"Unable to change full name" : "Impossibile cambiare il nome completo",
- "Group already exists" : "Il gruppo esiste già",
- "Unable to add group" : "Impossibile aggiungere il gruppo",
"Files decrypted successfully" : "File decifrato correttamente",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossibile decifrare i tuoi file, controlla il file owncloud.log o chiedi al tuo amministratore",
"Couldn't decrypt your files, check your password and try again" : "Impossibile decifrare i tuoi file, controlla la password e prova ancora",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
"Email saved" : "Email salvata",
"Invalid email" : "Email non valida",
- "Unable to delete group" : "Impossibile eliminare il gruppo",
- "Unable to delete user" : "Impossibile eliminare l'utente",
"Backups restored successfully" : "Copie di sicurezza ripristinate correttamente",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossibile ripristinare le chiavi di cifratura, controlla il file owncloud.log o chiedi al tuo amministratore",
"Language changed" : "Lingua modificata",
@@ -100,8 +96,8 @@
"TLS" : "TLS",
"Security Warning" : "Avviso di sicurezza",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sei connesso a %s tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere l'utilizzo del protocollo HTTPS al posto di HTTP.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o spostare la cartella fuori dalla radice del server web.",
- "Read-Only config enabled" : "Config di sola lettura abilitata",
+ "Read-Only config enabled" : "Configurazione di sola lettura abilitata",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configurazione di sola lettura è stata abilitata. Ciò impedisce l'impostazione di alcune configurazioni tramite l'interfaccia web. Inoltre, i file devono essere resi scrivibili manualmente per ogni aggiornamento.",
"Setup Warning" : "Avviso di configurazione",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.",
@@ -117,7 +113,6 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Consigliamo vivamente di installare i pacchetti richiesti sul tuo sistema per supportare una delle localizzazioni seguenti: %s.",
"URL generation in notification emails" : "Generazione di URL nelle email di notifica",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwritewebroot\" nel file config.php al percorso della radice del sito della tua installazione (Suggerito: \"%s\")",
- "Connectivity Checks" : "Controlli di connettività",
"No problems found" : "Nessun problema trovato",
"Please double check the <a href='%s'>installation guides</a>." : "Leggi attentamente le <a href='%s'>guide d'installazione</a>.",
"Last cron was executed at %s." : "L'ultimo cron è stato eseguito alle %s.",
@@ -130,13 +125,13 @@
"Allow users to share via link" : "Consenti agli utenti di condivere tramite collegamento",
"Enforce password protection" : "Imponi la protezione con password",
"Allow public uploads" : "Consenti caricamenti pubblici",
+ "Allow users to send mail notification for shared files" : "Consenti agli utenti di inviare email di notifica per i file condivisi",
"Set default expiration date" : "Imposta data di scadenza predefinita",
"Expire after " : "Scadenza dopo",
"days" : "giorni",
"Enforce expiration date" : "Forza la data di scadenza",
"Allow resharing" : "Consenti la ri-condivisione",
"Restrict users to only share with users in their groups" : "Limita gli utenti a condividere solo con gli utenti nei loro gruppi",
- "Allow users to send mail notification for shared files" : "Consenti agli utenti di inviare email di notifica per i file condivisi",
"Exclude groups from sharing" : "Escludi gruppi dalla condivisione",
"These groups will still be able to receive shares, but not to initiate them." : "Questi gruppi saranno in grado di ricevere condivisioni, ma non iniziarle.",
"Enforce HTTPS" : "Forza HTTPS",
@@ -170,6 +165,7 @@
"Documentation:" : "Documentazione:",
"User Documentation" : "Documentazione utente",
"Admin Documentation" : "Documentazione di amministrazione",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
"Update to %s" : "Aggiornato a %s",
"Enable only for specific groups" : "Abilita solo per gruppi specifici",
"Uninstall App" : "Disinstalla applicazione",
diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js
index 572ae5511c8..e8e94deeaa1 100644
--- a/settings/l10n/ja.js
+++ b/settings/l10n/ja.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "認証エラー",
"Your full name has been changed." : "名前を変更しました。",
"Unable to change full name" : "名前を変更できません",
- "Group already exists" : "グループはすでに存在します",
- "Unable to add group" : "グループを追加できません",
"Files decrypted successfully" : "ファイルの復号化に成功しました",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "ファイルを復号化することができませんでした。owncloud.logを調査するか、管理者に連絡してください。",
"Couldn't decrypt your files, check your password and try again" : "ファイルを復号化することができませんでした。パスワードを確認のうえ再試行してください。",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "アプリが削除できませんでした。",
"Email saved" : "メールアドレスを保存しました",
"Invalid email" : "無効なメールアドレス",
- "Unable to delete group" : "グループを削除できません",
- "Unable to delete user" : "ユーザーを削除できません",
"Backups restored successfully" : "バックアップの復元に成功しました",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "暗号化キーを復元できませんでした。owncloud.logを確認するか、管理者に問い合わせてください。",
"Language changed" : "言語が変更されました",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "有効",
"Not enabled" : "無効",
"Recommended" : "推奨",
+ "Group already exists." : "グループは既に存在しています",
+ "Unable to add group." : "グループを追加できません",
+ "Unable to delete group." : "グループを削除できません",
"Saved" : "保存されました",
"test email settings" : "メール設定のテスト",
"If you received this email, the settings seem to be correct." : "このメールを受け取ったら、設定は正しいはずです。",
"A problem occurred while sending the email. Please revise your settings." : "メールの送信中に問題が発生しました。設定を確認してください。",
"Email sent" : "メールを送信しました",
"You need to set your user email before being able to send test emails." : "ユーザーメールを設定して初めて、テストメールを送信することができるようになります。",
+ "Unable to create user." : "ユーザを追加できません",
+ "Unable to delete user." : "ユーザを削除できません",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" を信頼するドメインに追加してもよろしいでしょうか?",
"Add trusted domain" : "信頼するドメイン名に追加",
"Sending..." : "送信中…",
@@ -102,7 +103,8 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "セキュリティ警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "HTTP経由で %s にアクセスしています。HTTPSを使用するようサーバーを設定することを強くおすすめします。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリにアクセスできないようWebサーバーを設定するか、データディレクトリをWebサーバーのドキュメントルートから移動するよう強く提案します。",
+ "Read-Only config enabled" : "\"config\"は読み取り専用になってます",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要",
"Setup Warning" : "セットアップ警告",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
@@ -115,9 +117,10 @@ OC.L10N.register(
"Locale not working" : "ロケールが動作していません",
"System locale can not be set to a one which supports UTF-8." : "システムロケールを UTF-8 をサポートするロケールに設定できません。",
"This means that there might be problems with certain characters in file names." : "これは、ファイル名の特定の文字に問題があることを意味しています。",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするために、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
"URL generation in notification emails" : "通知メールにURLを生成",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "もし、URLがドメインのルート(/)で終わっていない場合で、システムのcronを利用している場合、URLの生成に問題が発生します。その場合は、config.php ファイルの中の \"overwritewebroot\" オプションをインストールしたパスに設定してください。(推奨: \"%s\")",
- "Connectivity Checks" : "接続の確認",
+ "Configuration Checks" : "設定を確認",
"No problems found" : "問題は見つかりませんでした",
"Please double check the <a href='%s'>installation guides</a>." : "<a href='%s'>インストールガイド</a>をよく確認してください。",
"Last cron was executed at %s." : "直近では%sにcronが実行されました。",
@@ -130,13 +133,13 @@ OC.L10N.register(
"Allow users to share via link" : "URLリンクで共有を許可する",
"Enforce password protection" : "常にパスワード保護を有効にする",
"Allow public uploads" : "パブリックなアップロードを許可する",
+ "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する",
"Set default expiration date" : "有効期限のデフォルト値を設定",
"Expire after " : "無効になるまで",
"days" : "日",
"Enforce expiration date" : "有効期限を反映させる",
"Allow resharing" : "再共有を許可する",
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
- "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する",
"Exclude groups from sharing" : "共有可能なグループから除外",
"These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。",
"Enforce HTTPS" : "常にHTTPSを使用する",
@@ -170,6 +173,7 @@ OC.L10N.register(
"Documentation:" : "ドキュメント:",
"User Documentation" : "ユーザードキュメント",
"Admin Documentation" : "管理者ドキュメント",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係は無いためこのアプリをインストールできません",
"Update to %s" : "%sにアップデート",
"Enable only for specific groups" : "特定のグループのみ有効に",
"Uninstall App" : "アプリをアンインストール",
@@ -219,6 +223,7 @@ OC.L10N.register(
"Create" : "作成",
"Admin Recovery Password" : "管理者リカバリパスワード",
"Enter the recovery password in order to recover the users files during password change" : "パスワード変更時のユーザーのファイルを回復するため、リカバリパスワードを入力してください",
+ "Search Users" : "ユーザーを検索",
"Add Group" : "グループを追加",
"Group" : "グループ",
"Everyone" : "すべてのユーザー",
diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json
index 37048e345ac..a49787c543d 100644
--- a/settings/l10n/ja.json
+++ b/settings/l10n/ja.json
@@ -8,8 +8,6 @@
"Authentication error" : "認証エラー",
"Your full name has been changed." : "名前を変更しました。",
"Unable to change full name" : "名前を変更できません",
- "Group already exists" : "グループはすでに存在します",
- "Unable to add group" : "グループを追加できません",
"Files decrypted successfully" : "ファイルの復号化に成功しました",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "ファイルを復号化することができませんでした。owncloud.logを調査するか、管理者に連絡してください。",
"Couldn't decrypt your files, check your password and try again" : "ファイルを復号化することができませんでした。パスワードを確認のうえ再試行してください。",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "アプリが削除できませんでした。",
"Email saved" : "メールアドレスを保存しました",
"Invalid email" : "無効なメールアドレス",
- "Unable to delete group" : "グループを削除できません",
- "Unable to delete user" : "ユーザーを削除できません",
"Backups restored successfully" : "バックアップの復元に成功しました",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "暗号化キーを復元できませんでした。owncloud.logを確認するか、管理者に問い合わせてください。",
"Language changed" : "言語が変更されました",
@@ -37,12 +33,17 @@
"Enabled" : "有効",
"Not enabled" : "無効",
"Recommended" : "推奨",
+ "Group already exists." : "グループは既に存在しています",
+ "Unable to add group." : "グループを追加できません",
+ "Unable to delete group." : "グループを削除できません",
"Saved" : "保存されました",
"test email settings" : "メール設定のテスト",
"If you received this email, the settings seem to be correct." : "このメールを受け取ったら、設定は正しいはずです。",
"A problem occurred while sending the email. Please revise your settings." : "メールの送信中に問題が発生しました。設定を確認してください。",
"Email sent" : "メールを送信しました",
"You need to set your user email before being able to send test emails." : "ユーザーメールを設定して初めて、テストメールを送信することができるようになります。",
+ "Unable to create user." : "ユーザを追加できません",
+ "Unable to delete user." : "ユーザを削除できません",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" を信頼するドメインに追加してもよろしいでしょうか?",
"Add trusted domain" : "信頼するドメイン名に追加",
"Sending..." : "送信中…",
@@ -100,7 +101,8 @@
"TLS" : "TLS",
"Security Warning" : "セキュリティ警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "HTTP経由で %s にアクセスしています。HTTPSを使用するようサーバーを設定することを強くおすすめします。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリにアクセスできないようWebサーバーを設定するか、データディレクトリをWebサーバーのドキュメントルートから移動するよう強く提案します。",
+ "Read-Only config enabled" : "\"config\"は読み取り専用になってます",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要",
"Setup Warning" : "セットアップ警告",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
@@ -113,9 +115,10 @@
"Locale not working" : "ロケールが動作していません",
"System locale can not be set to a one which supports UTF-8." : "システムロケールを UTF-8 をサポートするロケールに設定できません。",
"This means that there might be problems with certain characters in file names." : "これは、ファイル名の特定の文字に問題があることを意味しています。",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするために、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
"URL generation in notification emails" : "通知メールにURLを生成",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "もし、URLがドメインのルート(/)で終わっていない場合で、システムのcronを利用している場合、URLの生成に問題が発生します。その場合は、config.php ファイルの中の \"overwritewebroot\" オプションをインストールしたパスに設定してください。(推奨: \"%s\")",
- "Connectivity Checks" : "接続の確認",
+ "Configuration Checks" : "設定を確認",
"No problems found" : "問題は見つかりませんでした",
"Please double check the <a href='%s'>installation guides</a>." : "<a href='%s'>インストールガイド</a>をよく確認してください。",
"Last cron was executed at %s." : "直近では%sにcronが実行されました。",
@@ -128,13 +131,13 @@
"Allow users to share via link" : "URLリンクで共有を許可する",
"Enforce password protection" : "常にパスワード保護を有効にする",
"Allow public uploads" : "パブリックなアップロードを許可する",
+ "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する",
"Set default expiration date" : "有効期限のデフォルト値を設定",
"Expire after " : "無効になるまで",
"days" : "日",
"Enforce expiration date" : "有効期限を反映させる",
"Allow resharing" : "再共有を許可する",
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
- "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する",
"Exclude groups from sharing" : "共有可能なグループから除外",
"These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。",
"Enforce HTTPS" : "常にHTTPSを使用する",
@@ -168,6 +171,7 @@
"Documentation:" : "ドキュメント:",
"User Documentation" : "ユーザードキュメント",
"Admin Documentation" : "管理者ドキュメント",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係は無いためこのアプリをインストールできません",
"Update to %s" : "%sにアップデート",
"Enable only for specific groups" : "特定のグループのみ有効に",
"Uninstall App" : "アプリをアンインストール",
@@ -217,6 +221,7 @@
"Create" : "作成",
"Admin Recovery Password" : "管理者リカバリパスワード",
"Enter the recovery password in order to recover the users files during password change" : "パスワード変更時のユーザーのファイルを回復するため、リカバリパスワードを入力してください",
+ "Search Users" : "ユーザーを検索",
"Add Group" : "グループを追加",
"Group" : "グループ",
"Everyone" : "すべてのユーザー",
diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js
index 8851b231382..57299f31a03 100644
--- a/settings/l10n/ka_GE.js
+++ b/settings/l10n/ka_GE.js
@@ -6,12 +6,8 @@ OC.L10N.register(
"Security" : "უსაფრთხოება",
"Log" : "ლოგი",
"Authentication error" : "ავთენტიფიკაციის შეცდომა",
- "Group already exists" : "ჯგუფი უკვე არსებობს",
- "Unable to add group" : "ჯგუფის დამატება ვერ მოხერხდა",
"Email saved" : "იმეილი შენახულია",
"Invalid email" : "არასწორი იმეილი",
- "Unable to delete group" : "ჯგუფის წაშლა ვერ მოხერხდა",
- "Unable to delete user" : "მომხმარებლის წაშლა ვერ მოხერხდა",
"Language changed" : "ენა შეცვლილია",
"Invalid request" : "არასწორი მოთხოვნა",
"Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json
index 0072516dfd8..efee60ffe9f 100644
--- a/settings/l10n/ka_GE.json
+++ b/settings/l10n/ka_GE.json
@@ -4,12 +4,8 @@
"Security" : "უსაფრთხოება",
"Log" : "ლოგი",
"Authentication error" : "ავთენტიფიკაციის შეცდომა",
- "Group already exists" : "ჯგუფი უკვე არსებობს",
- "Unable to add group" : "ჯგუფის დამატება ვერ მოხერხდა",
"Email saved" : "იმეილი შენახულია",
"Invalid email" : "არასწორი იმეილი",
- "Unable to delete group" : "ჯგუფის წაშლა ვერ მოხერხდა",
- "Unable to delete user" : "მომხმარებლის წაშლა ვერ მოხერხდა",
"Language changed" : "ენა შეცვლილია",
"Invalid request" : "არასწორი მოთხოვნა",
"Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
diff --git a/settings/l10n/km.js b/settings/l10n/km.js
index f19faf4d11b..213c4e4300b 100644
--- a/settings/l10n/km.js
+++ b/settings/l10n/km.js
@@ -7,12 +7,8 @@ OC.L10N.register(
"Email Server" : "ម៉ាស៊ីន​បម្រើ​អ៊ីមែល",
"Log" : "Log",
"Authentication error" : "កំហុស​ការ​ផ្ទៀង​ផ្ទាត់​ភាព​ត្រឹម​ត្រូវ",
- "Group already exists" : "មាន​ក្រុម​នេះ​រួច​ហើយ",
- "Unable to add group" : "មិន​អាច​បន្ថែម​ក្រុម",
"Email saved" : "បាន​រក្សា​ទុក​អ៊ីមែល",
"Invalid email" : "អ៊ីមែល​មិន​ត្រឹម​ត្រូវ",
- "Unable to delete group" : "មិន​អាច​លុប​ក្រុម​បាន",
- "Unable to delete user" : "មិន​អាច​លុប​អ្នក​ប្រើ​បាន",
"Language changed" : "បាន​ប្ដូរ​ភាសា",
"Invalid request" : "សំណើ​មិន​ត្រឹម​ត្រូវ",
"Admins can't remove themself from the admin group" : "អ្នក​គ្រប់​គ្រង​មិន​អាច​លុប​ខ្លួន​ឯង​ចេញ​ពី​ក្រុម​អ្នក​គ្រប់​គ្រង​ឡើយ",
diff --git a/settings/l10n/km.json b/settings/l10n/km.json
index b0d0d2a56e4..f79ade7853e 100644
--- a/settings/l10n/km.json
+++ b/settings/l10n/km.json
@@ -5,12 +5,8 @@
"Email Server" : "ម៉ាស៊ីន​បម្រើ​អ៊ីមែល",
"Log" : "Log",
"Authentication error" : "កំហុស​ការ​ផ្ទៀង​ផ្ទាត់​ភាព​ត្រឹម​ត្រូវ",
- "Group already exists" : "មាន​ក្រុម​នេះ​រួច​ហើយ",
- "Unable to add group" : "មិន​អាច​បន្ថែម​ក្រុម",
"Email saved" : "បាន​រក្សា​ទុក​អ៊ីមែល",
"Invalid email" : "អ៊ីមែល​មិន​ត្រឹម​ត្រូវ",
- "Unable to delete group" : "មិន​អាច​លុប​ក្រុម​បាន",
- "Unable to delete user" : "មិន​អាច​លុប​អ្នក​ប្រើ​បាន",
"Language changed" : "បាន​ប្ដូរ​ភាសា",
"Invalid request" : "សំណើ​មិន​ត្រឹម​ត្រូវ",
"Admins can't remove themself from the admin group" : "អ្នក​គ្រប់​គ្រង​មិន​អាច​លុប​ខ្លួន​ឯង​ចេញ​ពី​ក្រុម​អ្នក​គ្រប់​គ្រង​ឡើយ",
diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js
index e55c4c75dab..704f6d0ba36 100644
--- a/settings/l10n/ko.js
+++ b/settings/l10n/ko.js
@@ -9,13 +9,9 @@ OC.L10N.register(
"Authentication error" : "인증 오류",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
"Unable to change full name" : "전체 이름을 변경할 수 없음",
- "Group already exists" : "그룹이 이미 존재함",
- "Unable to add group" : "그룹을 추가할 수 없음",
"Couldn't remove app." : "앱을 제거할수 없습니다.",
"Email saved" : "이메일 저장됨",
"Invalid email" : "잘못된 이메일 주소",
- "Unable to delete group" : "그룹을 삭제할 수 없음",
- "Unable to delete user" : "사용자를 삭제할 수 없음.",
"Backups restored successfully" : "성공적으로 백업을 복원했습니다",
"Language changed" : "언어가 변경됨",
"Invalid request" : "잘못된 요청",
@@ -79,7 +75,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "보안 경고",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s에 HTTP로 접근하고 있습니다. 서버에서 HTTPS를 사용하도록 설정하는 것을 추천합니다.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "데이터 디렉터리와 파일을 인터넷에서 접근할 수도 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 웹 서버 문서 경로 외부로 데이터 디렉터리를 옮기십시오.",
"Setup Warning" : "설정 경고",
"Database Performance Info" : "데이터베이스 성능 정보",
"Module 'fileinfo' missing" : "모듈 'fileinfo'가 없음",
diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json
index 2415c30316d..5c1ce3b839a 100644
--- a/settings/l10n/ko.json
+++ b/settings/l10n/ko.json
@@ -7,13 +7,9 @@
"Authentication error" : "인증 오류",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
"Unable to change full name" : "전체 이름을 변경할 수 없음",
- "Group already exists" : "그룹이 이미 존재함",
- "Unable to add group" : "그룹을 추가할 수 없음",
"Couldn't remove app." : "앱을 제거할수 없습니다.",
"Email saved" : "이메일 저장됨",
"Invalid email" : "잘못된 이메일 주소",
- "Unable to delete group" : "그룹을 삭제할 수 없음",
- "Unable to delete user" : "사용자를 삭제할 수 없음.",
"Backups restored successfully" : "성공적으로 백업을 복원했습니다",
"Language changed" : "언어가 변경됨",
"Invalid request" : "잘못된 요청",
@@ -77,7 +73,6 @@
"TLS" : "TLS",
"Security Warning" : "보안 경고",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s에 HTTP로 접근하고 있습니다. 서버에서 HTTPS를 사용하도록 설정하는 것을 추천합니다.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "데이터 디렉터리와 파일을 인터넷에서 접근할 수도 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 웹 서버 문서 경로 외부로 데이터 디렉터리를 옮기십시오.",
"Setup Warning" : "설정 경고",
"Database Performance Info" : "데이터베이스 성능 정보",
"Module 'fileinfo' missing" : "모듈 'fileinfo'가 없음",
diff --git a/settings/l10n/lb.js b/settings/l10n/lb.js
index 9cb363460b3..dc0991f7bab 100644
--- a/settings/l10n/lb.js
+++ b/settings/l10n/lb.js
@@ -4,12 +4,8 @@ OC.L10N.register(
"Cron" : "Cron",
"Log" : "Log",
"Authentication error" : "Authentifikatioun's Fehler",
- "Group already exists" : "Group existeiert schon.",
- "Unable to add group" : "Onmeiglech Grupp beizefügen.",
"Email saved" : "E-mail gespäichert",
"Invalid email" : "Ongülteg e-mail",
- "Unable to delete group" : "Onmeiglech d'Grup ze läschen.",
- "Unable to delete user" : "Onmeiglech User zu läschen.",
"Language changed" : "Sprooch huet geännert",
"Invalid request" : "Ongülteg Requête",
"Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
diff --git a/settings/l10n/lb.json b/settings/l10n/lb.json
index 0fecc04be68..e1fbc48c2ec 100644
--- a/settings/l10n/lb.json
+++ b/settings/l10n/lb.json
@@ -2,12 +2,8 @@
"Cron" : "Cron",
"Log" : "Log",
"Authentication error" : "Authentifikatioun's Fehler",
- "Group already exists" : "Group existeiert schon.",
- "Unable to add group" : "Onmeiglech Grupp beizefügen.",
"Email saved" : "E-mail gespäichert",
"Invalid email" : "Ongülteg e-mail",
- "Unable to delete group" : "Onmeiglech d'Grup ze läschen.",
- "Unable to delete user" : "Onmeiglech User zu läschen.",
"Language changed" : "Sprooch huet geännert",
"Invalid request" : "Ongülteg Requête",
"Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js
index 4211d857b86..e2d2a588126 100644
--- a/settings/l10n/lt_LT.js
+++ b/settings/l10n/lt_LT.js
@@ -6,12 +6,8 @@ OC.L10N.register(
"Security" : "Saugumas",
"Log" : "Žurnalas",
"Authentication error" : "Autentikacijos klaida",
- "Group already exists" : "Grupė jau egzistuoja",
- "Unable to add group" : "Nepavyko pridėti grupės",
"Email saved" : "El. paštas išsaugotas",
"Invalid email" : "Netinkamas el. paštas",
- "Unable to delete group" : "Nepavyko ištrinti grupės",
- "Unable to delete user" : "Nepavyko ištrinti vartotojo",
"Language changed" : "Kalba pakeista",
"Invalid request" : "Klaidinga užklausa",
"Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
@@ -53,7 +49,6 @@ OC.L10N.register(
"None" : "Nieko",
"Login" : "Prisijungti",
"Security Warning" : "Saugumo pranešimas",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsų duomenų katalogas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess neveikia. Mes labai rekomenduojame sukonfigūruoti serverį taip, kad katalogas nebūtų daugiau pasiekiamas, arba iškelkite duomenis kitur iš webserverio šakninio aplanko.",
"Setup Warning" : "Nustatyti perspėjimą",
"Module 'fileinfo' missing" : "Trūksta 'fileinfo' modulio",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūksta PHP modulio „fileinfo“. Labai rekomenduojame įjungti šį modulį, kad gauti geriausius rezultatus nustatant mime-tipą.",
diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json
index 98d570d9420..438527ec0bd 100644
--- a/settings/l10n/lt_LT.json
+++ b/settings/l10n/lt_LT.json
@@ -4,12 +4,8 @@
"Security" : "Saugumas",
"Log" : "Žurnalas",
"Authentication error" : "Autentikacijos klaida",
- "Group already exists" : "Grupė jau egzistuoja",
- "Unable to add group" : "Nepavyko pridėti grupės",
"Email saved" : "El. paštas išsaugotas",
"Invalid email" : "Netinkamas el. paštas",
- "Unable to delete group" : "Nepavyko ištrinti grupės",
- "Unable to delete user" : "Nepavyko ištrinti vartotojo",
"Language changed" : "Kalba pakeista",
"Invalid request" : "Klaidinga užklausa",
"Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
@@ -51,7 +47,6 @@
"None" : "Nieko",
"Login" : "Prisijungti",
"Security Warning" : "Saugumo pranešimas",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsų duomenų katalogas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess neveikia. Mes labai rekomenduojame sukonfigūruoti serverį taip, kad katalogas nebūtų daugiau pasiekiamas, arba iškelkite duomenis kitur iš webserverio šakninio aplanko.",
"Setup Warning" : "Nustatyti perspėjimą",
"Module 'fileinfo' missing" : "Trūksta 'fileinfo' modulio",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūksta PHP modulio „fileinfo“. Labai rekomenduojame įjungti šį modulį, kad gauti geriausius rezultatus nustatant mime-tipą.",
diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js
index e1190cb7953..8236fe2ea2c 100644
--- a/settings/l10n/lv.js
+++ b/settings/l10n/lv.js
@@ -6,12 +6,8 @@ OC.L10N.register(
"Security" : "Drošība",
"Log" : "Žurnāls",
"Authentication error" : "Autentifikācijas kļūda",
- "Group already exists" : "Grupa jau eksistē",
- "Unable to add group" : "Nevar pievienot grupu",
"Email saved" : "E-pasts tika saglabāts",
"Invalid email" : "Nederīgs epasts",
- "Unable to delete group" : "Nevar izdzēst grupu",
- "Unable to delete user" : "Nevar izdzēst lietotāju",
"Language changed" : "Valoda tika nomainīta",
"Invalid request" : "Nederīgs vaicājums",
"Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
@@ -41,7 +37,6 @@ OC.L10N.register(
"None" : "Nav",
"Login" : "Ierakstīties",
"Security Warning" : "Brīdinājums par drošību",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsu datu direktorija un faili visticamāk ir pieejami no interneta. .htaccess fails nedarbojas. Ir rekomendēts konfigurēt serveri tā lai jūsu datu direktorija nav lasāma vai pārvietot to ārpus tīmekļa servera dokumentu mapes.",
"Setup Warning" : "Iestatīšanas brīdinājums",
"Module 'fileinfo' missing" : "Trūkst modulis “fileinfo”",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json
index 35da6955cc1..6715e6f190d 100644
--- a/settings/l10n/lv.json
+++ b/settings/l10n/lv.json
@@ -4,12 +4,8 @@
"Security" : "Drošība",
"Log" : "Žurnāls",
"Authentication error" : "Autentifikācijas kļūda",
- "Group already exists" : "Grupa jau eksistē",
- "Unable to add group" : "Nevar pievienot grupu",
"Email saved" : "E-pasts tika saglabāts",
"Invalid email" : "Nederīgs epasts",
- "Unable to delete group" : "Nevar izdzēst grupu",
- "Unable to delete user" : "Nevar izdzēst lietotāju",
"Language changed" : "Valoda tika nomainīta",
"Invalid request" : "Nederīgs vaicājums",
"Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
@@ -39,7 +35,6 @@
"None" : "Nav",
"Login" : "Ierakstīties",
"Security Warning" : "Brīdinājums par drošību",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Jūsu datu direktorija un faili visticamāk ir pieejami no interneta. .htaccess fails nedarbojas. Ir rekomendēts konfigurēt serveri tā lai jūsu datu direktorija nav lasāma vai pārvietot to ārpus tīmekļa servera dokumentu mapes.",
"Setup Warning" : "Iestatīšanas brīdinājums",
"Module 'fileinfo' missing" : "Trūkst modulis “fileinfo”",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
diff --git a/settings/l10n/mk.js b/settings/l10n/mk.js
index 2f857a61b33..89a5fd6f434 100644
--- a/settings/l10n/mk.js
+++ b/settings/l10n/mk.js
@@ -9,14 +9,10 @@ OC.L10N.register(
"Authentication error" : "Грешка во автентикација",
"Your full name has been changed." : "Вашето целосно име е променето.",
"Unable to change full name" : "Не можам да го променам целото име",
- "Group already exists" : "Групата веќе постои",
- "Unable to add group" : "Неможе да додадам група",
"Files decrypted successfully" : "Датотектие се успешно декриптирани",
"Encryption keys deleted permanently" : "Енкрипциските клучеви се трајно избришани",
"Email saved" : "Електронската пошта е снимена",
"Invalid email" : "Неисправна електронска пошта",
- "Unable to delete group" : "Неможе да избришам група",
- "Unable to delete user" : "Неможам да избришам корисник",
"Backups restored successfully" : "Бекапите се успешно реставрирани",
"Language changed" : "Јазикот е сменет",
"Invalid request" : "Неправилно барање",
diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json
index 44cfb40a7b4..791746d96a6 100644
--- a/settings/l10n/mk.json
+++ b/settings/l10n/mk.json
@@ -7,14 +7,10 @@
"Authentication error" : "Грешка во автентикација",
"Your full name has been changed." : "Вашето целосно име е променето.",
"Unable to change full name" : "Не можам да го променам целото име",
- "Group already exists" : "Групата веќе постои",
- "Unable to add group" : "Неможе да додадам група",
"Files decrypted successfully" : "Датотектие се успешно декриптирани",
"Encryption keys deleted permanently" : "Енкрипциските клучеви се трајно избришани",
"Email saved" : "Електронската пошта е снимена",
"Invalid email" : "Неисправна електронска пошта",
- "Unable to delete group" : "Неможе да избришам група",
- "Unable to delete user" : "Неможам да избришам корисник",
"Backups restored successfully" : "Бекапите се успешно реставрирани",
"Language changed" : "Јазикот е сменет",
"Invalid request" : "Неправилно барање",
diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js
index cf73debd87d..f98a896698f 100644
--- a/settings/l10n/nb_NO.js
+++ b/settings/l10n/nb_NO.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Autentiseringsfeil",
"Your full name has been changed." : "Ditt fulle navn er blitt endret.",
"Unable to change full name" : "Klarte ikke å endre fullt navn",
- "Group already exists" : "Gruppen finnes allerede",
- "Unable to add group" : "Kan ikke legge til gruppe",
"Files decrypted successfully" : "Dekryptering av filer vellykket",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Kunne ikke dekryptere filene dine. Sjekk owncloud.log eller spør administratoren",
"Couldn't decrypt your files, check your password and try again" : "Kunne ikke dekryptere filene dine. Sjekk passordet ditt og prøv igjen",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Klarte ikke å fjerne app.",
"Email saved" : "Epost lagret",
"Invalid email" : "Ugyldig epost",
- "Unable to delete group" : "Kan ikke slette gruppe",
- "Unable to delete user" : "Kan ikke slette bruker",
"Backups restored successfully" : "Vellykket gjenoppretting fra sikkerhetskopier",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke gjenopprette krypteringsnøklene dine. Sjekk owncloud.log eller spør administratoren",
"Language changed" : "Språk endret",
@@ -96,7 +92,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Sikkerhetsadvarsel",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du aksesserer %s via HTTP. Vi anbefaler på det sterkeste at du konfigurerer serveren til å kreve bruk av HTTPS i stedet.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer. Vi anbefaler på det sterkeste at du konfigurerer web-serveren din slik at datamappen ikke lenger er tilgjengelig eller at du flytter datamappen ut av web-serverens dokument-rotmappe.",
"Setup Warning" : "Installasjonsadvarsel",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.",
@@ -123,13 +118,13 @@ OC.L10N.register(
"Allow users to share via link" : "Tillat brukere å dele via lenke",
"Enforce password protection" : "Tving passordbeskyttelse",
"Allow public uploads" : "Tillat offentlig opplasting",
+ "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer",
"Set default expiration date" : "Sett standard utløpsdato",
"Expire after " : "Utløper etter",
"days" : "dager",
"Enforce expiration date" : "Tving utløpsdato",
"Allow resharing" : "TIllat videre deling",
"Restrict users to only share with users in their groups" : "Begrens brukere til kun å dele med brukere i deres grupper",
- "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer",
"Exclude groups from sharing" : "Utelukk grupper fra deling",
"These groups will still be able to receive shares, but not to initiate them." : "Disse gruppene vil fremdeles kunne motta delinger men ikke lage dem.",
"Enforce HTTPS" : "Tving HTTPS",
diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json
index 0c4614c1cfa..e890981c7b6 100644
--- a/settings/l10n/nb_NO.json
+++ b/settings/l10n/nb_NO.json
@@ -7,8 +7,6 @@
"Authentication error" : "Autentiseringsfeil",
"Your full name has been changed." : "Ditt fulle navn er blitt endret.",
"Unable to change full name" : "Klarte ikke å endre fullt navn",
- "Group already exists" : "Gruppen finnes allerede",
- "Unable to add group" : "Kan ikke legge til gruppe",
"Files decrypted successfully" : "Dekryptering av filer vellykket",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Kunne ikke dekryptere filene dine. Sjekk owncloud.log eller spør administratoren",
"Couldn't decrypt your files, check your password and try again" : "Kunne ikke dekryptere filene dine. Sjekk passordet ditt og prøv igjen",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Klarte ikke å fjerne app.",
"Email saved" : "Epost lagret",
"Invalid email" : "Ugyldig epost",
- "Unable to delete group" : "Kan ikke slette gruppe",
- "Unable to delete user" : "Kan ikke slette bruker",
"Backups restored successfully" : "Vellykket gjenoppretting fra sikkerhetskopier",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke gjenopprette krypteringsnøklene dine. Sjekk owncloud.log eller spør administratoren",
"Language changed" : "Språk endret",
@@ -94,7 +90,6 @@
"TLS" : "TLS",
"Security Warning" : "Sikkerhetsadvarsel",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du aksesserer %s via HTTP. Vi anbefaler på det sterkeste at du konfigurerer serveren til å kreve bruk av HTTPS i stedet.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer. Vi anbefaler på det sterkeste at du konfigurerer web-serveren din slik at datamappen ikke lenger er tilgjengelig eller at du flytter datamappen ut av web-serverens dokument-rotmappe.",
"Setup Warning" : "Installasjonsadvarsel",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.",
@@ -121,13 +116,13 @@
"Allow users to share via link" : "Tillat brukere å dele via lenke",
"Enforce password protection" : "Tving passordbeskyttelse",
"Allow public uploads" : "Tillat offentlig opplasting",
+ "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer",
"Set default expiration date" : "Sett standard utløpsdato",
"Expire after " : "Utløper etter",
"days" : "dager",
"Enforce expiration date" : "Tving utløpsdato",
"Allow resharing" : "TIllat videre deling",
"Restrict users to only share with users in their groups" : "Begrens brukere til kun å dele med brukere i deres grupper",
- "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer",
"Exclude groups from sharing" : "Utelukk grupper fra deling",
"These groups will still be able to receive shares, but not to initiate them." : "Disse gruppene vil fremdeles kunne motta delinger men ikke lage dem.",
"Enforce HTTPS" : "Tving HTTPS",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index ae5c35a3ee4..ab57c775c37 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Authenticatie fout",
"Your full name has been changed." : "Uw volledige naam is gewijzigd.",
"Unable to change full name" : "Kan de volledige naam niet wijzigen",
- "Group already exists" : "Groep bestaat al",
- "Unable to add group" : "Niet in staat om groep toe te voegen",
"Files decrypted successfully" : "Bestanden succesvol ontsleuteld",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Kon uw bestanden niet ontsleutelem. Controleer uw owncloud logs of vraag het uw beheerder",
"Couldn't decrypt your files, check your password and try again" : "Kon uw bestanden niet ontsleutelen. Controleer uw wachtwoord en probeer het opnieuw",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Kon app niet verwijderen.",
"Email saved" : "E-mail bewaard",
"Invalid email" : "Ongeldige e-mail",
- "Unable to delete group" : "Niet in staat om groep te verwijderen",
- "Unable to delete user" : "Niet in staat om gebruiker te verwijderen",
"Backups restored successfully" : "Backup succesvol terggezet",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kon uw cryptosleutels niet herstellen. Controleer uw owncloud.log of neem contact op met uw beheerder",
"Language changed" : "Taal aangepast",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Geactiveerd",
"Not enabled" : "Niet ingeschakeld",
"Recommended" : "Aanbevolen",
+ "Group already exists." : "Groep bestaat al.",
+ "Unable to add group." : "Kan groep niet toevoegen.",
+ "Unable to delete group." : "Kan groep niet verwijderen.",
"Saved" : "Bewaard",
"test email settings" : "test e-mailinstellingen",
"If you received this email, the settings seem to be correct." : "Als u dit e-mailbericht ontvangt, lijken de instellingen juist.",
"A problem occurred while sending the email. Please revise your settings." : "Er ontstond een probleem bij het versturen van de e-mail. Controleer uw instellingen.",
"Email sent" : "E-mail verzonden",
"You need to set your user email before being able to send test emails." : "U moet uw e-mailadres invoeren voordat u testberichten kunt versturen.",
+ "Unable to create user." : "Kan gebruiker niet aanmaken.",
+ "Unable to delete user." : "Kan gebruiker niet afvoeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
"Sending..." : "Versturen...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Beveiligingswaarschuwing",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "U bent met %s verbonden over HTTP. We adviseren met klem uw server zo te configureren dat alleen HTTPS kan worden gebruikt.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Uw data folder en uw bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om uw webserver zodanig te configureren, dat de datamap niet bereikbaar is vanaf het internet of om uw datamap te verplaatsen naar een locatie buiten de document root van de webserver.",
"Read-Only config enabled" : "Alleen-lezen config geactiveerd",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "De Alleen-lezen config is geactiveerd. Dit voorkomt het via de webinterface wijzigen van verschillende instellingen. Bovendien moet het bestand voor elke aanpassing handmatig op beschrijfbaar worden ingesteld.",
"Setup Warning" : "Instellingswaarschuwing",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We adviseren met klem om de noodzakelijke pakketten op uw systeem te installeren om een van de volgende talen te ondersteunen: %s.",
"URL generation in notification emails" : "URL genereren in notificatie e-mails",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwritewebroot\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ",
- "Connectivity Checks" : "Verbindingscontroles",
+ "Configuration Checks" : "Configuratie Controles",
"No problems found" : "Geen problemen gevonden",
"Please double check the <a href='%s'>installation guides</a>." : "Controleer de <a href='%s'>installatiehandleiding</a> goed.",
"Last cron was executed at %s." : "Laatst uitgevoerde cron op %s.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Sta gebruikers toe om te delen via een link",
"Enforce password protection" : "Dwing wachtwoordbeveiliging af",
"Allow public uploads" : "Sta publieke uploads toe",
+ "Allow users to send mail notification for shared files" : "Sta gebruikers toe om e-mailnotificaties te versturen voor gedeelde bestanden",
"Set default expiration date" : "Stel standaard vervaldatum in",
"Expire after " : "Vervalt na",
"days" : "dagen",
"Enforce expiration date" : "Verplicht de vervaldatum",
"Allow resharing" : "Toestaan opnieuw delen",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
- "Allow users to send mail notification for shared files" : "Sta gebruikers toe om e-mailnotificaties te versturen voor gedeelde bestanden",
+ "Allow users to send mail notification for shared files to other users" : "Sta gebruikers toe om e-mailnotificaties aan andere gebruikers te versturen voor gedeelde bestanden",
"Exclude groups from sharing" : "Sluit groepen uit van delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.",
"Enforce HTTPS" : "Afdwingen HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Documentatie:",
"User Documentation" : "Gebruikersdocumentatie",
"Admin Documentation" : "Beheerdocumentatie",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd omdat de volgende afhankelijkheden niet zijn ingevuld:",
"Update to %s" : "Bijgewerkt naar %s",
"Enable only for specific groups" : "Alleen voor bepaalde groepen activeren",
"Uninstall App" : "De-installeren app",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 0be78a7c4d4..ef3582a425a 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -8,8 +8,6 @@
"Authentication error" : "Authenticatie fout",
"Your full name has been changed." : "Uw volledige naam is gewijzigd.",
"Unable to change full name" : "Kan de volledige naam niet wijzigen",
- "Group already exists" : "Groep bestaat al",
- "Unable to add group" : "Niet in staat om groep toe te voegen",
"Files decrypted successfully" : "Bestanden succesvol ontsleuteld",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Kon uw bestanden niet ontsleutelem. Controleer uw owncloud logs of vraag het uw beheerder",
"Couldn't decrypt your files, check your password and try again" : "Kon uw bestanden niet ontsleutelen. Controleer uw wachtwoord en probeer het opnieuw",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Kon app niet verwijderen.",
"Email saved" : "E-mail bewaard",
"Invalid email" : "Ongeldige e-mail",
- "Unable to delete group" : "Niet in staat om groep te verwijderen",
- "Unable to delete user" : "Niet in staat om gebruiker te verwijderen",
"Backups restored successfully" : "Backup succesvol terggezet",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kon uw cryptosleutels niet herstellen. Controleer uw owncloud.log of neem contact op met uw beheerder",
"Language changed" : "Taal aangepast",
@@ -37,12 +33,17 @@
"Enabled" : "Geactiveerd",
"Not enabled" : "Niet ingeschakeld",
"Recommended" : "Aanbevolen",
+ "Group already exists." : "Groep bestaat al.",
+ "Unable to add group." : "Kan groep niet toevoegen.",
+ "Unable to delete group." : "Kan groep niet verwijderen.",
"Saved" : "Bewaard",
"test email settings" : "test e-mailinstellingen",
"If you received this email, the settings seem to be correct." : "Als u dit e-mailbericht ontvangt, lijken de instellingen juist.",
"A problem occurred while sending the email. Please revise your settings." : "Er ontstond een probleem bij het versturen van de e-mail. Controleer uw instellingen.",
"Email sent" : "E-mail verzonden",
"You need to set your user email before being able to send test emails." : "U moet uw e-mailadres invoeren voordat u testberichten kunt versturen.",
+ "Unable to create user." : "Kan gebruiker niet aanmaken.",
+ "Unable to delete user." : "Kan gebruiker niet afvoeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
"Sending..." : "Versturen...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Beveiligingswaarschuwing",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "U bent met %s verbonden over HTTP. We adviseren met klem uw server zo te configureren dat alleen HTTPS kan worden gebruikt.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Uw data folder en uw bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om uw webserver zodanig te configureren, dat de datamap niet bereikbaar is vanaf het internet of om uw datamap te verplaatsen naar een locatie buiten de document root van de webserver.",
"Read-Only config enabled" : "Alleen-lezen config geactiveerd",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "De Alleen-lezen config is geactiveerd. Dit voorkomt het via de webinterface wijzigen van verschillende instellingen. Bovendien moet het bestand voor elke aanpassing handmatig op beschrijfbaar worden ingesteld.",
"Setup Warning" : "Instellingswaarschuwing",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We adviseren met klem om de noodzakelijke pakketten op uw systeem te installeren om een van de volgende talen te ondersteunen: %s.",
"URL generation in notification emails" : "URL genereren in notificatie e-mails",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwritewebroot\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ",
- "Connectivity Checks" : "Verbindingscontroles",
+ "Configuration Checks" : "Configuratie Controles",
"No problems found" : "Geen problemen gevonden",
"Please double check the <a href='%s'>installation guides</a>." : "Controleer de <a href='%s'>installatiehandleiding</a> goed.",
"Last cron was executed at %s." : "Laatst uitgevoerde cron op %s.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Sta gebruikers toe om te delen via een link",
"Enforce password protection" : "Dwing wachtwoordbeveiliging af",
"Allow public uploads" : "Sta publieke uploads toe",
+ "Allow users to send mail notification for shared files" : "Sta gebruikers toe om e-mailnotificaties te versturen voor gedeelde bestanden",
"Set default expiration date" : "Stel standaard vervaldatum in",
"Expire after " : "Vervalt na",
"days" : "dagen",
"Enforce expiration date" : "Verplicht de vervaldatum",
"Allow resharing" : "Toestaan opnieuw delen",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
- "Allow users to send mail notification for shared files" : "Sta gebruikers toe om e-mailnotificaties te versturen voor gedeelde bestanden",
+ "Allow users to send mail notification for shared files to other users" : "Sta gebruikers toe om e-mailnotificaties aan andere gebruikers te versturen voor gedeelde bestanden",
"Exclude groups from sharing" : "Sluit groepen uit van delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.",
"Enforce HTTPS" : "Afdwingen HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Documentatie:",
"User Documentation" : "Gebruikersdocumentatie",
"Admin Documentation" : "Beheerdocumentatie",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd omdat de volgende afhankelijkheden niet zijn ingevuld:",
"Update to %s" : "Bijgewerkt naar %s",
"Enable only for specific groups" : "Alleen voor bepaalde groepen activeren",
"Uninstall App" : "De-installeren app",
diff --git a/settings/l10n/nn_NO.js b/settings/l10n/nn_NO.js
index 74380c67fdd..87ffe5ca760 100644
--- a/settings/l10n/nn_NO.js
+++ b/settings/l10n/nn_NO.js
@@ -6,12 +6,8 @@ OC.L10N.register(
"Security" : "Tryggleik",
"Log" : "Logg",
"Authentication error" : "Autentiseringsfeil",
- "Group already exists" : "Gruppa finst allereie",
- "Unable to add group" : "Klarte ikkje leggja til gruppa",
"Email saved" : "E-postadresse lagra",
"Invalid email" : "Ugyldig e-postadresse",
- "Unable to delete group" : "Klarte ikkje å sletta gruppa",
- "Unable to delete user" : "Klarte ikkje sletta brukaren",
"Language changed" : "Språk endra",
"Invalid request" : "Ugyldig førespurnad",
"Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
@@ -50,7 +46,6 @@ OC.L10N.register(
"Encryption" : "Kryptering",
"Login" : "Logg inn",
"Security Warning" : "Tryggleiksåtvaring",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappa og filene dine er sannsynlegvis leselege frå nettet. Fila .htaccess fungerer ikkje. Me rår deg sterkt til å konfigurera vevtenaren din sånn at datamappa di ikkje lenger er tilgjengeleg; alternativt kan du flytta datamappa ut av dokumentrot til vevtenaren.",
"Setup Warning" : "Oppsettsåtvaring",
"Module 'fileinfo' missing" : "Modulen «fileinfo» manglar",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-modulen «fileinfo» manglar. Me rår sterkt til å slå på denne modulen for å best mogleg oppdaga MIME-typar.",
diff --git a/settings/l10n/nn_NO.json b/settings/l10n/nn_NO.json
index c4a3844829c..4924aae38f4 100644
--- a/settings/l10n/nn_NO.json
+++ b/settings/l10n/nn_NO.json
@@ -4,12 +4,8 @@
"Security" : "Tryggleik",
"Log" : "Logg",
"Authentication error" : "Autentiseringsfeil",
- "Group already exists" : "Gruppa finst allereie",
- "Unable to add group" : "Klarte ikkje leggja til gruppa",
"Email saved" : "E-postadresse lagra",
"Invalid email" : "Ugyldig e-postadresse",
- "Unable to delete group" : "Klarte ikkje å sletta gruppa",
- "Unable to delete user" : "Klarte ikkje sletta brukaren",
"Language changed" : "Språk endra",
"Invalid request" : "Ugyldig førespurnad",
"Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
@@ -48,7 +44,6 @@
"Encryption" : "Kryptering",
"Login" : "Logg inn",
"Security Warning" : "Tryggleiksåtvaring",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datamappa og filene dine er sannsynlegvis leselege frå nettet. Fila .htaccess fungerer ikkje. Me rår deg sterkt til å konfigurera vevtenaren din sånn at datamappa di ikkje lenger er tilgjengeleg; alternativt kan du flytta datamappa ut av dokumentrot til vevtenaren.",
"Setup Warning" : "Oppsettsåtvaring",
"Module 'fileinfo' missing" : "Modulen «fileinfo» manglar",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-modulen «fileinfo» manglar. Me rår sterkt til å slå på denne modulen for å best mogleg oppdaga MIME-typar.",
diff --git a/settings/l10n/oc.js b/settings/l10n/oc.js
index 734e0de7551..9ee13dc141d 100644
--- a/settings/l10n/oc.js
+++ b/settings/l10n/oc.js
@@ -5,12 +5,8 @@ OC.L10N.register(
"Sharing" : "Al partejar",
"Log" : "Jornal",
"Authentication error" : "Error d'autentificacion",
- "Group already exists" : "Lo grop existís ja",
- "Unable to add group" : "Pas capable d'apondre un grop",
"Email saved" : "Corrièl enregistrat",
"Invalid email" : "Corrièl incorrècte",
- "Unable to delete group" : "Pas capable d'escafar un grop",
- "Unable to delete user" : "Pas capable d'escafar un usancièr",
"Language changed" : "Lengas cambiadas",
"Invalid request" : "Demanda invalida",
"Unable to add user to group %s" : "Pas capable d'apondre un usancièr al grop %s",
diff --git a/settings/l10n/oc.json b/settings/l10n/oc.json
index dc1827381dc..4f62786340e 100644
--- a/settings/l10n/oc.json
+++ b/settings/l10n/oc.json
@@ -3,12 +3,8 @@
"Sharing" : "Al partejar",
"Log" : "Jornal",
"Authentication error" : "Error d'autentificacion",
- "Group already exists" : "Lo grop existís ja",
- "Unable to add group" : "Pas capable d'apondre un grop",
"Email saved" : "Corrièl enregistrat",
"Invalid email" : "Corrièl incorrècte",
- "Unable to delete group" : "Pas capable d'escafar un grop",
- "Unable to delete user" : "Pas capable d'escafar un usancièr",
"Language changed" : "Lengas cambiadas",
"Invalid request" : "Demanda invalida",
"Unable to add user to group %s" : "Pas capable d'apondre un usancièr al grop %s",
diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js
index b1f268c1373..a2f18322080 100644
--- a/settings/l10n/pl.js
+++ b/settings/l10n/pl.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Błąd uwierzytelniania",
"Your full name has been changed." : "Twoja pełna nazwa została zmieniona.",
"Unable to change full name" : "Nie można zmienić pełnej nazwy",
- "Group already exists" : "Grupa już istnieje",
- "Unable to add group" : "Nie można dodać grupy",
"Files decrypted successfully" : "Pliki zostały poprawnie zdeszyfrowane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nie można zdeszyfrować Twoich plików, proszę sprawdzić owncloud.log lub zapytać administratora",
"Couldn't decrypt your files, check your password and try again" : "Nie można zdeszyfrować Twoich plików, sprawdź swoje hasło i spróbuj ponownie",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nie można usunąć aplikacji.",
"Email saved" : "E-mail zapisany",
"Invalid email" : "Nieprawidłowy e-mail",
- "Unable to delete group" : "Nie można usunąć grupy",
- "Unable to delete user" : "Nie można usunąć użytkownika",
"Backups restored successfully" : "Archiwum zostało prawidłowo przywrócone",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nie można przywrócić kluczy szyfrujących, proszę sprawdzić owncloud.log lub zapytać administratora",
"Language changed" : "Zmieniono język",
@@ -101,7 +97,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Ostrzeżenie o zabezpieczeniach",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Uzyskujesz dostęp do %s za pomocą protokołu HTTP. Zalecamy skonfigurować swój serwer z użyciem protokołu HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Twój katalog danych i pliki są prawdopodobnie dostępne z Internetu. Plik .htaccess, który dostarcza ownCloud nie działa. Sugerujemy, aby skonfigurować serwer WWW w taki sposób, aby katalog danych nie był dostępny lub przenieść katalog danych poza główny katalog serwera WWW.",
"Setup Warning" : "Ostrzeżenia konfiguracji",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
@@ -128,13 +123,13 @@ OC.L10N.register(
"Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link",
"Enforce password protection" : "Wymuś zabezpieczenie hasłem",
"Allow public uploads" : "Pozwól na publiczne wczytywanie",
+ "Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Set default expiration date" : "Ustaw domyślną datę wygaśnięcia",
"Expire after " : "Wygaś po",
"days" : "dniach",
"Enforce expiration date" : "Wymuś datę wygaśnięcia",
"Allow resharing" : "Zezwalaj na ponowne udostępnianie",
"Restrict users to only share with users in their groups" : "Ogranicz użytkowników do współdzielenia wyłącznie pomiędzy użytkownikami swoich grup",
- "Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Enforce HTTPS" : "Wymuś HTTPS",
diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json
index 3e2c17d3140..223412e20b4 100644
--- a/settings/l10n/pl.json
+++ b/settings/l10n/pl.json
@@ -7,8 +7,6 @@
"Authentication error" : "Błąd uwierzytelniania",
"Your full name has been changed." : "Twoja pełna nazwa została zmieniona.",
"Unable to change full name" : "Nie można zmienić pełnej nazwy",
- "Group already exists" : "Grupa już istnieje",
- "Unable to add group" : "Nie można dodać grupy",
"Files decrypted successfully" : "Pliki zostały poprawnie zdeszyfrowane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nie można zdeszyfrować Twoich plików, proszę sprawdzić owncloud.log lub zapytać administratora",
"Couldn't decrypt your files, check your password and try again" : "Nie można zdeszyfrować Twoich plików, sprawdź swoje hasło i spróbuj ponownie",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Nie można usunąć aplikacji.",
"Email saved" : "E-mail zapisany",
"Invalid email" : "Nieprawidłowy e-mail",
- "Unable to delete group" : "Nie można usunąć grupy",
- "Unable to delete user" : "Nie można usunąć użytkownika",
"Backups restored successfully" : "Archiwum zostało prawidłowo przywrócone",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nie można przywrócić kluczy szyfrujących, proszę sprawdzić owncloud.log lub zapytać administratora",
"Language changed" : "Zmieniono język",
@@ -99,7 +95,6 @@
"TLS" : "TLS",
"Security Warning" : "Ostrzeżenie o zabezpieczeniach",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Uzyskujesz dostęp do %s za pomocą protokołu HTTP. Zalecamy skonfigurować swój serwer z użyciem protokołu HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Twój katalog danych i pliki są prawdopodobnie dostępne z Internetu. Plik .htaccess, który dostarcza ownCloud nie działa. Sugerujemy, aby skonfigurować serwer WWW w taki sposób, aby katalog danych nie był dostępny lub przenieść katalog danych poza główny katalog serwera WWW.",
"Setup Warning" : "Ostrzeżenia konfiguracji",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
@@ -126,13 +121,13 @@
"Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link",
"Enforce password protection" : "Wymuś zabezpieczenie hasłem",
"Allow public uploads" : "Pozwól na publiczne wczytywanie",
+ "Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Set default expiration date" : "Ustaw domyślną datę wygaśnięcia",
"Expire after " : "Wygaś po",
"days" : "dniach",
"Enforce expiration date" : "Wymuś datę wygaśnięcia",
"Allow resharing" : "Zezwalaj na ponowne udostępnianie",
"Restrict users to only share with users in their groups" : "Ogranicz użytkowników do współdzielenia wyłącznie pomiędzy użytkownikami swoich grup",
- "Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Enforce HTTPS" : "Wymuś HTTPS",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 021626539e0..cbb26486142 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Erro de autenticação",
"Your full name has been changed." : "Seu nome completo foi alterado.",
"Unable to change full name" : "Não é possível alterar o nome completo",
- "Group already exists" : "O Grupo já existe",
- "Unable to add group" : "Não foi possível adicionar grupo",
"Files decrypted successfully" : "Arquivos descriptografados com sucesso",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Não foi possível descriptografar os arquivos, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Couldn't decrypt your files, check your password and try again" : "Não foi possível descriptografar os arquivos, verifique sua senha e tente novamente",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Não foi possível remover aplicativos.",
"Email saved" : "E-mail salvo",
"Invalid email" : "E-mail inválido",
- "Unable to delete group" : "Não foi possível remover grupo",
- "Unable to delete user" : "Não foi possível remover usuário",
"Backups restored successfully" : "Backup restaurado com sucesso",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Não foi possível salvar as chaves de criptografia, por favor, verifique o seu owncloud.log ou pergunte ao seu administrador",
"Language changed" : "Idioma alterado",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Habilitado",
"Not enabled" : "Desabilitado",
"Recommended" : "Recomendado",
+ "Group already exists." : "O Grupo já existe.",
+ "Unable to add group." : "Não é possível adicionar grupo.",
+ "Unable to delete group." : "Não é possível excluir grupo.",
"Saved" : "Salvo",
"test email settings" : "testar configurações de email",
"If you received this email, the settings seem to be correct." : "Se você recebeu este e-mail, as configurações parecem estar corretas.",
"A problem occurred while sending the email. Please revise your settings." : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações.",
"Email sent" : "E-mail enviado",
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
+ "Unable to create user." : "Não é possível criar usuário.",
+ "Unable to delete user." : "Não é possível excluir usuário.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que você quer adicionar \"{domain}\" como domínio confiável?",
"Add trusted domain" : "Adicionar domínio confiável",
"Sending..." : "Enviando...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Aviso de Segurança",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Você está acessando %s via HTTP. Sugerimos você configurar o servidor para exigir o uso de HTTPS em seu lugar.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Seu diretório de dados e seus arquivos são, provavelmente, acessíveis a partir da internet. O arquivo htaccess. não está funcionando. Nós sugerimos fortemente que você configure o seu servidor web de uma forma que o diretório de dados não esteja mais acessível ou mova o diretório de dados para fora do raiz do servidor.",
"Read-Only config enabled" : "Somente-Leitura configuração ativada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Somente-Leitura foi habilitada. Isso impede que algumas configurações sejam definidas via a interface web. Além disso, o arquivo precisa ter permissão de escrita manual para cada atualização.",
"Setup Warning" : "Aviso de Configuração",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.",
"URL generation in notification emails" : "Geração de URL em e-mails de notificação",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwritewebroot\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
- "Connectivity Checks" : "Verificações de Conectividade",
+ "Configuration Checks" : "Verificações de Configuração",
"No problems found" : "Nenhum problema encontrado",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor, confira o <a href='%s'>guia de instalação</a>.",
"Last cron was executed at %s." : "Último cron foi executado em %s.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Permitir que os usuários compartilhem por link",
"Enforce password protection" : "Reforce a proteção por senha",
"Allow public uploads" : "Permitir envio público",
+ "Allow users to send mail notification for shared files" : "Permitir aos usuários enviar notificação de email para arquivos compartilhados",
"Set default expiration date" : "Configurar a data de expiração",
"Expire after " : "Expirar depois de",
"days" : "dias",
"Enforce expiration date" : "Fazer cumprir a data de expiração",
"Allow resharing" : "Permitir recompartilhamento",
"Restrict users to only share with users in their groups" : "Restringir os usuários a compartilhar somente com os usuários em seus grupos",
- "Allow users to send mail notification for shared files" : "Permitir aos usuários enviar notificação de email para arquivos compartilhados",
+ "Allow users to send mail notification for shared files to other users" : "Permitir aos usuários enviar notificação de email de arquivos compartilhados para outros usuários",
"Exclude groups from sharing" : "Excluir grupos de compartilhamento",
"These groups will still be able to receive shares, but not to initiate them." : "Esses grupos ainda serão capazes de receber compartilhamentos, mas não para iniciá-los.",
"Enforce HTTPS" : "Forçar HTTPS",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Documentação:",
"User Documentation" : "Documentação de Usuário",
"Admin Documentation" : "Documentação de Administrador",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não forão cumpridas:",
"Update to %s" : "Atualizado para %s",
"Enable only for specific groups" : "Ativar apenas para grupos específicos",
"Uninstall App" : "Desinstalar Aplicativo",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 22721edab05..beaf0199ed6 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -8,8 +8,6 @@
"Authentication error" : "Erro de autenticação",
"Your full name has been changed." : "Seu nome completo foi alterado.",
"Unable to change full name" : "Não é possível alterar o nome completo",
- "Group already exists" : "O Grupo já existe",
- "Unable to add group" : "Não foi possível adicionar grupo",
"Files decrypted successfully" : "Arquivos descriptografados com sucesso",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Não foi possível descriptografar os arquivos, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Couldn't decrypt your files, check your password and try again" : "Não foi possível descriptografar os arquivos, verifique sua senha e tente novamente",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Não foi possível remover aplicativos.",
"Email saved" : "E-mail salvo",
"Invalid email" : "E-mail inválido",
- "Unable to delete group" : "Não foi possível remover grupo",
- "Unable to delete user" : "Não foi possível remover usuário",
"Backups restored successfully" : "Backup restaurado com sucesso",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Não foi possível salvar as chaves de criptografia, por favor, verifique o seu owncloud.log ou pergunte ao seu administrador",
"Language changed" : "Idioma alterado",
@@ -37,12 +33,17 @@
"Enabled" : "Habilitado",
"Not enabled" : "Desabilitado",
"Recommended" : "Recomendado",
+ "Group already exists." : "O Grupo já existe.",
+ "Unable to add group." : "Não é possível adicionar grupo.",
+ "Unable to delete group." : "Não é possível excluir grupo.",
"Saved" : "Salvo",
"test email settings" : "testar configurações de email",
"If you received this email, the settings seem to be correct." : "Se você recebeu este e-mail, as configurações parecem estar corretas.",
"A problem occurred while sending the email. Please revise your settings." : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações.",
"Email sent" : "E-mail enviado",
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
+ "Unable to create user." : "Não é possível criar usuário.",
+ "Unable to delete user." : "Não é possível excluir usuário.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que você quer adicionar \"{domain}\" como domínio confiável?",
"Add trusted domain" : "Adicionar domínio confiável",
"Sending..." : "Enviando...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Aviso de Segurança",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Você está acessando %s via HTTP. Sugerimos você configurar o servidor para exigir o uso de HTTPS em seu lugar.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Seu diretório de dados e seus arquivos são, provavelmente, acessíveis a partir da internet. O arquivo htaccess. não está funcionando. Nós sugerimos fortemente que você configure o seu servidor web de uma forma que o diretório de dados não esteja mais acessível ou mova o diretório de dados para fora do raiz do servidor.",
"Read-Only config enabled" : "Somente-Leitura configuração ativada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Somente-Leitura foi habilitada. Isso impede que algumas configurações sejam definidas via a interface web. Além disso, o arquivo precisa ter permissão de escrita manual para cada atualização.",
"Setup Warning" : "Aviso de Configuração",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.",
"URL generation in notification emails" : "Geração de URL em e-mails de notificação",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwritewebroot\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
- "Connectivity Checks" : "Verificações de Conectividade",
+ "Configuration Checks" : "Verificações de Configuração",
"No problems found" : "Nenhum problema encontrado",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor, confira o <a href='%s'>guia de instalação</a>.",
"Last cron was executed at %s." : "Último cron foi executado em %s.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Permitir que os usuários compartilhem por link",
"Enforce password protection" : "Reforce a proteção por senha",
"Allow public uploads" : "Permitir envio público",
+ "Allow users to send mail notification for shared files" : "Permitir aos usuários enviar notificação de email para arquivos compartilhados",
"Set default expiration date" : "Configurar a data de expiração",
"Expire after " : "Expirar depois de",
"days" : "dias",
"Enforce expiration date" : "Fazer cumprir a data de expiração",
"Allow resharing" : "Permitir recompartilhamento",
"Restrict users to only share with users in their groups" : "Restringir os usuários a compartilhar somente com os usuários em seus grupos",
- "Allow users to send mail notification for shared files" : "Permitir aos usuários enviar notificação de email para arquivos compartilhados",
+ "Allow users to send mail notification for shared files to other users" : "Permitir aos usuários enviar notificação de email de arquivos compartilhados para outros usuários",
"Exclude groups from sharing" : "Excluir grupos de compartilhamento",
"These groups will still be able to receive shares, but not to initiate them." : "Esses grupos ainda serão capazes de receber compartilhamentos, mas não para iniciá-los.",
"Enforce HTTPS" : "Forçar HTTPS",
@@ -171,6 +172,7 @@
"Documentation:" : "Documentação:",
"User Documentation" : "Documentação de Usuário",
"Admin Documentation" : "Documentação de Administrador",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não forão cumpridas:",
"Update to %s" : "Atualizado para %s",
"Enable only for specific groups" : "Ativar apenas para grupos específicos",
"Uninstall App" : "Desinstalar Aplicativo",
diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js
index 93fad6a87be..9c2f0b0ff60 100644
--- a/settings/l10n/pt_PT.js
+++ b/settings/l10n/pt_PT.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Erro na autenticação",
"Your full name has been changed." : "O seu nome completo foi alterado.",
"Unable to change full name" : "Não foi possível alterar o seu nome completo",
- "Group already exists" : "O grupo já existe",
- "Unable to add group" : "Não é possível acrescentar o grupo",
"Files decrypted successfully" : "Ficheiros desencriptados com sucesso",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Não foi possível descodificar os seus ficheiros. Por favor, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Couldn't decrypt your files, check your password and try again" : "Não foi possível descodificar os seus ficheiros. Por favor, verifique a sua palavra-passe e tente novamente",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Não foi possível remover a aplicação.",
"Email saved" : "E-mail guardado",
"Invalid email" : "e-mail inválido",
- "Unable to delete group" : "Não é possível apagar o grupo",
- "Unable to delete user" : "Não é possível apagar o utilizador",
"Backups restored successfully" : "Cópias de segurança restauradas com sucesso",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Não foi possivel restaurar as suas chaves de encriptacao. Por favor, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Language changed" : "Idioma alterado",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Aviso de Segurança",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está a aceder a %s via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "A sua pasta dos dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar corretamente. Nós sugerimos fortemente que configure o seu servidor da Web de maneira a que a pasta dos dados deixe de ficar acessível, ou mova-a para fora da diretoria raiz dos documentos do servidor da Web.",
"Read-Only config enabled" : "Configuração Só-de-Leitura ativada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Só-de-Leitura foi ativada. Isto evita definir algumas configurações através da interface da Web. Além disso, o ficheiro precisa de ser definido gravável manualmente para cada atualização.",
"Setup Warning" : "Aviso de Configuração",
@@ -120,7 +115,6 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós recomendamos fortemente que instale no seu sistema os pacotes necessários para suportar uma das seguintes locallidades: %s.",
"URL generation in notification emails" : "Geração URL em e-mails de notificação",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não está instalada na raiz do domínio e usa o sistema cron, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwritewebroot\" no ficheiro config.php para o caminho webroot da sua instalação (sugestão: \"%s\")",
- "Connectivity Checks" : "Verificações de Conetividade",
"No problems found" : "Nenhum problema encontrado",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor verifique <a href='%s'>installation guides</a>.",
"Last cron was executed at %s." : "O ultimo cron foi executado em %s.",
@@ -133,13 +127,13 @@ OC.L10N.register(
"Allow users to share via link" : "Permitir que os utilizadores partilhem através do link",
"Enforce password protection" : "Forçar proteção por palavra-passe",
"Allow public uploads" : "Permitir Envios Públicos",
+ "Allow users to send mail notification for shared files" : "Permita que o utilizador envie notificações por correio electrónico para ficheiros partilhados",
"Set default expiration date" : "Especificar a data padrão de expiração",
"Expire after " : "Expira após",
"days" : "dias",
"Enforce expiration date" : "Forçar a data de expiração",
"Allow resharing" : "Permitir repartilha",
"Restrict users to only share with users in their groups" : "Restringe os utilizadores só a partilhar com utilizadores do seu grupo",
- "Allow users to send mail notification for shared files" : "Permita que o utilizador envie notificações por correio electrónico para ficheiros partilhados",
"Exclude groups from sharing" : "Excluir grupos das partilhas",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderão receber partilhas, mas não poderão iniciá-las.",
"Enforce HTTPS" : "Forçar HTTPS",
diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json
index d46aabb68b0..c1a1329c348 100644
--- a/settings/l10n/pt_PT.json
+++ b/settings/l10n/pt_PT.json
@@ -8,8 +8,6 @@
"Authentication error" : "Erro na autenticação",
"Your full name has been changed." : "O seu nome completo foi alterado.",
"Unable to change full name" : "Não foi possível alterar o seu nome completo",
- "Group already exists" : "O grupo já existe",
- "Unable to add group" : "Não é possível acrescentar o grupo",
"Files decrypted successfully" : "Ficheiros desencriptados com sucesso",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Não foi possível descodificar os seus ficheiros. Por favor, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Couldn't decrypt your files, check your password and try again" : "Não foi possível descodificar os seus ficheiros. Por favor, verifique a sua palavra-passe e tente novamente",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Não foi possível remover a aplicação.",
"Email saved" : "E-mail guardado",
"Invalid email" : "e-mail inválido",
- "Unable to delete group" : "Não é possível apagar o grupo",
- "Unable to delete user" : "Não é possível apagar o utilizador",
"Backups restored successfully" : "Cópias de segurança restauradas com sucesso",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Não foi possivel restaurar as suas chaves de encriptacao. Por favor, verifique a sua owncloud.log ou pergunte ao seu administrador",
"Language changed" : "Idioma alterado",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Aviso de Segurança",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está a aceder a %s via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "A sua pasta dos dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar corretamente. Nós sugerimos fortemente que configure o seu servidor da Web de maneira a que a pasta dos dados deixe de ficar acessível, ou mova-a para fora da diretoria raiz dos documentos do servidor da Web.",
"Read-Only config enabled" : "Configuração Só-de-Leitura ativada",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Só-de-Leitura foi ativada. Isto evita definir algumas configurações através da interface da Web. Além disso, o ficheiro precisa de ser definido gravável manualmente para cada atualização.",
"Setup Warning" : "Aviso de Configuração",
@@ -118,7 +113,6 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós recomendamos fortemente que instale no seu sistema os pacotes necessários para suportar uma das seguintes locallidades: %s.",
"URL generation in notification emails" : "Geração URL em e-mails de notificação",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não está instalada na raiz do domínio e usa o sistema cron, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwritewebroot\" no ficheiro config.php para o caminho webroot da sua instalação (sugestão: \"%s\")",
- "Connectivity Checks" : "Verificações de Conetividade",
"No problems found" : "Nenhum problema encontrado",
"Please double check the <a href='%s'>installation guides</a>." : "Por favor verifique <a href='%s'>installation guides</a>.",
"Last cron was executed at %s." : "O ultimo cron foi executado em %s.",
@@ -131,13 +125,13 @@
"Allow users to share via link" : "Permitir que os utilizadores partilhem através do link",
"Enforce password protection" : "Forçar proteção por palavra-passe",
"Allow public uploads" : "Permitir Envios Públicos",
+ "Allow users to send mail notification for shared files" : "Permita que o utilizador envie notificações por correio electrónico para ficheiros partilhados",
"Set default expiration date" : "Especificar a data padrão de expiração",
"Expire after " : "Expira após",
"days" : "dias",
"Enforce expiration date" : "Forçar a data de expiração",
"Allow resharing" : "Permitir repartilha",
"Restrict users to only share with users in their groups" : "Restringe os utilizadores só a partilhar com utilizadores do seu grupo",
- "Allow users to send mail notification for shared files" : "Permita que o utilizador envie notificações por correio electrónico para ficheiros partilhados",
"Exclude groups from sharing" : "Excluir grupos das partilhas",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderão receber partilhas, mas não poderão iniciá-las.",
"Enforce HTTPS" : "Forçar HTTPS",
diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js
index 84b1e8d202e..16a817a066a 100644
--- a/settings/l10n/ro.js
+++ b/settings/l10n/ro.js
@@ -8,15 +8,11 @@ OC.L10N.register(
"Authentication error" : "Eroare la autentificare",
"Your full name has been changed." : "Numele tău complet a fost schimbat.",
"Unable to change full name" : "Nu s-a puput schimba numele complet",
- "Group already exists" : "Grupul există deja",
- "Unable to add group" : "Nu s-a putut adăuga grupul",
"Files decrypted successfully" : "Fișierele au fost decriptate cu succes",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nu s-a puput decripta fișierele tale, verifică owncloud.log sau întreabă administratorul",
"Couldn't decrypt your files, check your password and try again" : "Nu s-a puput decripta fișierele tale, verifică parola și încearcă din nou",
"Email saved" : "E-mail salvat",
"Invalid email" : "E-mail invalid",
- "Unable to delete group" : "Nu s-a putut șterge grupul",
- "Unable to delete user" : "Nu s-a putut șterge utilizatorul",
"Language changed" : "Limba a fost schimbată",
"Invalid request" : "Cerere eronată",
"Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul admin",
@@ -73,8 +69,8 @@ OC.L10N.register(
"Execute one task with each page loaded" : "Execută o sarcină la fiecare pagină încărcată",
"Allow apps to use the Share API" : "Permite aplicațiilor să folosească API-ul de partajare",
"Allow public uploads" : "Permite încărcări publice",
- "Allow resharing" : "Permite repartajarea",
"Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune",
+ "Allow resharing" : "Permite repartajarea",
"Forces the clients to connect to %s via an encrypted connection." : "Forțează clienții să se conecteze la %s folosind o conexiune sigură",
"Send mode" : "Modul de expediere",
"Authentication method" : "Modul de autentificare",
diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json
index 090b6dada69..9d3a25fad68 100644
--- a/settings/l10n/ro.json
+++ b/settings/l10n/ro.json
@@ -6,15 +6,11 @@
"Authentication error" : "Eroare la autentificare",
"Your full name has been changed." : "Numele tău complet a fost schimbat.",
"Unable to change full name" : "Nu s-a puput schimba numele complet",
- "Group already exists" : "Grupul există deja",
- "Unable to add group" : "Nu s-a putut adăuga grupul",
"Files decrypted successfully" : "Fișierele au fost decriptate cu succes",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nu s-a puput decripta fișierele tale, verifică owncloud.log sau întreabă administratorul",
"Couldn't decrypt your files, check your password and try again" : "Nu s-a puput decripta fișierele tale, verifică parola și încearcă din nou",
"Email saved" : "E-mail salvat",
"Invalid email" : "E-mail invalid",
- "Unable to delete group" : "Nu s-a putut șterge grupul",
- "Unable to delete user" : "Nu s-a putut șterge utilizatorul",
"Language changed" : "Limba a fost schimbată",
"Invalid request" : "Cerere eronată",
"Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul admin",
@@ -71,8 +67,8 @@
"Execute one task with each page loaded" : "Execută o sarcină la fiecare pagină încărcată",
"Allow apps to use the Share API" : "Permite aplicațiilor să folosească API-ul de partajare",
"Allow public uploads" : "Permite încărcări publice",
- "Allow resharing" : "Permite repartajarea",
"Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune",
+ "Allow resharing" : "Permite repartajarea",
"Forces the clients to connect to %s via an encrypted connection." : "Forțează clienții să se conecteze la %s folosind o conexiune sigură",
"Send mode" : "Modul de expediere",
"Authentication method" : "Modul de autentificare",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 863e74ba137..9c90da5d62a 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Ошибка аутентификации",
"Your full name has been changed." : "Ваше полное имя было изменено.",
"Unable to change full name" : "Невозможно изменить полное имя",
- "Group already exists" : "Группа уже существует",
- "Unable to add group" : "Невозможно добавить группу",
"Files decrypted successfully" : "Дешифрование файлов прошло успешно",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ошибка при дешифровании файлов. Обратитесь к вашему системному администратору. Доп информация в owncloud.log",
"Couldn't decrypt your files, check your password and try again" : "Ошибка при дешифровании файлов. Проверьте Ваш пароль и повторите попытку",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Невозможно удалить приложение.",
"Email saved" : "Email сохранен",
"Invalid email" : "Неправильный Email",
- "Unable to delete group" : "Невозможно удалить группу",
- "Unable to delete user" : "Невозможно удалить пользователя",
"Backups restored successfully" : "Резервная копия успешно восстановлена",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Не получается восстановить ваши ключи шифрования, пожалуйста проверьте файл owncloud.log или обратитесь к Администратору.",
"Language changed" : "Язык изменён",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Включено",
"Not enabled" : "Выключено",
"Recommended" : "Рекомендовано",
+ "Group already exists." : "Группа уже существует.",
+ "Unable to add group." : "Невозможно добавить группу.",
+ "Unable to delete group." : "Невозможно удалить группу.",
"Saved" : "Сохранено",
"test email settings" : "проверить настройки почты",
"If you received this email, the settings seem to be correct." : "Если вы получили это письмо, настройки верны.",
"A problem occurred while sending the email. Please revise your settings." : "Возникла проблема при отправке письма. Пожалуйста, проверьте ваши настройки.",
"Email sent" : "Письмо отправлено",
"You need to set your user email before being able to send test emails." : "Вы должны настроить свой e-mail пользователя прежде чем отправлять тестовые сообщения.",
+ "Unable to create user." : "Невозможно создать пользователя.",
+ "Unable to delete user." : "Невозможно удалить пользователя.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?",
"Add trusted domain" : "Добавить доверенный домен",
"Sending..." : "Отправляется ...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Предупреждение безопасности",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Вы обращаетесь к %s используя HTTP. Мы настоятельно рекомендуем вам настроить сервер на использование HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что папка с Вашими данными и Ваши файлы доступны из интернета. Файл .htaccess не работает. Мы настойчиво предлагаем Вам сконфигурировать вебсервер таким образом, чтобы папка с Вашими данными более не была доступна или переместите папку с данными куда-нибудь в другое место вне основной папки документов вебсервера.",
"Setup Warning" : "Предупреждение установки",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.",
@@ -118,7 +118,6 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Мы рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.",
"URL generation in notification emails" : "Генерирование URL в уведомляющих электронных письмах",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует планировщик cron системы, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию verwritewebroot файла config.php равной пути папки установки. (Вероятно, это \"%s\".)",
- "Connectivity Checks" : "Проверка соединения",
"No problems found" : "Проблемы не найдены",
"Please double check the <a href='%s'>installation guides</a>." : "Пожалуйста, дважды просмотрите <a href='%s'>инструкции по установке</a>.",
"Last cron was executed at %s." : "Последняя cron-задача была запущена: %s.",
@@ -131,13 +130,13 @@ OC.L10N.register(
"Allow users to share via link" : "Разрешить пользователям публикации через ссылки",
"Enforce password protection" : "Защита паролем обязательна",
"Allow public uploads" : "Разрешить открытые загрузки",
+ "Allow users to send mail notification for shared files" : "Разрешить пользователю оповещать почтой о расшаренных файлах",
"Set default expiration date" : "Установить срок действия по-умолчанию",
"Expire after " : "Заканчивается через",
"days" : "дней",
"Enforce expiration date" : "Срок действия обязателен",
"Allow resharing" : "Разрешить переоткрытие общего доступа",
"Restrict users to only share with users in their groups" : "Разрешить пользователям публикации только внутри их групп",
- "Allow users to send mail notification for shared files" : "Разрешить пользователю оповещать почтой о расшаренных файлах",
"Exclude groups from sharing" : "Исключить группы из общего доступа",
"These groups will still be able to receive shares, but not to initiate them." : "Эти группы смогут получать общие файлы, но не смогут отправлять их.",
"Enforce HTTPS" : "HTTPS соединение обязательно",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 052861fd163..59e22320d5c 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -8,8 +8,6 @@
"Authentication error" : "Ошибка аутентификации",
"Your full name has been changed." : "Ваше полное имя было изменено.",
"Unable to change full name" : "Невозможно изменить полное имя",
- "Group already exists" : "Группа уже существует",
- "Unable to add group" : "Невозможно добавить группу",
"Files decrypted successfully" : "Дешифрование файлов прошло успешно",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ошибка при дешифровании файлов. Обратитесь к вашему системному администратору. Доп информация в owncloud.log",
"Couldn't decrypt your files, check your password and try again" : "Ошибка при дешифровании файлов. Проверьте Ваш пароль и повторите попытку",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Невозможно удалить приложение.",
"Email saved" : "Email сохранен",
"Invalid email" : "Неправильный Email",
- "Unable to delete group" : "Невозможно удалить группу",
- "Unable to delete user" : "Невозможно удалить пользователя",
"Backups restored successfully" : "Резервная копия успешно восстановлена",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Не получается восстановить ваши ключи шифрования, пожалуйста проверьте файл owncloud.log или обратитесь к Администратору.",
"Language changed" : "Язык изменён",
@@ -37,12 +33,17 @@
"Enabled" : "Включено",
"Not enabled" : "Выключено",
"Recommended" : "Рекомендовано",
+ "Group already exists." : "Группа уже существует.",
+ "Unable to add group." : "Невозможно добавить группу.",
+ "Unable to delete group." : "Невозможно удалить группу.",
"Saved" : "Сохранено",
"test email settings" : "проверить настройки почты",
"If you received this email, the settings seem to be correct." : "Если вы получили это письмо, настройки верны.",
"A problem occurred while sending the email. Please revise your settings." : "Возникла проблема при отправке письма. Пожалуйста, проверьте ваши настройки.",
"Email sent" : "Письмо отправлено",
"You need to set your user email before being able to send test emails." : "Вы должны настроить свой e-mail пользователя прежде чем отправлять тестовые сообщения.",
+ "Unable to create user." : "Невозможно создать пользователя.",
+ "Unable to delete user." : "Невозможно удалить пользователя.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?",
"Add trusted domain" : "Добавить доверенный домен",
"Sending..." : "Отправляется ...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Предупреждение безопасности",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Вы обращаетесь к %s используя HTTP. Мы настоятельно рекомендуем вам настроить сервер на использование HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что папка с Вашими данными и Ваши файлы доступны из интернета. Файл .htaccess не работает. Мы настойчиво предлагаем Вам сконфигурировать вебсервер таким образом, чтобы папка с Вашими данными более не была доступна или переместите папку с данными куда-нибудь в другое место вне основной папки документов вебсервера.",
"Setup Warning" : "Предупреждение установки",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.",
@@ -116,7 +116,6 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Мы рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.",
"URL generation in notification emails" : "Генерирование URL в уведомляющих электронных письмах",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует планировщик cron системы, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию verwritewebroot файла config.php равной пути папки установки. (Вероятно, это \"%s\".)",
- "Connectivity Checks" : "Проверка соединения",
"No problems found" : "Проблемы не найдены",
"Please double check the <a href='%s'>installation guides</a>." : "Пожалуйста, дважды просмотрите <a href='%s'>инструкции по установке</a>.",
"Last cron was executed at %s." : "Последняя cron-задача была запущена: %s.",
@@ -129,13 +128,13 @@
"Allow users to share via link" : "Разрешить пользователям публикации через ссылки",
"Enforce password protection" : "Защита паролем обязательна",
"Allow public uploads" : "Разрешить открытые загрузки",
+ "Allow users to send mail notification for shared files" : "Разрешить пользователю оповещать почтой о расшаренных файлах",
"Set default expiration date" : "Установить срок действия по-умолчанию",
"Expire after " : "Заканчивается через",
"days" : "дней",
"Enforce expiration date" : "Срок действия обязателен",
"Allow resharing" : "Разрешить переоткрытие общего доступа",
"Restrict users to only share with users in their groups" : "Разрешить пользователям публикации только внутри их групп",
- "Allow users to send mail notification for shared files" : "Разрешить пользователю оповещать почтой о расшаренных файлах",
"Exclude groups from sharing" : "Исключить группы из общего доступа",
"These groups will still be able to receive shares, but not to initiate them." : "Эти группы смогут получать общие файлы, но не смогут отправлять их.",
"Enforce HTTPS" : "HTTPS соединение обязательно",
diff --git a/settings/l10n/si_LK.js b/settings/l10n/si_LK.js
index 26a22fa84b7..9f35f599a57 100644
--- a/settings/l10n/si_LK.js
+++ b/settings/l10n/si_LK.js
@@ -4,12 +4,8 @@ OC.L10N.register(
"Sharing" : "හුවමාරු කිරීම",
"Log" : "ලඝුව",
"Authentication error" : "සත්‍යාපන දෝෂයක්",
- "Group already exists" : "කණ්ඩායම දැනටමත් තිබේ",
- "Unable to add group" : "කාණඩයක් එක් කළ නොහැකි විය",
"Email saved" : "වි-තැපෑල සුරකින ලදී",
"Invalid email" : "අවලංගු වි-තැපෑල",
- "Unable to delete group" : "කණ්ඩායම මැකීමට නොහැක",
- "Unable to delete user" : "පරිශීලකයා මැකීමට නොහැක",
"Language changed" : "භාෂාව ාවනස් කිරීම",
"Invalid request" : "අවලංගු අයැදුමක්",
"Unable to add user to group %s" : "පරිශීලකයා %s කණ්ඩායමට එකතු කළ නොහැක",
diff --git a/settings/l10n/si_LK.json b/settings/l10n/si_LK.json
index c67f65c9b87..8b631fd8df7 100644
--- a/settings/l10n/si_LK.json
+++ b/settings/l10n/si_LK.json
@@ -2,12 +2,8 @@
"Sharing" : "හුවමාරු කිරීම",
"Log" : "ලඝුව",
"Authentication error" : "සත්‍යාපන දෝෂයක්",
- "Group already exists" : "කණ්ඩායම දැනටමත් තිබේ",
- "Unable to add group" : "කාණඩයක් එක් කළ නොහැකි විය",
"Email saved" : "වි-තැපෑල සුරකින ලදී",
"Invalid email" : "අවලංගු වි-තැපෑල",
- "Unable to delete group" : "කණ්ඩායම මැකීමට නොහැක",
- "Unable to delete user" : "පරිශීලකයා මැකීමට නොහැක",
"Language changed" : "භාෂාව ාවනස් කිරීම",
"Invalid request" : "අවලංගු අයැදුමක්",
"Unable to add user to group %s" : "පරිශීලකයා %s කණ්ඩායමට එකතු කළ නොහැක",
diff --git a/settings/l10n/sk_SK.js b/settings/l10n/sk_SK.js
index 3d9fe53c946..a90ba60bedf 100644
--- a/settings/l10n/sk_SK.js
+++ b/settings/l10n/sk_SK.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Chyba autentifikácie",
"Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.",
"Unable to change full name" : "Nemožno zmeniť meno a priezvisko",
- "Group already exists" : "Skupina už existuje",
- "Unable to add group" : "Nie je možné pridať skupinu",
"Files decrypted successfully" : "Súbory sú úspešne dešifrované",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nemožno dešifrovať vaše súbory, skontrolujte svoj owncloud.log alebo požiadajte o pomoc adminstrátora",
"Couldn't decrypt your files, check your password and try again" : "Nemožno dešifrovať vaše súbory, skontrolujte svoje heslo a skúste to znova",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nemožno odstrániť aplikáciu.",
"Email saved" : "Email uložený",
"Invalid email" : "Neplatný email",
- "Unable to delete group" : "Nie je možné odstrániť skupinu",
- "Unable to delete user" : "Nie je možné odstrániť používateľa",
"Backups restored successfully" : "Zálohy boli úspešne obnovené",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebolo možné obnoviť vaše šifrovacie kľúče, skontrolujte si prosím owncloud.log alebo kontaktujte svojho správcu",
"Language changed" : "Jazyk zmenený",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Bezpečnostné upozornenie",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Do %s máte prístup cez HTTP. Dôrazne odporúčame nakonfigurovať server tak, aby namiesto toho vyžadoval použitie HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný, alebo presunúť priečinok s dátami mimo priestor sprístupňovaný webovým serverom.",
"Setup Warning" : "Nastavenia oznámení a upozornení",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.",
@@ -117,7 +112,6 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "To znamená, že sa môžu vyskytnúť problémy s niektorými znakmi v názvoch súborov.",
"URL generation in notification emails" : "Generovanie adresy URL v oznamovacích emailoch",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwritewebroot\" (Doporučujeme: \"%s\")",
- "Connectivity Checks" : "Overovanie pripojenia",
"No problems found" : "Nenašli sa žiadne problémy",
"Please double check the <a href='%s'>installation guides</a>." : "Prosím skontrolujte <a href='%s'>inštalačnú príručku</a>.",
"Last cron was executed at %s." : "Posledný cron bol spustený %s.",
@@ -130,13 +124,13 @@ OC.L10N.register(
"Allow users to share via link" : "Povoliť používateľom zdieľanie pomocou odkazov",
"Enforce password protection" : "Vynútiť ochranu heslom",
"Allow public uploads" : "Povoliť verejné nahrávanie súborov",
+ "Allow users to send mail notification for shared files" : "Povoliť používateľom zasielať emailom oznámenie o zdieľaní súborov",
"Set default expiration date" : "Nastaviť predvolený dátum expirácie",
"Expire after " : "Platnosť do",
"days" : "dni",
"Enforce expiration date" : "Vynútiť dátum expirácie",
"Allow resharing" : "Povoliť zdieľanie ďalej",
"Restrict users to only share with users in their groups" : "Povoliť používateľom zdieľanie len medzi nimi v rámci skupiny",
- "Allow users to send mail notification for shared files" : "Povoliť používateľom zasielať emailom oznámenie o zdieľaní súborov",
"Exclude groups from sharing" : "Vybrať skupiny zo zdieľania",
"These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny budú môcť stále zdieľať, ale sami nemôžu zdieľať ostatným.",
"Enforce HTTPS" : "Vynútiť HTTPS",
diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json
index 95c4c76b74b..081a94e66de 100644
--- a/settings/l10n/sk_SK.json
+++ b/settings/l10n/sk_SK.json
@@ -8,8 +8,6 @@
"Authentication error" : "Chyba autentifikácie",
"Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.",
"Unable to change full name" : "Nemožno zmeniť meno a priezvisko",
- "Group already exists" : "Skupina už existuje",
- "Unable to add group" : "Nie je možné pridať skupinu",
"Files decrypted successfully" : "Súbory sú úspešne dešifrované",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nemožno dešifrovať vaše súbory, skontrolujte svoj owncloud.log alebo požiadajte o pomoc adminstrátora",
"Couldn't decrypt your files, check your password and try again" : "Nemožno dešifrovať vaše súbory, skontrolujte svoje heslo a skúste to znova",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Nemožno odstrániť aplikáciu.",
"Email saved" : "Email uložený",
"Invalid email" : "Neplatný email",
- "Unable to delete group" : "Nie je možné odstrániť skupinu",
- "Unable to delete user" : "Nie je možné odstrániť používateľa",
"Backups restored successfully" : "Zálohy boli úspešne obnovené",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebolo možné obnoviť vaše šifrovacie kľúče, skontrolujte si prosím owncloud.log alebo kontaktujte svojho správcu",
"Language changed" : "Jazyk zmenený",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Bezpečnostné upozornenie",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Do %s máte prístup cez HTTP. Dôrazne odporúčame nakonfigurovať server tak, aby namiesto toho vyžadoval použitie HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný, alebo presunúť priečinok s dátami mimo priestor sprístupňovaný webovým serverom.",
"Setup Warning" : "Nastavenia oznámení a upozornení",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.",
@@ -115,7 +110,6 @@
"This means that there might be problems with certain characters in file names." : "To znamená, že sa môžu vyskytnúť problémy s niektorými znakmi v názvoch súborov.",
"URL generation in notification emails" : "Generovanie adresy URL v oznamovacích emailoch",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwritewebroot\" (Doporučujeme: \"%s\")",
- "Connectivity Checks" : "Overovanie pripojenia",
"No problems found" : "Nenašli sa žiadne problémy",
"Please double check the <a href='%s'>installation guides</a>." : "Prosím skontrolujte <a href='%s'>inštalačnú príručku</a>.",
"Last cron was executed at %s." : "Posledný cron bol spustený %s.",
@@ -128,13 +122,13 @@
"Allow users to share via link" : "Povoliť používateľom zdieľanie pomocou odkazov",
"Enforce password protection" : "Vynútiť ochranu heslom",
"Allow public uploads" : "Povoliť verejné nahrávanie súborov",
+ "Allow users to send mail notification for shared files" : "Povoliť používateľom zasielať emailom oznámenie o zdieľaní súborov",
"Set default expiration date" : "Nastaviť predvolený dátum expirácie",
"Expire after " : "Platnosť do",
"days" : "dni",
"Enforce expiration date" : "Vynútiť dátum expirácie",
"Allow resharing" : "Povoliť zdieľanie ďalej",
"Restrict users to only share with users in their groups" : "Povoliť používateľom zdieľanie len medzi nimi v rámci skupiny",
- "Allow users to send mail notification for shared files" : "Povoliť používateľom zasielať emailom oznámenie o zdieľaní súborov",
"Exclude groups from sharing" : "Vybrať skupiny zo zdieľania",
"These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny budú môcť stále zdieľať, ale sami nemôžu zdieľať ostatným.",
"Enforce HTTPS" : "Vynútiť HTTPS",
diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js
index cd8a932499d..6d155adfa9e 100644
--- a/settings/l10n/sl.js
+++ b/settings/l10n/sl.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Napaka med overjanjem",
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
"Unable to change full name" : "Ni mogoče spremeniti polnega imena",
- "Group already exists" : "Skupina že obstaja",
- "Unable to add group" : "Skupine ni mogoče dodati",
"Files decrypted successfully" : "Datoteke so uspešno odšifrirane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Datotek ni mogoče odšifrirati. Preverite dnevnik owncloud.log ali pa se posvetujte s skrbnikom.",
"Couldn't decrypt your files, check your password and try again" : "Datotek ni mogoče odšifrirati. Preverite geslo in poskusite znova.",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Ni mogoče odstraniti programa.",
"Email saved" : "Elektronski naslov je shranjen",
"Invalid email" : "Neveljaven elektronski naslov",
- "Unable to delete group" : "Skupine ni mogoče izbrisati",
- "Unable to delete user" : "Uporabnika ni mogoče izbrisati",
"Backups restored successfully" : "Varnostne kopije so uspešno obnovljene.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ni mogoče obnoviti šifrirnih ključev. Preverite dnevnik owncloud.log ali pa stopite v stik s skrbnikom sistema.",
"Language changed" : "Jezik je spremenjen",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Varnostno opozorilo",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Dostop do %s poteka preko HTTP. Priporočljivo je nastaviti strežnik na privzeto uporabo varne povezave preko protokola HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vaša podatkovna mapa in datoteke so najverjetneje dosegljive preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Setup Warning" : "Opozorilo nastavitve",
"Database Performance Info" : "Podrobnosti delovanja podatkovne zbirke",
"Module 'fileinfo' missing" : "Manjka modul 'fileinfo'.",
@@ -112,7 +107,6 @@ OC.L10N.register(
"System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.",
"This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.",
"URL generation in notification emails" : "Ustvarjanje naslova URL v elektronskih sporočilih",
- "Connectivity Checks" : "Preverjanje povezav",
"No problems found" : "Ni zaznanih težav",
"Please double check the <a href='%s'>installation guides</a>." : "Preverite <a href='%s'>navodila namestitve</a>.",
"Last cron was executed at %s." : "Zadnje periodično opravilo cron je bilo izvedeno ob %s.",
@@ -125,13 +119,13 @@ OC.L10N.register(
"Allow users to share via link" : "Uporabnikom dovoli omogočanje souporabe s povezavami",
"Enforce password protection" : "Vsili zaščito z geslom",
"Allow public uploads" : "Dovoli javno pošiljanje datotek v oblak",
+ "Allow users to send mail notification for shared files" : "Dovoli uporabnikom pošiljati obvestila o souporabi datotek po elektronski pošti.",
"Set default expiration date" : "Nastavitev privzetega datuma poteka",
"Expire after " : "Preteče po",
"days" : "dneh",
"Enforce expiration date" : "Vsili datum preteka",
"Allow resharing" : "Dovoli nadaljnjo souporabo",
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
- "Allow users to send mail notification for shared files" : "Dovoli uporabnikom pošiljati obvestila o souporabi datotek po elektronski pošti.",
"Exclude groups from sharing" : "Izloči skupine iz souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, ne morejo pa souporabe dovoliti",
"Enforce HTTPS" : "Zahtevaj uporabo HTTPS",
diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json
index 831ca55d515..f477315640d 100644
--- a/settings/l10n/sl.json
+++ b/settings/l10n/sl.json
@@ -8,8 +8,6 @@
"Authentication error" : "Napaka med overjanjem",
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
"Unable to change full name" : "Ni mogoče spremeniti polnega imena",
- "Group already exists" : "Skupina že obstaja",
- "Unable to add group" : "Skupine ni mogoče dodati",
"Files decrypted successfully" : "Datoteke so uspešno odšifrirane",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Datotek ni mogoče odšifrirati. Preverite dnevnik owncloud.log ali pa se posvetujte s skrbnikom.",
"Couldn't decrypt your files, check your password and try again" : "Datotek ni mogoče odšifrirati. Preverite geslo in poskusite znova.",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Ni mogoče odstraniti programa.",
"Email saved" : "Elektronski naslov je shranjen",
"Invalid email" : "Neveljaven elektronski naslov",
- "Unable to delete group" : "Skupine ni mogoče izbrisati",
- "Unable to delete user" : "Uporabnika ni mogoče izbrisati",
"Backups restored successfully" : "Varnostne kopije so uspešno obnovljene.",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ni mogoče obnoviti šifrirnih ključev. Preverite dnevnik owncloud.log ali pa stopite v stik s skrbnikom sistema.",
"Language changed" : "Jezik je spremenjen",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Varnostno opozorilo",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Dostop do %s poteka preko HTTP. Priporočljivo je nastaviti strežnik na privzeto uporabo varne povezave preko protokola HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Vaša podatkovna mapa in datoteke so najverjetneje dosegljive preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Setup Warning" : "Opozorilo nastavitve",
"Database Performance Info" : "Podrobnosti delovanja podatkovne zbirke",
"Module 'fileinfo' missing" : "Manjka modul 'fileinfo'.",
@@ -110,7 +105,6 @@
"System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.",
"This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.",
"URL generation in notification emails" : "Ustvarjanje naslova URL v elektronskih sporočilih",
- "Connectivity Checks" : "Preverjanje povezav",
"No problems found" : "Ni zaznanih težav",
"Please double check the <a href='%s'>installation guides</a>." : "Preverite <a href='%s'>navodila namestitve</a>.",
"Last cron was executed at %s." : "Zadnje periodično opravilo cron je bilo izvedeno ob %s.",
@@ -123,13 +117,13 @@
"Allow users to share via link" : "Uporabnikom dovoli omogočanje souporabe s povezavami",
"Enforce password protection" : "Vsili zaščito z geslom",
"Allow public uploads" : "Dovoli javno pošiljanje datotek v oblak",
+ "Allow users to send mail notification for shared files" : "Dovoli uporabnikom pošiljati obvestila o souporabi datotek po elektronski pošti.",
"Set default expiration date" : "Nastavitev privzetega datuma poteka",
"Expire after " : "Preteče po",
"days" : "dneh",
"Enforce expiration date" : "Vsili datum preteka",
"Allow resharing" : "Dovoli nadaljnjo souporabo",
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
- "Allow users to send mail notification for shared files" : "Dovoli uporabnikom pošiljati obvestila o souporabi datotek po elektronski pošti.",
"Exclude groups from sharing" : "Izloči skupine iz souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, ne morejo pa souporabe dovoliti",
"Enforce HTTPS" : "Zahtevaj uporabo HTTPS",
diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js
index fbb926feeb7..9a28e9d7f77 100644
--- a/settings/l10n/sq.js
+++ b/settings/l10n/sq.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Gabim autentifikimi",
"Your full name has been changed." : "Emri juaj i plotë ka ndryshuar.",
"Unable to change full name" : "Nuk mund të ndryshohet emri i plotë",
- "Group already exists" : "Grupi ekziston",
- "Unable to add group" : "E pamundur të shtohet grupi",
"Files decrypted successfully" : "Skedarët janë dëshifruar me sukses",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nuk mund të dëshifrohen skedarët tuaj, ju lutem kontrolloni owncloud.log ose pyesni administratorin tuaj.",
"Couldn't decrypt your files, check your password and try again" : "Nuk mund të dëshifrohen skedarët tuaj, ju lutem kontrolloni fjalëkalimin tuaj dhe provoni përsëri.",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Nuk mund të hiqet aplikacioni.",
"Email saved" : "Email u ruajt",
"Invalid email" : "Email jo i vlefshëm",
- "Unable to delete group" : "E pamundur të fshihet grupi",
- "Unable to delete user" : "E pamundur të fshihet përdoruesi",
"Backups restored successfully" : "Kopjet rezervë u restauruan me sukses",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nuk mund të restaurohen çelësat tuaj të shifrimit, ju lutem kontrolloni owncloud.log ose pyesni administratorin tuaj.",
"Language changed" : "Gjuha u ndryshua",
diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json
index 2fa9c2f6d17..bc1a84a81b1 100644
--- a/settings/l10n/sq.json
+++ b/settings/l10n/sq.json
@@ -8,8 +8,6 @@
"Authentication error" : "Gabim autentifikimi",
"Your full name has been changed." : "Emri juaj i plotë ka ndryshuar.",
"Unable to change full name" : "Nuk mund të ndryshohet emri i plotë",
- "Group already exists" : "Grupi ekziston",
- "Unable to add group" : "E pamundur të shtohet grupi",
"Files decrypted successfully" : "Skedarët janë dëshifruar me sukses",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nuk mund të dëshifrohen skedarët tuaj, ju lutem kontrolloni owncloud.log ose pyesni administratorin tuaj.",
"Couldn't decrypt your files, check your password and try again" : "Nuk mund të dëshifrohen skedarët tuaj, ju lutem kontrolloni fjalëkalimin tuaj dhe provoni përsëri.",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Nuk mund të hiqet aplikacioni.",
"Email saved" : "Email u ruajt",
"Invalid email" : "Email jo i vlefshëm",
- "Unable to delete group" : "E pamundur të fshihet grupi",
- "Unable to delete user" : "E pamundur të fshihet përdoruesi",
"Backups restored successfully" : "Kopjet rezervë u restauruan me sukses",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nuk mund të restaurohen çelësat tuaj të shifrimit, ju lutem kontrolloni owncloud.log ose pyesni administratorin tuaj.",
"Language changed" : "Gjuha u ndryshua",
diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js
index e8952f96ef1..115fe320757 100644
--- a/settings/l10n/sr.js
+++ b/settings/l10n/sr.js
@@ -5,12 +5,8 @@ OC.L10N.register(
"Security" : "Безбедност",
"Log" : "Бележење",
"Authentication error" : "Грешка при провери идентитета",
- "Group already exists" : "Група већ постоји",
- "Unable to add group" : "Не могу да додам групу",
"Email saved" : "Е-порука сачувана",
"Invalid email" : "Неисправна е-адреса",
- "Unable to delete group" : "Не могу да уклоним групу",
- "Unable to delete user" : "Не могу да уклоним корисника",
"Language changed" : "Језик је промењен",
"Invalid request" : "Неисправан захтев",
"Admins can't remove themself from the admin group" : "Управници не могу себе уклонити из админ групе",
diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json
index 492f66dae51..1c80869dea3 100644
--- a/settings/l10n/sr.json
+++ b/settings/l10n/sr.json
@@ -3,12 +3,8 @@
"Security" : "Безбедност",
"Log" : "Бележење",
"Authentication error" : "Грешка при провери идентитета",
- "Group already exists" : "Група већ постоји",
- "Unable to add group" : "Не могу да додам групу",
"Email saved" : "Е-порука сачувана",
"Invalid email" : "Неисправна е-адреса",
- "Unable to delete group" : "Не могу да уклоним групу",
- "Unable to delete user" : "Не могу да уклоним корисника",
"Language changed" : "Језик је промењен",
"Invalid request" : "Неисправан захтев",
"Admins can't remove themself from the admin group" : "Управници не могу себе уклонити из админ групе",
diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js
index ca4fac8cdd1..32b10e55ee7 100644
--- a/settings/l10n/sv.js
+++ b/settings/l10n/sv.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "Fel vid autentisering",
"Your full name has been changed." : "Hela ditt namn har ändrats",
"Unable to change full name" : "Kunde inte ändra hela namnet",
- "Group already exists" : "Gruppen finns redan",
- "Unable to add group" : "Kan inte lägga till grupp",
"Files decrypted successfully" : "Filerna dekrypterades utan fel",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Det gick inte att dekryptera dina filer, kontrollera din owncloud.log eller fråga administratören",
"Couldn't decrypt your files, check your password and try again" : "Det gick inte att dekryptera filerna, kontrollera ditt lösenord och försök igen",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "Kunde inte ta bort applikationen.",
"Email saved" : "E-post sparad",
"Invalid email" : "Ogiltig e-post",
- "Unable to delete group" : "Kan inte radera grupp",
- "Unable to delete user" : "Kan inte radera användare",
"Backups restored successfully" : "Återställning av säkerhetskopior lyckades",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kan inte återställa dina krypteringsnycklar, vänligen kontrollera din owncloud.log eller fråga din administratör.",
"Language changed" : "Språk ändrades",
@@ -98,7 +94,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Säkerhetsvarning",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du ansluter till %s via HTTP. Vi rekommenderar starkt att du konfigurerar din server att använda HTTPS istället.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din datakatalog och dina filer är förmodligen åtkomliga från internet. Filen .htaccess fungerar inte. Vi rekommenderar starkt att du konfigurerar din webbserver så att datakatalogen inte längre är åtkomlig eller du flyttar datakatalogen utanför webbserverns rotkatalog.",
"Setup Warning" : "Installationsvarning",
"Database Performance Info" : "Databasprestanda Information",
"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite används som databas. För större installationer rekommenderar vi att ändra på detta. För att migrera till en annan databas, använd kommandoverktyget: 'occ db:convert-type'",
@@ -117,13 +112,13 @@ OC.L10N.register(
"Allow users to share via link" : "Tillåt användare att dela via länk",
"Enforce password protection" : "Tillämpa lösenordskydd",
"Allow public uploads" : "Tillåt offentlig uppladdning",
+ "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer",
"Set default expiration date" : "Ställ in standardutgångsdatum",
"Expire after " : "Förfaller efter",
"days" : "dagar",
"Enforce expiration date" : "Tillämpa förfallodatum",
"Allow resharing" : "Tillåt vidaredelning",
"Restrict users to only share with users in their groups" : "Begränsa användare till att enbart kunna dela med användare i deras grupper",
- "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer",
"Exclude groups from sharing" : "Exkludera grupp från att dela",
"These groups will still be able to receive shares, but not to initiate them." : "Dessa grupper kommer fortfarande kunna ta emot delningar, men inte skapa delningar.",
"Enforce HTTPS" : "Kräv HTTPS",
diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json
index d3e685a8432..3e447557a32 100644
--- a/settings/l10n/sv.json
+++ b/settings/l10n/sv.json
@@ -7,8 +7,6 @@
"Authentication error" : "Fel vid autentisering",
"Your full name has been changed." : "Hela ditt namn har ändrats",
"Unable to change full name" : "Kunde inte ändra hela namnet",
- "Group already exists" : "Gruppen finns redan",
- "Unable to add group" : "Kan inte lägga till grupp",
"Files decrypted successfully" : "Filerna dekrypterades utan fel",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Det gick inte att dekryptera dina filer, kontrollera din owncloud.log eller fråga administratören",
"Couldn't decrypt your files, check your password and try again" : "Det gick inte att dekryptera filerna, kontrollera ditt lösenord och försök igen",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "Kunde inte ta bort applikationen.",
"Email saved" : "E-post sparad",
"Invalid email" : "Ogiltig e-post",
- "Unable to delete group" : "Kan inte radera grupp",
- "Unable to delete user" : "Kan inte radera användare",
"Backups restored successfully" : "Återställning av säkerhetskopior lyckades",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kan inte återställa dina krypteringsnycklar, vänligen kontrollera din owncloud.log eller fråga din administratör.",
"Language changed" : "Språk ändrades",
@@ -96,7 +92,6 @@
"TLS" : "TLS",
"Security Warning" : "Säkerhetsvarning",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du ansluter till %s via HTTP. Vi rekommenderar starkt att du konfigurerar din server att använda HTTPS istället.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din datakatalog och dina filer är förmodligen åtkomliga från internet. Filen .htaccess fungerar inte. Vi rekommenderar starkt att du konfigurerar din webbserver så att datakatalogen inte längre är åtkomlig eller du flyttar datakatalogen utanför webbserverns rotkatalog.",
"Setup Warning" : "Installationsvarning",
"Database Performance Info" : "Databasprestanda Information",
"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite används som databas. För större installationer rekommenderar vi att ändra på detta. För att migrera till en annan databas, använd kommandoverktyget: 'occ db:convert-type'",
@@ -115,13 +110,13 @@
"Allow users to share via link" : "Tillåt användare att dela via länk",
"Enforce password protection" : "Tillämpa lösenordskydd",
"Allow public uploads" : "Tillåt offentlig uppladdning",
+ "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer",
"Set default expiration date" : "Ställ in standardutgångsdatum",
"Expire after " : "Förfaller efter",
"days" : "dagar",
"Enforce expiration date" : "Tillämpa förfallodatum",
"Allow resharing" : "Tillåt vidaredelning",
"Restrict users to only share with users in their groups" : "Begränsa användare till att enbart kunna dela med användare i deras grupper",
- "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer",
"Exclude groups from sharing" : "Exkludera grupp från att dela",
"These groups will still be able to receive shares, but not to initiate them." : "Dessa grupper kommer fortfarande kunna ta emot delningar, men inte skapa delningar.",
"Enforce HTTPS" : "Kräv HTTPS",
diff --git a/settings/l10n/ta_LK.js b/settings/l10n/ta_LK.js
index 5cfa80a5476..d8b7b36d2f4 100644
--- a/settings/l10n/ta_LK.js
+++ b/settings/l10n/ta_LK.js
@@ -2,12 +2,8 @@ OC.L10N.register(
"settings",
{
"Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
- "Group already exists" : "குழு ஏற்கனவே உள்ளது",
- "Unable to add group" : "குழுவை சேர்க்க முடியாது",
"Email saved" : "மின்னஞ்சல் சேமிக்கப்பட்டது",
"Invalid email" : "செல்லுபடியற்ற மின்னஞ்சல்",
- "Unable to delete group" : "குழுவை நீக்க முடியாது",
- "Unable to delete user" : "பயனாளரை நீக்க முடியாது",
"Language changed" : "மொழி மாற்றப்பட்டது",
"Invalid request" : "செல்லுபடியற்ற வேண்டுகோள்",
"Unable to add user to group %s" : "குழு %s இல் பயனாளரை சேர்க்க முடியாது",
diff --git a/settings/l10n/ta_LK.json b/settings/l10n/ta_LK.json
index 0486b838403..1f508c2af4e 100644
--- a/settings/l10n/ta_LK.json
+++ b/settings/l10n/ta_LK.json
@@ -1,11 +1,7 @@
{ "translations": {
"Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
- "Group already exists" : "குழு ஏற்கனவே உள்ளது",
- "Unable to add group" : "குழுவை சேர்க்க முடியாது",
"Email saved" : "மின்னஞ்சல் சேமிக்கப்பட்டது",
"Invalid email" : "செல்லுபடியற்ற மின்னஞ்சல்",
- "Unable to delete group" : "குழுவை நீக்க முடியாது",
- "Unable to delete user" : "பயனாளரை நீக்க முடியாது",
"Language changed" : "மொழி மாற்றப்பட்டது",
"Invalid request" : "செல்லுபடியற்ற வேண்டுகோள்",
"Unable to add user to group %s" : "குழு %s இல் பயனாளரை சேர்க்க முடியாது",
diff --git a/settings/l10n/th_TH.js b/settings/l10n/th_TH.js
index 5f331a3c4fd..56062eaa1cb 100644
--- a/settings/l10n/th_TH.js
+++ b/settings/l10n/th_TH.js
@@ -5,12 +5,8 @@ OC.L10N.register(
"Sharing" : "การแชร์ข้อมูล",
"Log" : "บันทึกการเปลี่ยนแปลง",
"Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
- "Group already exists" : "มีกลุ่มดังกล่าวอยู่ในระบบอยู่แล้ว",
- "Unable to add group" : "ไม่สามารถเพิ่มกลุ่มได้",
"Email saved" : "อีเมลถูกบันทึกแล้ว",
"Invalid email" : "อีเมลไม่ถูกต้อง",
- "Unable to delete group" : "ไม่สามารถลบกลุ่มได้",
- "Unable to delete user" : "ไม่สามารถลบผู้ใช้งานได้",
"Language changed" : "เปลี่ยนภาษาเรียบร้อยแล้ว",
"Invalid request" : "คำร้องขอไม่ถูกต้อง",
"Admins can't remove themself from the admin group" : "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้",
diff --git a/settings/l10n/th_TH.json b/settings/l10n/th_TH.json
index 42eee4fa737..588ed635232 100644
--- a/settings/l10n/th_TH.json
+++ b/settings/l10n/th_TH.json
@@ -3,12 +3,8 @@
"Sharing" : "การแชร์ข้อมูล",
"Log" : "บันทึกการเปลี่ยนแปลง",
"Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
- "Group already exists" : "มีกลุ่มดังกล่าวอยู่ในระบบอยู่แล้ว",
- "Unable to add group" : "ไม่สามารถเพิ่มกลุ่มได้",
"Email saved" : "อีเมลถูกบันทึกแล้ว",
"Invalid email" : "อีเมลไม่ถูกต้อง",
- "Unable to delete group" : "ไม่สามารถลบกลุ่มได้",
- "Unable to delete user" : "ไม่สามารถลบผู้ใช้งานได้",
"Language changed" : "เปลี่ยนภาษาเรียบร้อยแล้ว",
"Invalid request" : "คำร้องขอไม่ถูกต้อง",
"Admins can't remove themself from the admin group" : "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้",
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index 441f1377b96..d849829ac1b 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Kimlik doğrulama hatası",
"Your full name has been changed." : "Tam adınız değiştirildi.",
"Unable to change full name" : "Tam adınız değiştirilirken hata",
- "Group already exists" : "Grup zaten mevcut",
- "Unable to add group" : "Grup eklenemiyor",
"Files decrypted successfully" : "Dosyaların şifrelemesi başarıyla kaldırıldı",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dosyalarınızın şifrelemesi kaldırılamadı, lütfen owncloud.log dosyasına bakın veya yöneticinizle iletişime geçin",
"Couldn't decrypt your files, check your password and try again" : "Dosyalarınızın şifrelemesi kaldırılamadı, parolanızı denetleyip yeniden deneyin",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Uygulama kaldırılamadı.",
"Email saved" : "E-posta kaydedildi",
"Invalid email" : "Geçersiz e-posta",
- "Unable to delete group" : "Grup silinemiyor",
- "Unable to delete user" : "Kullanıcı silinemiyor",
"Backups restored successfully" : "Yedekler başarıyla geri yüklendi",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Şifreleme anahtarlarınız geri yüklenemedi, lütfen owncloud.log dosyasını denetleyin veya yöneticinize danışın",
"Language changed" : "Dil değiştirildi",
@@ -39,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Etkin",
"Not enabled" : "Etkin değil",
"Recommended" : "Önerilen",
+ "Group already exists." : "Grup zaten mevcut.",
+ "Unable to add group." : "Grup ekleme başarısız.",
+ "Unable to delete group." : "Grubu silme başarısız.",
"Saved" : "Kaydedildi",
"test email settings" : "e-posta ayarlarını sına",
"If you received this email, the settings seem to be correct." : "Eğer bu e-postayı aldıysanız, ayarlar doğru gibi görünüyor.",
"A problem occurred while sending the email. Please revise your settings." : "E-posta gönderilirken bir sorun oluştu. Lütfen ayarlarınızı gözden geçirin.",
"Email sent" : "E-posta gönderildi",
"You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamanız gerekiyor.",
+ "Unable to create user." : "Kullanıcı oluşturma başarısız.",
+ "Unable to delete user." : "Kullanıcı silme başarısız.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?",
"Add trusted domain" : "Güvenilir alan adı ekle",
"Sending..." : "Gönderiliyor...",
@@ -102,7 +103,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Güvenlik Uyarısı",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s erişiminiz HTTP aracılığıyla yapılıyor. Sunucunuzu, HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Veri dizininiz ve dosyalarınız muhtemelen İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri dizinine erişimi kapatmanızı veya veri dizinini web sunucu belge kök dizini dışına almanızı şiddetle tavsiye ederiz.",
"Read-Only config enabled" : "Salt Okunur yapılandırma etkin",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt Okunur yapılandırma etkinleştirilmiş. Bu, bazı ayarların web arayüzü ile yapılandırılmasını önler. Ayrıca, bu dosya her güncelleme sırasında el ile yazılabilir yapılmalıdır.",
"Setup Warning" : "Kurulum Uyarısı",
@@ -120,7 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanızı şiddetle tavsiye ederiz: %s.",
"URL generation in notification emails" : "Bildirim e-postalarında URL oluşturulması",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar olabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwritewebroot\" seçeneğini ayarlayın (Önerilen: \"%s\")",
- "Connectivity Checks" : "Bağlantı Kontrolleri",
+ "Configuration Checks" : "Yapılandırma Kontrolleri",
"No problems found" : "Hiç sorun yok",
"Please double check the <a href='%s'>installation guides</a>." : "Lütfen <a href='%s'>kurulum rehberlerini</a> iki kez kontrol edin.",
"Last cron was executed at %s." : "Son cron %s zamanında çalıştırıldı.",
@@ -133,13 +133,14 @@ OC.L10N.register(
"Allow users to share via link" : "Kullanıcıların bağlantı ile paylaşmasına izin ver",
"Enforce password protection" : "Parola korumasını zorla",
"Allow public uploads" : "Herkes tarafından yüklemeye izin ver",
+ "Allow users to send mail notification for shared files" : "Paylaşılmış dosyalar için kullanıcıların posta bildirimi göndermesine izin ver",
"Set default expiration date" : "Öntanımlı son kullanma tarihini ayarla",
"Expire after " : "Süre",
"days" : "gün sonra dolsun",
"Enforce expiration date" : "Son kullanma tarihini zorla",
"Allow resharing" : "Yeniden paylaşıma izin ver",
"Restrict users to only share with users in their groups" : "Kullanıcıların, dosyaları sadece kendi gruplarındaki kullanıcılarla paylaşmasına izin ver",
- "Allow users to send mail notification for shared files" : "Paylaşılmış dosyalar için kullanıcıların posta bildirimi göndermesine izin ver",
+ "Allow users to send mail notification for shared files to other users" : "Kullanıcıların diğer kullanıcılara, paylaşılmış dosyalar için posta bildirimi göndermesine izin ver",
"Exclude groups from sharing" : "Grupları paylaşma eyleminden hariç tut",
"These groups will still be able to receive shares, but not to initiate them." : "Bu gruplar hala paylaşımları alabilecek, ancak başlatamayacaktır.",
"Enforce HTTPS" : "HTTPS bağlantısına zorla",
@@ -173,6 +174,7 @@ OC.L10N.register(
"Documentation:" : "Belgelendirme:",
"User Documentation" : "Kullanıcı Belgelendirmesi",
"Admin Documentation" : "Yönetici Belgelendirmesi",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:",
"Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index 188a93e0c85..e8ef562d358 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -8,8 +8,6 @@
"Authentication error" : "Kimlik doğrulama hatası",
"Your full name has been changed." : "Tam adınız değiştirildi.",
"Unable to change full name" : "Tam adınız değiştirilirken hata",
- "Group already exists" : "Grup zaten mevcut",
- "Unable to add group" : "Grup eklenemiyor",
"Files decrypted successfully" : "Dosyaların şifrelemesi başarıyla kaldırıldı",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dosyalarınızın şifrelemesi kaldırılamadı, lütfen owncloud.log dosyasına bakın veya yöneticinizle iletişime geçin",
"Couldn't decrypt your files, check your password and try again" : "Dosyalarınızın şifrelemesi kaldırılamadı, parolanızı denetleyip yeniden deneyin",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Uygulama kaldırılamadı.",
"Email saved" : "E-posta kaydedildi",
"Invalid email" : "Geçersiz e-posta",
- "Unable to delete group" : "Grup silinemiyor",
- "Unable to delete user" : "Kullanıcı silinemiyor",
"Backups restored successfully" : "Yedekler başarıyla geri yüklendi",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Şifreleme anahtarlarınız geri yüklenemedi, lütfen owncloud.log dosyasını denetleyin veya yöneticinize danışın",
"Language changed" : "Dil değiştirildi",
@@ -37,12 +33,17 @@
"Enabled" : "Etkin",
"Not enabled" : "Etkin değil",
"Recommended" : "Önerilen",
+ "Group already exists." : "Grup zaten mevcut.",
+ "Unable to add group." : "Grup ekleme başarısız.",
+ "Unable to delete group." : "Grubu silme başarısız.",
"Saved" : "Kaydedildi",
"test email settings" : "e-posta ayarlarını sına",
"If you received this email, the settings seem to be correct." : "Eğer bu e-postayı aldıysanız, ayarlar doğru gibi görünüyor.",
"A problem occurred while sending the email. Please revise your settings." : "E-posta gönderilirken bir sorun oluştu. Lütfen ayarlarınızı gözden geçirin.",
"Email sent" : "E-posta gönderildi",
"You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamanız gerekiyor.",
+ "Unable to create user." : "Kullanıcı oluşturma başarısız.",
+ "Unable to delete user." : "Kullanıcı silme başarısız.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?",
"Add trusted domain" : "Güvenilir alan adı ekle",
"Sending..." : "Gönderiliyor...",
@@ -100,7 +101,6 @@
"TLS" : "TLS",
"Security Warning" : "Güvenlik Uyarısı",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s erişiminiz HTTP aracılığıyla yapılıyor. Sunucunuzu, HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Veri dizininiz ve dosyalarınız muhtemelen İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri dizinine erişimi kapatmanızı veya veri dizinini web sunucu belge kök dizini dışına almanızı şiddetle tavsiye ederiz.",
"Read-Only config enabled" : "Salt Okunur yapılandırma etkin",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt Okunur yapılandırma etkinleştirilmiş. Bu, bazı ayarların web arayüzü ile yapılandırılmasını önler. Ayrıca, bu dosya her güncelleme sırasında el ile yazılabilir yapılmalıdır.",
"Setup Warning" : "Kurulum Uyarısı",
@@ -118,7 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanızı şiddetle tavsiye ederiz: %s.",
"URL generation in notification emails" : "Bildirim e-postalarında URL oluşturulması",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar olabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwritewebroot\" seçeneğini ayarlayın (Önerilen: \"%s\")",
- "Connectivity Checks" : "Bağlantı Kontrolleri",
+ "Configuration Checks" : "Yapılandırma Kontrolleri",
"No problems found" : "Hiç sorun yok",
"Please double check the <a href='%s'>installation guides</a>." : "Lütfen <a href='%s'>kurulum rehberlerini</a> iki kez kontrol edin.",
"Last cron was executed at %s." : "Son cron %s zamanında çalıştırıldı.",
@@ -131,13 +131,14 @@
"Allow users to share via link" : "Kullanıcıların bağlantı ile paylaşmasına izin ver",
"Enforce password protection" : "Parola korumasını zorla",
"Allow public uploads" : "Herkes tarafından yüklemeye izin ver",
+ "Allow users to send mail notification for shared files" : "Paylaşılmış dosyalar için kullanıcıların posta bildirimi göndermesine izin ver",
"Set default expiration date" : "Öntanımlı son kullanma tarihini ayarla",
"Expire after " : "Süre",
"days" : "gün sonra dolsun",
"Enforce expiration date" : "Son kullanma tarihini zorla",
"Allow resharing" : "Yeniden paylaşıma izin ver",
"Restrict users to only share with users in their groups" : "Kullanıcıların, dosyaları sadece kendi gruplarındaki kullanıcılarla paylaşmasına izin ver",
- "Allow users to send mail notification for shared files" : "Paylaşılmış dosyalar için kullanıcıların posta bildirimi göndermesine izin ver",
+ "Allow users to send mail notification for shared files to other users" : "Kullanıcıların diğer kullanıcılara, paylaşılmış dosyalar için posta bildirimi göndermesine izin ver",
"Exclude groups from sharing" : "Grupları paylaşma eyleminden hariç tut",
"These groups will still be able to receive shares, but not to initiate them." : "Bu gruplar hala paylaşımları alabilecek, ancak başlatamayacaktır.",
"Enforce HTTPS" : "HTTPS bağlantısına zorla",
@@ -171,6 +172,7 @@
"Documentation:" : "Belgelendirme:",
"User Documentation" : "Kullanıcı Belgelendirmesi",
"Admin Documentation" : "Yönetici Belgelendirmesi",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:",
"Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
diff --git a/settings/l10n/ug.js b/settings/l10n/ug.js
index 6f49414e6e7..a4a06ae9884 100644
--- a/settings/l10n/ug.js
+++ b/settings/l10n/ug.js
@@ -5,12 +5,8 @@ OC.L10N.register(
"Security" : "بىخەتەرلىك",
"Log" : "خاتىرە",
"Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
- "Group already exists" : "گۇرۇپپا مەۋجۇت",
- "Unable to add group" : "گۇرۇپپا قوشقىلى بولمايدۇ",
"Email saved" : "تورخەت ساقلاندى",
"Invalid email" : "ئىناۋەتسىز تورخەت",
- "Unable to delete group" : "گۇرۇپپىنى ئۆچۈرەلمىدى",
- "Unable to delete user" : "ئىشلەتكۈچىنى ئۆچۈرەلمىدى",
"Language changed" : "تىل ئۆزگەردى",
"Invalid request" : "ئىناۋەتسىز ئىلتىماس",
"Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ",
diff --git a/settings/l10n/ug.json b/settings/l10n/ug.json
index c9622027cb7..d45c1a21b93 100644
--- a/settings/l10n/ug.json
+++ b/settings/l10n/ug.json
@@ -3,12 +3,8 @@
"Security" : "بىخەتەرلىك",
"Log" : "خاتىرە",
"Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
- "Group already exists" : "گۇرۇپپا مەۋجۇت",
- "Unable to add group" : "گۇرۇپپا قوشقىلى بولمايدۇ",
"Email saved" : "تورخەت ساقلاندى",
"Invalid email" : "ئىناۋەتسىز تورخەت",
- "Unable to delete group" : "گۇرۇپپىنى ئۆچۈرەلمىدى",
- "Unable to delete user" : "ئىشلەتكۈچىنى ئۆچۈرەلمىدى",
"Language changed" : "تىل ئۆزگەردى",
"Invalid request" : "ئىناۋەتسىز ئىلتىماس",
"Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ",
diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js
index e46e32c1a2e..ac01fbd8547 100644
--- a/settings/l10n/uk.js
+++ b/settings/l10n/uk.js
@@ -10,8 +10,6 @@ OC.L10N.register(
"Authentication error" : "Помилка автентифікації",
"Your full name has been changed." : "Ваше ім'я було змінене",
"Unable to change full name" : "Неможливо змінити ім'я",
- "Group already exists" : "Група вже існує",
- "Unable to add group" : "Не вдалося додати групу",
"Files decrypted successfully" : "Файли розшифровані успішно",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Помилка розшифровки файлів, зверніться до вашого адміністратора. Додаткова інформація в owncloud.log",
"Couldn't decrypt your files, check your password and try again" : "Помилка розшифровки файлів, перевірте пароль та спробуйте ще раз",
@@ -20,8 +18,6 @@ OC.L10N.register(
"Couldn't remove app." : "Неможливо видалити додаток.",
"Email saved" : "Адресу збережено",
"Invalid email" : "Невірна адреса",
- "Unable to delete group" : "Не вдалося видалити групу",
- "Unable to delete user" : "Не вдалося видалити користувача",
"Backups restored successfully" : "Резервна копія успішно відновлена",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неможливо відновити ключі шифрування, зверніться до вашого адміністратора. Додаткова інформація в owncloud.log",
"Language changed" : "Мова змінена",
@@ -102,7 +98,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Попередження про небезпеку",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви звертаєтесь до %s за допомогою HTTP. Ми наполегливо рекомендуємо вам налаштувати сервер на використання HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера.",
"Setup Warning" : "Попередження при Налаштуванні",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
@@ -118,7 +113,6 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"URL generation in notification emails" : "Генерування URL для повідомлень в електроних листах",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію overwritewebroot файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
- "Connectivity Checks" : "Перевірка З'єднання",
"No problems found" : "Проблем не виявленно",
"Please double check the <a href='%s'>installation guides</a>." : "Будь ласка, перевірте <a href='%s'>інструкції по встановленню</a>.",
"Last cron was executed at %s." : "Останню cron-задачу було запущено: %s.",
@@ -131,13 +125,13 @@ OC.L10N.register(
"Allow users to share via link" : "Дозволити користувачам ділитися через посилання",
"Enforce password protection" : "Захист паролем обов'язковий",
"Allow public uploads" : "Дозволити публічне завантаження",
+ "Allow users to send mail notification for shared files" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Set default expiration date" : "Встановити термін дії за замовчуванням",
"Expire after " : "Скінчиться через",
"days" : "днів",
"Enforce expiration date" : "Термін дії обов'язково",
"Allow resharing" : "Дозволити перевідкривати спільний доступ",
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
- "Allow users to send mail notification for shared files" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
"Enforce HTTPS" : "Примусове застосування HTTPS",
diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json
index 03455e50155..771be227edf 100644
--- a/settings/l10n/uk.json
+++ b/settings/l10n/uk.json
@@ -8,8 +8,6 @@
"Authentication error" : "Помилка автентифікації",
"Your full name has been changed." : "Ваше ім'я було змінене",
"Unable to change full name" : "Неможливо змінити ім'я",
- "Group already exists" : "Група вже існує",
- "Unable to add group" : "Не вдалося додати групу",
"Files decrypted successfully" : "Файли розшифровані успішно",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Помилка розшифровки файлів, зверніться до вашого адміністратора. Додаткова інформація в owncloud.log",
"Couldn't decrypt your files, check your password and try again" : "Помилка розшифровки файлів, перевірте пароль та спробуйте ще раз",
@@ -18,8 +16,6 @@
"Couldn't remove app." : "Неможливо видалити додаток.",
"Email saved" : "Адресу збережено",
"Invalid email" : "Невірна адреса",
- "Unable to delete group" : "Не вдалося видалити групу",
- "Unable to delete user" : "Не вдалося видалити користувача",
"Backups restored successfully" : "Резервна копія успішно відновлена",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неможливо відновити ключі шифрування, зверніться до вашого адміністратора. Додаткова інформація в owncloud.log",
"Language changed" : "Мова змінена",
@@ -100,7 +96,6 @@
"TLS" : "TLS",
"Security Warning" : "Попередження про небезпеку",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви звертаєтесь до %s за допомогою HTTP. Ми наполегливо рекомендуємо вам налаштувати сервер на використання HTTPS.",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера.",
"Setup Warning" : "Попередження при Налаштуванні",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
@@ -116,7 +111,6 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"URL generation in notification emails" : "Генерування URL для повідомлень в електроних листах",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію overwritewebroot файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
- "Connectivity Checks" : "Перевірка З'єднання",
"No problems found" : "Проблем не виявленно",
"Please double check the <a href='%s'>installation guides</a>." : "Будь ласка, перевірте <a href='%s'>інструкції по встановленню</a>.",
"Last cron was executed at %s." : "Останню cron-задачу було запущено: %s.",
@@ -129,13 +123,13 @@
"Allow users to share via link" : "Дозволити користувачам ділитися через посилання",
"Enforce password protection" : "Захист паролем обов'язковий",
"Allow public uploads" : "Дозволити публічне завантаження",
+ "Allow users to send mail notification for shared files" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Set default expiration date" : "Встановити термін дії за замовчуванням",
"Expire after " : "Скінчиться через",
"days" : "днів",
"Enforce expiration date" : "Термін дії обов'язково",
"Allow resharing" : "Дозволити перевідкривати спільний доступ",
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
- "Allow users to send mail notification for shared files" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
"Enforce HTTPS" : "Примусове застосування HTTPS",
diff --git a/settings/l10n/vi.js b/settings/l10n/vi.js
index a807bdc9328..03b918fb72c 100644
--- a/settings/l10n/vi.js
+++ b/settings/l10n/vi.js
@@ -7,12 +7,8 @@ OC.L10N.register(
"Authentication error" : "Lỗi xác thực",
"Your full name has been changed." : "Họ và tên đã được thay đổi.",
"Unable to change full name" : "Họ và tên không thể đổi ",
- "Group already exists" : "Nhóm đã tồn tại",
- "Unable to add group" : "Không thể thêm nhóm",
"Email saved" : "Lưu email",
"Invalid email" : "Email không hợp lệ",
- "Unable to delete group" : "Không thể xóa nhóm",
- "Unable to delete user" : "Không thể xóa người dùng",
"Language changed" : "Ngôn ngữ đã được thay đổi",
"Invalid request" : "Yêu cầu không hợp lệ",
"Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý",
@@ -38,7 +34,6 @@ OC.L10N.register(
"None" : "Không gì cả",
"Login" : "Đăng nhập",
"Security Warning" : "Cảnh bảo bảo mật",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Thư mục và các tập tin của bạn có thể được truy cập từ Internet. Tập tin .htaccess không làm việc. Chúng tôi đề nghị bạn cấu hình ebserver ,phân quyền lại thư mục dữ liệu và cấp quyền truy cập hoặc di chuyển thư mục dữ liệu bên ngoài tài liệu gốc máy chủ web.",
"Execute one task with each page loaded" : "Thực thi tác vụ mỗi khi trang được tải",
"Allow apps to use the Share API" : "Cho phép các ứng dụng sử dụng chia sẻ API",
"Allow resharing" : "Cho phép chia sẻ lại",
diff --git a/settings/l10n/vi.json b/settings/l10n/vi.json
index 30787bc4f8c..2561411c0bf 100644
--- a/settings/l10n/vi.json
+++ b/settings/l10n/vi.json
@@ -5,12 +5,8 @@
"Authentication error" : "Lỗi xác thực",
"Your full name has been changed." : "Họ và tên đã được thay đổi.",
"Unable to change full name" : "Họ và tên không thể đổi ",
- "Group already exists" : "Nhóm đã tồn tại",
- "Unable to add group" : "Không thể thêm nhóm",
"Email saved" : "Lưu email",
"Invalid email" : "Email không hợp lệ",
- "Unable to delete group" : "Không thể xóa nhóm",
- "Unable to delete user" : "Không thể xóa người dùng",
"Language changed" : "Ngôn ngữ đã được thay đổi",
"Invalid request" : "Yêu cầu không hợp lệ",
"Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý",
@@ -36,7 +32,6 @@
"None" : "Không gì cả",
"Login" : "Đăng nhập",
"Security Warning" : "Cảnh bảo bảo mật",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Thư mục và các tập tin của bạn có thể được truy cập từ Internet. Tập tin .htaccess không làm việc. Chúng tôi đề nghị bạn cấu hình ebserver ,phân quyền lại thư mục dữ liệu và cấp quyền truy cập hoặc di chuyển thư mục dữ liệu bên ngoài tài liệu gốc máy chủ web.",
"Execute one task with each page loaded" : "Thực thi tác vụ mỗi khi trang được tải",
"Allow apps to use the Share API" : "Cho phép các ứng dụng sử dụng chia sẻ API",
"Allow resharing" : "Cho phép chia sẻ lại",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index 15ff53307d3..f8ca4b5512f 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -9,8 +9,6 @@ OC.L10N.register(
"Authentication error" : "认证错误",
"Your full name has been changed." : "您的全名已修改。",
"Unable to change full name" : "无法修改全名",
- "Group already exists" : "已存在该组",
- "Unable to add group" : "无法增加组",
"Files decrypted successfully" : "文件解密成功",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "无法解密您的文件,请检查您的 owncloud.log 或询问管理员",
"Couldn't decrypt your files, check your password and try again" : "无法解密您的文件,请检查密码并重试。",
@@ -19,8 +17,6 @@ OC.L10N.register(
"Couldn't remove app." : "无法删除应用。",
"Email saved" : "电子邮件已保存",
"Invalid email" : "无效的电子邮件",
- "Unable to delete group" : "无法删除组",
- "Unable to delete user" : "无法删除用户",
"Backups restored successfully" : "恢复备份成功",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "无法恢复加密密钥,请检查 owncloud.log 或联系管理员",
"Language changed" : "语言已修改",
@@ -96,7 +92,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "安全警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "您正通过 HTTP 访问 %s。我们强烈建议您配置你的服务器来要求使用 HTTPS。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。",
"Setup Warning" : "设置警告",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
@@ -123,13 +118,13 @@ OC.L10N.register(
"Allow users to share via link" : "允许用户通过链接分享文件",
"Enforce password protection" : "强制密码保护",
"Allow public uploads" : "允许公开上传",
+ "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Set default expiration date" : "设置默认过期日期",
"Expire after " : "过期于",
"days" : "天",
"Enforce expiration date" : "强制过期日期",
"Allow resharing" : "允许再次共享",
"Restrict users to only share with users in their groups" : "限制仅与组内用户分享",
- "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Exclude groups from sharing" : "在分享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
"Enforce HTTPS" : "强制使用 HTTPS",
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index 776ca101012..c3beddd7205 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -7,8 +7,6 @@
"Authentication error" : "认证错误",
"Your full name has been changed." : "您的全名已修改。",
"Unable to change full name" : "无法修改全名",
- "Group already exists" : "已存在该组",
- "Unable to add group" : "无法增加组",
"Files decrypted successfully" : "文件解密成功",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "无法解密您的文件,请检查您的 owncloud.log 或询问管理员",
"Couldn't decrypt your files, check your password and try again" : "无法解密您的文件,请检查密码并重试。",
@@ -17,8 +15,6 @@
"Couldn't remove app." : "无法删除应用。",
"Email saved" : "电子邮件已保存",
"Invalid email" : "无效的电子邮件",
- "Unable to delete group" : "无法删除组",
- "Unable to delete user" : "无法删除用户",
"Backups restored successfully" : "恢复备份成功",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "无法恢复加密密钥,请检查 owncloud.log 或联系管理员",
"Language changed" : "语言已修改",
@@ -94,7 +90,6 @@
"TLS" : "TLS",
"Security Warning" : "安全警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "您正通过 HTTP 访问 %s。我们强烈建议您配置你的服务器来要求使用 HTTPS。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。",
"Setup Warning" : "设置警告",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
@@ -121,13 +116,13 @@
"Allow users to share via link" : "允许用户通过链接分享文件",
"Enforce password protection" : "强制密码保护",
"Allow public uploads" : "允许公开上传",
+ "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Set default expiration date" : "设置默认过期日期",
"Expire after " : "过期于",
"days" : "天",
"Enforce expiration date" : "强制过期日期",
"Allow resharing" : "允许再次共享",
"Restrict users to only share with users in their groups" : "限制仅与组内用户分享",
- "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Exclude groups from sharing" : "在分享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
"Enforce HTTPS" : "强制使用 HTTPS",
diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js
index 1a2b20e3f1d..fdc2d91bab5 100644
--- a/settings/l10n/zh_TW.js
+++ b/settings/l10n/zh_TW.js
@@ -9,15 +9,11 @@ OC.L10N.register(
"Authentication error" : "認證錯誤",
"Your full name has been changed." : "您的全名已變更。",
"Unable to change full name" : "無法變更全名",
- "Group already exists" : "群組已存在",
- "Unable to add group" : "群組增加失敗",
"Files decrypted successfully" : "檔案解密成功",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "無法解密您的檔案,請檢查您的 owncloud.log 或是詢問您的管理者",
"Couldn't decrypt your files, check your password and try again" : "無法解密您的檔案,確認您的密碼並再重試一次",
"Email saved" : "Email已儲存",
"Invalid email" : "無效的email",
- "Unable to delete group" : "群組刪除錯誤",
- "Unable to delete user" : "使用者刪除錯誤",
"Language changed" : "語言已變更",
"Invalid request" : "無效請求",
"Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除",
@@ -79,7 +75,6 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "安全性警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "您正透過未加密網頁存取 %s。我們強烈建議您設定您的主機必須使用加密網頁。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。",
"Setup Warning" : "設定警告",
"Module 'fileinfo' missing" : "遺失 'fileinfo' 模組",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "未偵測到 PHP 模組 'fileinfo'。我們強烈建議啟用這個模組以取得最好的 mime-type 支援。",
@@ -94,8 +89,8 @@ OC.L10N.register(
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "已經與 webcron 服務註冊好,將會每15分鐘呼叫 cron.php",
"Allow apps to use the Share API" : "允許 apps 使用分享 API",
"Allow public uploads" : "允許任何人上傳",
- "Allow resharing" : "允許轉貼分享",
"Allow users to send mail notification for shared files" : "允許使用者寄送有關分享檔案的郵件通知",
+ "Allow resharing" : "允許轉貼分享",
"Enforce HTTPS" : "強制啟用 HTTPS",
"Forces the clients to connect to %s via an encrypted connection." : "強迫用戶端使用加密連線連接到 %s",
"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "請使用 HTTPS 連線到 %s 以啓用或停用強制 SSL 加密。",
diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json
index 030d0f30720..b7064dafa86 100644
--- a/settings/l10n/zh_TW.json
+++ b/settings/l10n/zh_TW.json
@@ -7,15 +7,11 @@
"Authentication error" : "認證錯誤",
"Your full name has been changed." : "您的全名已變更。",
"Unable to change full name" : "無法變更全名",
- "Group already exists" : "群組已存在",
- "Unable to add group" : "群組增加失敗",
"Files decrypted successfully" : "檔案解密成功",
"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "無法解密您的檔案,請檢查您的 owncloud.log 或是詢問您的管理者",
"Couldn't decrypt your files, check your password and try again" : "無法解密您的檔案,確認您的密碼並再重試一次",
"Email saved" : "Email已儲存",
"Invalid email" : "無效的email",
- "Unable to delete group" : "群組刪除錯誤",
- "Unable to delete user" : "使用者刪除錯誤",
"Language changed" : "語言已變更",
"Invalid request" : "無效請求",
"Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除",
@@ -77,7 +73,6 @@
"TLS" : "TLS",
"Security Warning" : "安全性警告",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "您正透過未加密網頁存取 %s。我們強烈建議您設定您的主機必須使用加密網頁。",
- "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。",
"Setup Warning" : "設定警告",
"Module 'fileinfo' missing" : "遺失 'fileinfo' 模組",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "未偵測到 PHP 模組 'fileinfo'。我們強烈建議啟用這個模組以取得最好的 mime-type 支援。",
@@ -92,8 +87,8 @@
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "已經與 webcron 服務註冊好,將會每15分鐘呼叫 cron.php",
"Allow apps to use the Share API" : "允許 apps 使用分享 API",
"Allow public uploads" : "允許任何人上傳",
- "Allow resharing" : "允許轉貼分享",
"Allow users to send mail notification for shared files" : "允許使用者寄送有關分享檔案的郵件通知",
+ "Allow resharing" : "允許轉貼分享",
"Enforce HTTPS" : "強制啟用 HTTPS",
"Forces the clients to connect to %s via an encrypted connection." : "強迫用戶端使用加密連線連接到 %s",
"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "請使用 HTTPS 連線到 %s 以啓用或停用強制 SSL 加密。",
diff --git a/settings/middleware/subadminmiddleware.php b/settings/middleware/subadminmiddleware.php
new file mode 100644
index 00000000000..a5c005e3148
--- /dev/null
+++ b/settings/middleware/subadminmiddleware.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Settings\Middleware;
+
+use OC\AppFramework\Http;
+use OC\AppFramework\Utility\ControllerMethodReflector;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Middleware;
+
+/**
+ * Verifies whether an user has at least subadmin rights.
+ * To bypass use the `@NoSubadminRequired` annotation
+ *
+ * @package OC\Settings\Middleware
+ */
+class SubadminMiddleware extends Middleware {
+ /** @var bool */
+ protected $isSubAdmin;
+ /** @var ControllerMethodReflector */
+ protected $reflector;
+
+ /**
+ * @param ControllerMethodReflector $reflector
+ * @param bool $isSubAdmin
+ */
+ public function __construct(ControllerMethodReflector $reflector,
+ $isSubAdmin) {
+ $this->reflector = $reflector;
+ $this->isSubAdmin = $isSubAdmin;
+ }
+
+ /**
+ * Check if sharing is enabled before the controllers is executed
+ * @param \OCP\AppFramework\Controller $controller
+ * @param string $methodName
+ * @throws \Exception
+ */
+ public function beforeController($controller, $methodName) {
+ if(!$this->reflector->hasAnnotation('NoSubadminRequired')) {
+ if(!$this->isSubAdmin) {
+ throw new \Exception('Logged in user must be a subadmin');
+ }
+ }
+ }
+
+ /**
+ * Return 403 page in case of an exception
+ * @param \OCP\AppFramework\Controller $controller
+ * @param string $methodName
+ * @param \Exception $exception
+ * @return TemplateResponse
+ */
+ public function afterException($controller, $methodName, \Exception $exception) {
+ return new TemplateResponse('core', '403', array(), 'guest');
+ }
+
+}
diff --git a/settings/personal.php b/settings/personal.php
index bef800ae7f1..f181c9cb2c1 100644
--- a/settings/personal.php
+++ b/settings/personal.php
@@ -9,6 +9,7 @@ OC_Util::checkLoggedIn();
$defaults = new OC_Defaults(); // initialize themable default strings and urls
$certificateManager = \OC::$server->getCertificateManager();
+$config = \OC::$server->getConfig();
// Highlight navigation entry
OC_Util::addScript( 'settings', 'personal' );
@@ -16,7 +17,7 @@ OC_Util::addStyle( 'settings', 'settings' );
\OC_Util::addVendorScript('strengthify/jquery.strengthify');
\OC_Util::addVendorStyle('strengthify/strengthify');
\OC_Util::addScript('files', 'jquery.fileupload');
-if (\OC_Config::getValue('enable_avatars', true) === true) {
+if ($config->getSystemValue('enable_avatars', true) === true) {
\OC_Util::addVendorScript('jcrop/js/jquery.Jcrop');
\OC_Util::addVendorStyle('jcrop/css/jquery.Jcrop');
}
@@ -26,9 +27,9 @@ OC_App::setActiveNavigationEntry( 'personal' );
$storageInfo=OC_Helper::getStorageInfo('/');
-$email=OC_Preferences::getValue(OC_User::getUser(), 'settings', 'email', '');
+$email=$config->getUserValue(OC_User::getUser(), 'settings', 'email', '');
-$userLang=OC_Preferences::getValue( OC_User::getUser(), 'core', 'lang', OC_L10N::findLanguage() );
+$userLang=$config->getUserValue( OC_User::getUser(), 'core', 'lang', OC_L10N::findLanguage() );
$languageCodes=OC_L10N::findAvailableLanguages();
//check if encryption was enabled in the past
@@ -74,9 +75,9 @@ usort( $languages, function ($a, $b) {
//links to clients
$clients = array(
- 'desktop' => OC_Config::getValue('customclient_desktop', $defaults->getSyncClientUrl()),
- 'android' => OC_Config::getValue('customclient_android', $defaults->getAndroidClientUrl()),
- 'ios' => OC_Config::getValue('customclient_ios', $defaults->getiOSClientUrl())
+ 'desktop' => $config->getSystemValue('customclient_desktop', $defaults->getSyncClientUrl()),
+ 'android' => $config->getSystemValue('customclient_android', $defaults->getAndroidClientUrl()),
+ 'ios' => $config->getSystemValue('customclient_ios', $defaults->getiOSClientUrl())
);
// Return template
@@ -95,7 +96,7 @@ $tmpl->assign('displayName', OC_User::getDisplayName());
$tmpl->assign('enableDecryptAll' , $enableDecryptAll);
$tmpl->assign('backupKeysExists' , $backupKeysExists);
$tmpl->assign('filesStillEncrypted' , $filesStillEncrypted);
-$tmpl->assign('enableAvatars', \OC_Config::getValue('enable_avatars', true));
+$tmpl->assign('enableAvatars', $config->getSystemValue('enable_avatars', true));
$tmpl->assign('avatarChangeSupported', OC_User::canUserChangeAvatar(OC_User::getUser()));
$tmpl->assign('certs', $certificateManager->listCertificates());
diff --git a/settings/routes.php b/settings/routes.php
index 7ca33fc2745..1b7a918fa79 100644
--- a/settings/routes.php
+++ b/settings/routes.php
@@ -9,17 +9,22 @@
namespace OC\Settings;
$application = new Application();
-$application->registerRoutes($this, array('routes' =>array(
- array('name' => 'MailSettings#setMailSettings', 'url' => '/settings/admin/mailsettings', 'verb' => 'POST'),
- array('name' => 'MailSettings#storeCredentials', 'url' => '/settings/admin/mailsettings/credentials', 'verb' => 'POST'),
- array('name' => 'MailSettings#sendTestMail', 'url' => '/settings/admin/mailtest', 'verb' => 'POST'),
- array('name' => 'AppSettings#listCategories', 'url' => '/settings/apps/categories', 'verb' => 'GET'),
- array('name' => 'AppSettings#listApps', 'url' => '/settings/apps/list', 'verb' => 'GET'),
- array('name' => 'SecuritySettings#enforceSSL', 'url' => '/settings/admin/security/ssl', 'verb' => 'POST'),
- array('name' => 'SecuritySettings#enforceSSLForSubdomains', 'url' => '/settings/admin/security/ssl/subdomains', 'verb' => 'POST'),
- array('name' => 'SecuritySettings#trustedDomains', 'url' => '/settings/admin/security/trustedDomains', 'verb' => 'POST'),
-
-)));
+$application->registerRoutes($this, array(
+ 'resources' => array(
+ 'groups' => array('url' => '/settings/users/groups'),
+ 'users' => array('url' => '/settings/users/users')
+ ),
+ 'routes' =>array(
+ array('name' => 'MailSettings#setMailSettings', 'url' => '/settings/admin/mailsettings', 'verb' => 'POST'),
+ array('name' => 'MailSettings#storeCredentials', 'url' => '/settings/admin/mailsettings/credentials', 'verb' => 'POST'),
+ array('name' => 'MailSettings#sendTestMail', 'url' => '/settings/admin/mailtest', 'verb' => 'POST'),
+ array('name' => 'AppSettings#listCategories', 'url' => '/settings/apps/categories', 'verb' => 'GET'),
+ array('name' => 'AppSettings#listApps', 'url' => '/settings/apps/list', 'verb' => 'GET'),
+ array('name' => 'SecuritySettings#enforceSSL', 'url' => '/settings/admin/security/ssl', 'verb' => 'POST'),
+ array('name' => 'SecuritySettings#enforceSSLForSubdomains', 'url' => '/settings/admin/security/ssl/subdomains', 'verb' => 'POST'),
+ array('name' => 'SecuritySettings#trustedDomains', 'url' => '/settings/admin/security/trustedDomains', 'verb' => 'POST'),
+ )
+));
/** @var $this \OCP\Route\IRouter */
@@ -38,26 +43,14 @@ $this->create('settings_admin', '/settings/admin')
->actionInclude('settings/admin.php');
// Settings ajax actions
// users
-$this->create('settings_ajax_userlist', '/settings/ajax/userlist')
- ->actionInclude('settings/ajax/userlist.php');
-$this->create('settings_ajax_grouplist', '/settings/ajax/grouplist')
- ->actionInclude('settings/ajax/grouplist.php');
$this->create('settings_ajax_everyonecount', '/settings/ajax/geteveryonecount')
->actionInclude('settings/ajax/geteveryonecount.php');
-$this->create('settings_ajax_createuser', '/settings/ajax/createuser.php')
- ->actionInclude('settings/ajax/createuser.php');
-$this->create('settings_ajax_removeuser', '/settings/ajax/removeuser.php')
- ->actionInclude('settings/ajax/removeuser.php');
$this->create('settings_ajax_setquota', '/settings/ajax/setquota.php')
->actionInclude('settings/ajax/setquota.php');
-$this->create('settings_ajax_creategroup', '/settings/ajax/creategroup.php')
- ->actionInclude('settings/ajax/creategroup.php');
$this->create('settings_ajax_togglegroups', '/settings/ajax/togglegroups.php')
->actionInclude('settings/ajax/togglegroups.php');
$this->create('settings_ajax_togglesubadmins', '/settings/ajax/togglesubadmins.php')
->actionInclude('settings/ajax/togglesubadmins.php');
-$this->create('settings_ajax_removegroup', '/settings/ajax/removegroup.php')
- ->actionInclude('settings/ajax/removegroup.php');
$this->create('settings_users_changepassword', '/settings/users/changepassword')
->post()
->action('OC\Settings\ChangePassword\Controller', 'changeUserPassword');
diff --git a/settings/templates/admin.php b/settings/templates/admin.php
index 83dc92a060a..d04351c2d6c 100644
--- a/settings/templates/admin.php
+++ b/settings/templates/admin.php
@@ -83,20 +83,6 @@ if (!$_['isConnectedViaHTTPS']) {
<?php
}
-// is htaccess working ?
-if (!$_['htaccessworking']) {
- ?>
- <div class="section">
- <h2><?php p($l->t('Security Warning')); ?></h2>
-
- <span class="securitywarning">
- <?php p($l->t('Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.')); ?>
- </span>
-
- </div>
-<?php
-}
-
// is read only config enabled
if ($_['readOnlyConfigEnabled']) {
?>
@@ -206,7 +192,7 @@ if ($_['suggestedOverwriteWebroot']) {
}
?>
<div id="postsetupchecks" class="section">
- <h2><?php p($l->t('Connectivity Checks'));?></h2>
+ <h2><?php p($l->t('Configuration Checks'));?></h2>
<div class="loading"></div>
<div class="success hidden"><?php p($l->t('No problems found'));?></div>
<div class="errors hidden"></div>
@@ -285,10 +271,15 @@ if ($_['suggestedOverwriteWebroot']) {
<input type="checkbox" name="shareapi_enforce_links_password" id="enforceLinkPassword"
value="1" <?php if ($_['enforceLinkPassword']) print_unescaped('checked="checked"'); ?> />
<label for="enforceLinkPassword"><?php p($l->t('Enforce password protection'));?></label><br/>
+
<input type="checkbox" name="shareapi_allow_public_upload" id="allowPublicUpload"
value="1" <?php if ($_['allowPublicUpload'] == 'yes') print_unescaped('checked="checked"'); ?> />
<label for="allowPublicUpload"><?php p($l->t('Allow public uploads'));?></label><br/>
+ <input type="checkbox" name="shareapi_allow_public_notification" id="allowPublicMailNotification"
+ value="1" <?php if ($_['allowPublicMailNotification'] == 'yes') print_unescaped('checked="checked"'); ?> />
+ <label for="allowPublicMailNotification"><?php p($l->t('Allow users to send mail notification for shared files'));?></label><br/>
+
<input type="checkbox" name="shareapi_default_expire_date" id="shareapiDefaultExpireDate"
value="1" <?php if ($_['shareDefaultExpireDateSet'] === 'yes') print_unescaped('checked="checked"'); ?> />
<label for="shareapiDefaultExpireDate"><?php p($l->t('Set default expiration date'));?></label><br/>
@@ -316,7 +307,7 @@ if ($_['suggestedOverwriteWebroot']) {
<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
<input type="checkbox" name="shareapi_allow_mail_notification" id="allowMailNotification"
value="1" <?php if ($_['allowMailNotification'] === 'yes') print_unescaped('checked="checked"'); ?> />
- <label for="allowMailNotification"><?php p($l->t('Allow users to send mail notification for shared files'));?></label><br/>
+ <label for="allowMailNotification"><?php p($l->t('Allow users to send mail notification for shared files to other users'));?></label><br/>
</p>
<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
<input type="checkbox" name="shareapi_exclude_groups" id="shareapiExcludeGroups"
diff --git a/settings/templates/users/main.php b/settings/templates/users/main.php
index d2b7652f142..c32c8df6809 100644
--- a/settings/templates/users/main.php
+++ b/settings/templates/users/main.php
@@ -4,6 +4,19 @@
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file.
*/
+
+script('settings', [
+ 'users/deleteHandler',
+ 'users/filter',
+ 'users/users',
+ 'users/groups'
+]);
+script('core', [
+ 'multiselect',
+ 'singleselect'
+]);
+style('settings', 'settings');
+
$userlistParams = array();
$allGroups=array();
foreach($_["groups"] as $group) {
@@ -31,14 +44,24 @@ translation('settings');
<?php print_unescaped($this->inc('users/part.setquota')); ?>
<div id="userlistoptions">
- <p><label>
- <input type="checkbox" name="StorageLocation" value="StorageLocation" id="CheckboxStorageLocation">
+ <p>
+ <input type="checkbox" name="StorageLocation" value="StorageLocation" id="CheckboxStorageLocation">
+ <label for="CheckboxStorageLocation">
<?php p($l->t('Show storage location')) ?>
- </label></p>
- <p><label>
+ </label>
+ </p>
+ <p>
<input type="checkbox" name="LastLogin" value="LastLogin" id="CheckboxLastLogin">
- <?php p($l->t('Show last log in')) ?>
- </label></p>
+ <label for="CheckboxLastLogin">
+ <?php p($l->t('Show last log in')) ?>
+ </label>
+ </p>
+ <p>
+ <input type="checkbox" name="UserBackend" value="UserBackend" id="CheckboxUserBackend">
+ <label for="CheckboxUserBackend">
+ <?php p($l->t('Show user backend')) ?>
+ </label>
+ </p>
</div>
</div>
</div>
diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php
index 964aef600a2..6a6b0b69fa2 100644
--- a/settings/templates/users/part.userlist.php
+++ b/settings/templates/users/part.userlist.php
@@ -12,20 +12,20 @@
<th id="headerSubAdmins"><?php p($l->t('Group Admin for')); ?></th>
<?php endif;?>
<th id="headerQuota"><?php p($l->t('Quota')); ?></th>
- <th id="headerStorageLocation"><?php p($l->t('Storage Location')); ?></th>
- <th id="headerLastLogin"><?php p($l->t('Last Login')); ?></th>
+ <th class="storageLocation"><?php p($l->t('Storage Location')); ?></th>
+ <th class="userBackend"><?php p($l->t('User Backend')); ?></th>
+ <th class="lastLogin"><?php p($l->t('Last Login')); ?></th>
<th id="headerRemove">&nbsp;</th>
</tr>
</thead>
<tbody>
- <?php foreach($_["users"] as $user): ?>
- <tr data-uid="<?php p($user["name"]) ?>"
- data-displayname="<?php p($user["displayName"]) ?>">
+ <!-- the following <tr> is used as a template for the JS part -->
+ <tr style="display:none">
<?php if ($_['enableAvatars']): ?>
- <td class="avatar"><div class="avatardiv"></div></td>
+ <td class="avatar"><div class="avatardiv"></div></td>
<?php endif; ?>
- <td class="name"><?php p($user["name"]); ?></td>
- <td class="displayName"><span><?php p($user["displayName"]); ?></span> <img class="svg action"
+ <td class="name"></td>
+ <td class="displayName"><span></span> <img class="svg action"
src="<?php p(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t("change full name"))?>" title="<?php p($l->t("change full name"))?>"/>
</td>
@@ -33,84 +33,32 @@
src="<?php print_unescaped(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t("set new password"))?>" title="<?php p($l->t("set new password"))?>"/>
</td>
- <td class="groups">
- <select
- class="groupsselect"
- data-username="<?php p($user['name']) ;?>"
- data-user-groups="<?php p(json_encode($user['groups'])) ;?>"
- data-placeholder="groups" title="<?php p($l->t('no group'))?>"
- multiple="multiple">
- <?php foreach($_["adminGroup"] as $adminGroup): ?>
- <option value="<?php p($adminGroup['name']);?>"><?php p($adminGroup['name']); ?></option>
- <?php endforeach; ?>
- <?php foreach($_["groups"] as $group): ?>
- <option value="<?php p($group['name']);?>"><?php p($group['name']);?></option>
- <?php endforeach;?>
- </select>
- </td>
+ <td class="groups"></td>
<?php if(is_array($_['subadmins']) || $_['subadmins']): ?>
- <td class="subadmins">
- <select
- class="subadminsselect"
- data-username="<?php p($user['name']) ;?>"
- data-subadmin="<?php p(json_encode($user['subadmin']));?>"
- data-placeholder="subadmins" title="<?php p($l->t('no group'))?>"
- multiple="multiple">
- <?php foreach($_["subadmingroups"] as $group): ?>
- <option value="<?php p($group);?>"><?php p($group);?></option>
- <?php endforeach;?>
- </select>
- </td>
+ <td class="subadmins"></td>
<?php endif;?>
<td class="quota">
<select class='quota-user' data-inputtitle="<?php p($l->t('Please enter storage quota (ex: "512 MB" or "12 GB")')) ?>">
- <option
- <?php if($user['quota'] === 'default') print_unescaped('selected="selected"');?>
- value='default'>
+ <option value='default'>
<?php p($l->t('Default'));?>
</option>
- <option
- <?php if($user['quota'] === 'none') print_unescaped('selected="selected"');?>
- value='none'>
+ <option value='none'>
<?php p($l->t('Unlimited'));?>
</option>
<?php foreach($_['quota_preset'] as $preset):?>
- <option
- <?php if($user['quota']==$preset) print_unescaped('selected="selected"');?>
- value='<?php p($preset);?>'>
- <?php p($preset);?>
- </option>
+ <option value='<?php p($preset);?>'>
+ <?php p($preset);?>
+ </option>
<?php endforeach;?>
- <?php if($user['isQuotaUserDefined']):?>
- <option selected="selected" value='<?php p($user['quota']);?>'>
- <?php p($user['quota']);?>
- </option>
- <?php endif;?>
<option value='other' data-new>
- <?php p($l->t('Other'));?>
- ...
+ <?php p($l->t('Other'));?> ...
</option>
</select>
</td>
- <td class="storageLocation"><?php p($user["storageLocation"]); ?></td>
- <?php
- if($user["lastLogin"] === 0) {
- $lastLogin = $l->t('never');
- $lastLoginDate = $lastLogin;
- } else {
- $lastLogin = relative_modified_date($user["lastLogin"]);
- $lastLoginDate = \OC_Util::formatDate($user["lastLogin"]);
- }
- ?>
- <td class="lastLogin" title="<?php p('<span class="usersLastLoginTooltip">'.$lastLoginDate.'</span>'); ?>"><?php p($lastLogin); ?></td>
- <td class="remove">
- <?php if($user['name']!=OC_User::getUser()):?>
- <a href="#" class="action delete" original-title="<?php p($l->t('Delete'))?>">
- <img src="<?php print_unescaped(image_path('core', 'actions/delete.svg')) ?>" class="svg" />
- </a>
- <?php endif;?>
- </td>
+ <td class="storageLocation"></td>
+ <td class="userBackend"></td>
+ <td class="lastLogin"></td>
+ <td class="remove"></td>
</tr>
- <?php endforeach; ?>
</tbody>
</table>
diff --git a/settings/tests/js/users/deleteHandlerSpec.js b/settings/tests/js/users/deleteHandlerSpec.js
index 6b6328be801..c6d88b32411 100644
--- a/settings/tests/js/users/deleteHandlerSpec.js
+++ b/settings/tests/js/users/deleteHandlerSpec.js
@@ -85,7 +85,7 @@ describe('DeleteHandler tests', function() {
// previous one was delete
expect(fakeServer.requests.length).toEqual(1);
var request = fakeServer.requests[0];
- expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php');
+ expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid');
});
it('automatically deletes after timeout', function() {
var handler = init(markCallback, removeCallback, undoCallback);
@@ -98,7 +98,7 @@ describe('DeleteHandler tests', function() {
clock.tick(3000);
expect(fakeServer.requests.length).toEqual(1);
var request = fakeServer.requests[0];
- expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php');
+ expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid');
});
it('deletes when deleteEntry is called', function() {
var handler = init(markCallback, removeCallback, undoCallback);
@@ -107,7 +107,7 @@ describe('DeleteHandler tests', function() {
handler.deleteEntry();
expect(fakeServer.requests.length).toEqual(1);
var request = fakeServer.requests[0];
- expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php');
+ expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid');
});
it('cancels deletion when undo is clicked', function() {
var handler = init(markCallback, removeCallback, undoCallback);
@@ -135,7 +135,7 @@ describe('DeleteHandler tests', function() {
expect(fakeServer.requests.length).toEqual(0);
});
it('calls removeCallback after successful server side deletion', function() {
- fakeServer.respondWith(/\/index\.php\/settings\/ajax\/dummyendpoint.php/, [
+ fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
200,
{ 'Content-Type': 'application/json' },
JSON.stringify({status: 'success'})
@@ -148,7 +148,6 @@ describe('DeleteHandler tests', function() {
expect(fakeServer.requests.length).toEqual(1);
var request = fakeServer.requests[0];
var query = OC.parseQueryString(request.requestBody);
- expect(query.paramid).toEqual('some_uid');
expect(removeCallback.calledOnce).toEqual(true);
expect(undoCallback.notCalled).toEqual(true);
@@ -157,7 +156,7 @@ describe('DeleteHandler tests', function() {
it('calls undoCallback and shows alert after failed server side deletion', function() {
// stub t to avoid extra calls
var tStub = sinon.stub(window, 't').returns('text');
- fakeServer.respondWith(/\/index\.php\/settings\/ajax\/dummyendpoint.php/, [
+ fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
200,
{ 'Content-Type': 'application/json' },
JSON.stringify({status: 'error', data: {message: 'test error'}})
@@ -171,7 +170,6 @@ describe('DeleteHandler tests', function() {
expect(fakeServer.requests.length).toEqual(1);
var request = fakeServer.requests[0];
var query = OC.parseQueryString(request.requestBody);
- expect(query.paramid).toEqual('some_uid');
expect(removeCallback.notCalled).toEqual(true);
expect(undoCallback.calledOnce).toEqual(true);
diff --git a/settings/users.php b/settings/users.php
index 85f160a1552..75109f9ef74 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -7,20 +7,13 @@
OC_Util::checkSubAdminUser();
-// We have some javascript foo!
-OC_Util::addScript('settings', 'users/deleteHandler');
-OC_Util::addScript('settings', 'users/filter');
-OC_Util::addScript( 'settings', 'users/users' );
-OC_Util::addScript( 'settings', 'users/groups' );
-OC_Util::addScript( 'core', 'multiselect' );
-OC_Util::addScript( 'core', 'singleselect' );
-OC_Util::addStyle( 'settings', 'settings' );
OC_App::setActiveNavigationEntry( 'core_users' );
-$users = array();
$userManager = \OC_User::getManager();
$groupManager = \OC_Group::getManager();
+$config = \OC::$server->getConfig();
+
$isAdmin = OC_User::isAdminUser(OC_User::getUser());
$groupsInfo = new \OC\Group\MetaData(OC_User::getUser(), $isAdmin, $groupManager);
@@ -28,10 +21,9 @@ $groupsInfo->setSorting($groupsInfo::SORT_USERCOUNT);
list($adminGroup, $groups) = $groupsInfo->get();
$recoveryAdminEnabled = OC_App::isEnabled('files_encryption') &&
- OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' );
+ $config->getAppValue( 'files_encryption', 'recoveryAdminEnabled', null );
if($isAdmin) {
- $accessibleUsers = OC_User::getDisplayNames('', 30);
$subadmins = OC_SubAdmin::getAllSubAdmins();
}else{
/* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */
@@ -41,48 +33,22 @@ if($isAdmin) {
$gids[] = $group['id'];
}
}
- $accessibleUsers = OC_Group::displayNamesInGroups($gids, '', 30);
$subadmins = false;
}
// load preset quotas
-$quotaPreset=OC_Appconfig::getValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB');
+$quotaPreset=$config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB');
$quotaPreset=explode(',', $quotaPreset);
foreach($quotaPreset as &$preset) {
$preset=trim($preset);
}
$quotaPreset=array_diff($quotaPreset, array('default', 'none'));
-$defaultQuota=OC_Appconfig::getValue('files', 'default_quota', 'none');
+$defaultQuota=$config->getAppValue('files', 'default_quota', 'none');
$defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false
&& array_search($defaultQuota, array('none', 'default'))===false;
-// load users and quota
-foreach($accessibleUsers as $uid => $displayName) {
- $quota = OC_Preferences::getValue($uid, 'files', 'quota', 'default');
- $isQuotaUserDefined = array_search($quota, $quotaPreset) === false
- && array_search($quota, array('none', 'default')) === false;
-
- $name = $displayName;
- if ($displayName !== $uid) {
- $name = $name . ' (' . $uid . ')';
- }
-
- $user = $userManager->get($uid);
- $users[] = array(
- "name" => $uid,
- "displayName" => $displayName,
- "groups" => OC_Group::getUserGroups($uid),
- 'quota' => $quota,
- 'isQuotaUserDefined' => $isQuotaUserDefined,
- 'subadmin' => OC_SubAdmin::getSubAdminsGroups($uid),
- 'storageLocation' => $user->getHome(),
- 'lastLogin' => $user->getLastLogin(),
- );
-}
-
$tmpl = new OC_Template("settings", "users/main", "user");
-$tmpl->assign('users', $users);
$tmpl->assign('groups', $groups);
$tmpl->assign('adminGroup', $adminGroup);
$tmpl->assign('isAdmin', (int)$isAdmin);
diff --git a/status.php b/status.php
index db5813814d0..f7bdfe1fd51 100644
--- a/status.php
+++ b/status.php
@@ -25,8 +25,10 @@ try {
require_once 'lib/base.php';
- $installed = OC_Config::getValue('installed') == 1;
- $maintenance = OC_Config::getValue('maintenance', false);
+ $systemConfig = \OC::$server->getSystemConfig();
+
+ $installed = $systemConfig->getValue('installed') == 1;
+ $maintenance = $systemConfig->getValue('maintenance', false);
$values=array(
'installed'=>$installed,
'maintenance' => $maintenance,
diff --git a/tests/data/l10n/ru.json b/tests/data/l10n/ru.json
index 177b14a6b20..7041205e761 100644
--- a/tests/data/l10n/ru.json
+++ b/tests/data/l10n/ru.json
@@ -1,6 +1,7 @@
{
"translations" : {
- "_%n file_::_%n files_" : ["%n файл", "%n файла", "%n файлов"]
+ "_%n file_::_%n files_" : ["%n файл", "%n файла", "%n файлов"],
+ "_%n missing plural_::_%n missing plurals_" : ["", "", ""]
},
"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);"
}
diff --git a/tests/lib/activitymanager.php b/tests/lib/activitymanager.php
index 0683eb68193..6a5af7b259b 100644
--- a/tests/lib/activitymanager.php
+++ b/tests/lib/activitymanager.php
@@ -59,6 +59,14 @@ class Test_ActivityManager extends \Test\TestCase {
$this->assertFalse($result);
}
+ public function testGetSpecialParameterList() {
+ $result = $this->activityManager->getSpecialParameterList('APP0', '');
+ $this->assertEquals(array(0 => 'file', 1 => 'username'), $result);
+
+ $result = $this->activityManager->getSpecialParameterList('APP1', '');
+ $this->assertFalse($result);
+ }
+
public function testTypeIcon() {
$result = $this->activityManager->getTypeIcon('NT1');
$this->assertEquals('icon-nt-one', $result);
@@ -132,6 +140,14 @@ class SimpleExtension implements \OCP\Activity\IExtension {
return false;
}
+ public function getSpecialParameterList($app, $text) {
+ if ($app === 'APP0') {
+ return array(0 => 'file', 1 => 'username');
+ }
+
+ return false;
+ }
+
public function getTypeIcon($type) {
if ($type === 'NT1') {
return 'icon-nt-one';
@@ -185,6 +201,10 @@ class NoOpExtension implements \OCP\Activity\IExtension {
return false;
}
+ public function getSpecialParameterList($app, $text) {
+ return false;
+ }
+
public function getTypeIcon($type) {
return false;
}
diff --git a/tests/lib/allconfig.php b/tests/lib/allconfig.php
new file mode 100644
index 00000000000..7f8ad5ec221
--- /dev/null
+++ b/tests/lib/allconfig.php
@@ -0,0 +1,422 @@
+<?php
+/**
+ * Copyright (c) 2014 Morris Jobke <hey@morrisjobke.de>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test;
+
+class TestAllConfig extends \Test\TestCase {
+
+ /** @var \OCP\IDBConnection */
+ protected $connection;
+
+ protected function getConfig($systemConfig = null, $connection = null) {
+ if($this->connection === null) {
+ $this->connection = \OC::$server->getDatabaseConnection();
+ }
+ if($connection === null) {
+ $connection = $this->connection;
+ }
+ if($systemConfig === null) {
+ $systemConfig = $this->getMock('\OC\SystemConfig');
+ }
+ return new \OC\AllConfig($systemConfig, $connection);
+ }
+
+ public function testDeleteUserValue() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ array('userDelete', 'appDelete', 'keyDelete', 'valueDelete')
+ );
+
+ $config->deleteUserValue('userDelete', 'appDelete', 'keyDelete');
+
+ $result = $this->connection->executeQuery(
+ 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences` WHERE `userid` = ?',
+ array('userDelete')
+ )->fetch();
+ $actualCount = $result['count'];
+
+ $this->assertEquals(0, $actualCount, 'There was one value in the database and after the tests there should be no entry left.');
+ }
+
+ public function testSetUserValue() {
+ $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
+ $config = $this->getConfig();
+
+ $config->setUserValue('userSet', 'appSet', 'keySet', 'valueSet');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userSet'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userSet',
+ 'appid' => 'appSet',
+ 'configkey' => 'keySet',
+ 'configvalue' => 'valueSet'
+ ), $result[0]);
+
+ // test if the method overwrites existing database entries
+ $config->setUserValue('userSet', 'appSet', 'keySet', 'valueSet2');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userSet'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userSet',
+ 'appid' => 'appSet',
+ 'configkey' => 'keySet',
+ 'configvalue' => 'valueSet2'
+ ), $result[0]);
+
+ // cleanup - it therefore relies on the successful execution of the previous test
+ $config->deleteUserValue('userSet', 'appSet', 'keySet');
+ }
+
+ public function testSetUserValueWithPreCondition() {
+ // mock the check for the database to run the correct SQL statements for each database type
+ $systemConfig = $this->getMock('\OC\SystemConfig');
+ $systemConfig->expects($this->once())
+ ->method('getValue')
+ ->with($this->equalTo('dbtype'),
+ $this->equalTo('sqlite'))
+ ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite')));
+ $config = $this->getConfig($systemConfig);
+
+ $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
+
+ $config->setUserValue('userPreCond', 'appPreCond', 'keyPreCond', 'valuePreCond');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userPreCond',
+ 'appid' => 'appPreCond',
+ 'configkey' => 'keyPreCond',
+ 'configvalue' => 'valuePreCond'
+ ), $result[0]);
+
+ // test if the method overwrites existing database entries with valid precond
+ $config->setUserValue('userPreCond', 'appPreCond', 'keyPreCond', 'valuePreCond2', 'valuePreCond');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userPreCond',
+ 'appid' => 'appPreCond',
+ 'configkey' => 'keyPreCond',
+ 'configvalue' => 'valuePreCond2'
+ ), $result[0]);
+
+ // cleanup
+ $config->deleteUserValue('userPreCond', 'appPreCond', 'keyPreCond');
+ }
+
+ /**
+ * @expectedException \OCP\PreConditionNotMetException
+ */
+ public function testSetUserValueWithPreConditionFailure() {
+ // mock the check for the database to run the correct SQL statements for each database type
+ $systemConfig = $this->getMock('\OC\SystemConfig');
+ $systemConfig->expects($this->once())
+ ->method('getValue')
+ ->with($this->equalTo('dbtype'),
+ $this->equalTo('sqlite'))
+ ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite')));
+ $config = $this->getConfig($systemConfig);
+
+ $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
+
+ $config->setUserValue('userPreCond1', 'appPreCond', 'keyPreCond', 'valuePreCond');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond1'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userPreCond1',
+ 'appid' => 'appPreCond',
+ 'configkey' => 'keyPreCond',
+ 'configvalue' => 'valuePreCond'
+ ), $result[0]);
+
+ // test if the method overwrites existing database entries with valid precond
+ $config->setUserValue('userPreCond1', 'appPreCond', 'keyPreCond', 'valuePreCond2', 'valuePreCond3');
+
+ $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond1'))->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userPreCond1',
+ 'appid' => 'appPreCond',
+ 'configkey' => 'keyPreCond',
+ 'configvalue' => 'valuePreCond'
+ ), $result[0]);
+
+ // cleanup
+ $config->deleteUserValue('userPreCond1', 'appPreCond', 'keyPreCond');
+ }
+
+ public function testSetUserValueUnchanged() {
+ // TODO - FIXME until the dependency injection is handled properly (in AllConfig)
+ $this->markTestSkipped('Skipped because this is just testable if database connection can be injected');
+
+ $resultMock = $this->getMockBuilder('\Doctrine\DBAL\Driver\Statement')
+ ->disableOriginalConstructor()->getMock();
+ $resultMock->expects($this->once())
+ ->method('fetchColumn')
+ ->will($this->returnValue('valueSetUnchanged'));
+
+ $connectionMock = $this->getMock('\OCP\IDBConnection');
+ $connectionMock->expects($this->once())
+ ->method('executeQuery')
+ ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` '.
+ 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
+ $this->equalTo(array('userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged')))
+ ->will($this->returnValue($resultMock));
+ $connectionMock->expects($this->never())
+ ->method('executeUpdate');
+
+ $config = $this->getConfig(null, $connectionMock);
+
+ $config->setUserValue('userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged', 'valueSetUnchanged');
+ }
+
+ public function testGetUserValue() {
+ $config = $this->getConfig();
+
+ // setup - it therefore relies on the successful execution of the previous test
+ $config->setUserValue('userGet', 'appGet', 'keyGet', 'valueGet');
+ $value = $config->getUserValue('userGet', 'appGet', 'keyGet');
+
+ $this->assertEquals('valueGet', $value);
+
+ $result = $this->connection->executeQuery(
+ 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?',
+ array('userGet')
+ )->fetchAll();
+
+ $this->assertEquals(1, count($result));
+ $this->assertEquals(array(
+ 'userid' => 'userGet',
+ 'appid' => 'appGet',
+ 'configkey' => 'keyGet',
+ 'configvalue' => 'valueGet'
+ ), $result[0]);
+
+ // drop data from database - but the config option should be cached in the config object
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences` WHERE `userid` = ?', array('userGet'));
+
+ // testing the caching mechanism
+ $value = $config->getUserValue('userGet', 'appGet', 'keyGet');
+
+ $this->assertEquals('valueGet', $value);
+
+ $result = $this->connection->executeQuery(
+ 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?',
+ array('userGet')
+ )->fetchAll();
+
+ $this->assertEquals(0, count($result));
+ }
+
+ public function testGetUserKeys() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $data = array(
+ array('userFetch', 'appFetch1', 'keyFetch1', 'value1'),
+ array('userFetch', 'appFetch1', 'keyFetch2', 'value2'),
+ array('userFetch', 'appFetch2', 'keyFetch3', 'value3'),
+ array('userFetch', 'appFetch1', 'keyFetch4', 'value4'),
+ array('userFetch', 'appFetch4', 'keyFetch1', 'value5'),
+ array('userFetch', 'appFetch5', 'keyFetch1', 'value6'),
+ array('userFetch2', 'appFetch', 'keyFetch1', 'value7')
+ );
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $value = $config->getUserKeys('userFetch', 'appFetch1');
+ $this->assertEquals(array('keyFetch1', 'keyFetch2', 'keyFetch4'), $value);
+
+ $value = $config->getUserKeys('userFetch2', 'appFetch');
+ $this->assertEquals(array('keyFetch1'), $value);
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
+ public function testGetUserValueDefault() {
+ $config = $this->getConfig();
+
+ $this->assertEquals('', $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset'));
+ $this->assertEquals(null, $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset', null));
+ $this->assertEquals('foobar', $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset', 'foobar'));
+ }
+
+ public function testGetUserValueForUsers() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $data = array(
+ array('userFetch1', 'appFetch2', 'keyFetch1', 'value1'),
+ array('userFetch2', 'appFetch2', 'keyFetch1', 'value2'),
+ array('userFetch3', 'appFetch2', 'keyFetch1', 3),
+ array('userFetch4', 'appFetch2', 'keyFetch1', 'value4'),
+ array('userFetch5', 'appFetch2', 'keyFetch1', 'value5'),
+ array('userFetch6', 'appFetch2', 'keyFetch1', 'value6'),
+ array('userFetch7', 'appFetch2', 'keyFetch1', 'value7')
+ );
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $value = $config->getUserValueForUsers('appFetch2', 'keyFetch1',
+ array('userFetch1', 'userFetch2', 'userFetch3', 'userFetch5'));
+ $this->assertEquals(array(
+ 'userFetch1' => 'value1',
+ 'userFetch2' => 'value2',
+ 'userFetch3' => 3,
+ 'userFetch5' => 'value5'
+ ), $value);
+
+ $value = $config->getUserValueForUsers('appFetch2', 'keyFetch1',
+ array('userFetch1', 'userFetch4', 'userFetch9'));
+ $this->assertEquals(array(
+ 'userFetch1' => 'value1',
+ 'userFetch4' => 'value4'
+ ), $value, 'userFetch9 is an non-existent user and should not be shown.');
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
+ public function testDeleteAllUserValues() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $data = array(
+ array('userFetch3', 'appFetch1', 'keyFetch1', 'value1'),
+ array('userFetch3', 'appFetch1', 'keyFetch2', 'value2'),
+ array('userFetch3', 'appFetch2', 'keyFetch3', 'value3'),
+ array('userFetch3', 'appFetch1', 'keyFetch4', 'value4'),
+ array('userFetch3', 'appFetch4', 'keyFetch1', 'value5'),
+ array('userFetch3', 'appFetch5', 'keyFetch1', 'value6'),
+ array('userFetch4', 'appFetch2', 'keyFetch1', 'value7')
+ );
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $config->deleteAllUserValues('userFetch3');
+
+ $result = $this->connection->executeQuery(
+ 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`'
+ )->fetch();
+ $actualCount = $result['count'];
+
+ $this->assertEquals(1, $actualCount, 'After removing `userFetch3` there should be exactly 1 entry left.');
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
+ public function testDeleteAppFromAllUsers() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $data = array(
+ array('userFetch5', 'appFetch1', 'keyFetch1', 'value1'),
+ array('userFetch5', 'appFetch1', 'keyFetch2', 'value2'),
+ array('userFetch5', 'appFetch2', 'keyFetch3', 'value3'),
+ array('userFetch5', 'appFetch1', 'keyFetch4', 'value4'),
+ array('userFetch5', 'appFetch4', 'keyFetch1', 'value5'),
+ array('userFetch5', 'appFetch5', 'keyFetch1', 'value6'),
+ array('userFetch6', 'appFetch2', 'keyFetch1', 'value7')
+ );
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $config->deleteAppFromAllUsers('appFetch1');
+
+ $result = $this->connection->executeQuery(
+ 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`'
+ )->fetch();
+ $actualCount = $result['count'];
+
+ $this->assertEquals(4, $actualCount, 'After removing `appFetch1` there should be exactly 4 entries left.');
+
+ $config->deleteAppFromAllUsers('appFetch2');
+
+ $result = $this->connection->executeQuery(
+ 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`'
+ )->fetch();
+ $actualCount = $result['count'];
+
+ $this->assertEquals(2, $actualCount, 'After removing `appFetch2` there should be exactly 2 entries left.');
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
+ public function testGetUsersForUserValue() {
+ // mock the check for the database to run the correct SQL statements for each database type
+ $systemConfig = $this->getMock('\OC\SystemConfig');
+ $systemConfig->expects($this->once())
+ ->method('getValue')
+ ->with($this->equalTo('dbtype'),
+ $this->equalTo('sqlite'))
+ ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite')));
+ $config = $this->getConfig($systemConfig);
+
+ // preparation - add something to the database
+ $data = array(
+ array('user1', 'appFetch9', 'keyFetch9', 'value9'),
+ array('user2', 'appFetch9', 'keyFetch9', 'value9'),
+ array('user3', 'appFetch9', 'keyFetch9', 'value8'),
+ array('user4', 'appFetch9', 'keyFetch8', 'value9'),
+ array('user5', 'appFetch8', 'keyFetch9', 'value9'),
+ array('user6', 'appFetch9', 'keyFetch9', 'value9'),
+ );
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $value = $config->getUsersForUserValue('appFetch9', 'keyFetch9', 'value9');
+ $this->assertEquals(array('user1', 'user2', 'user6'), $value);
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
+}
diff --git a/tests/lib/app/infoparser.php b/tests/lib/app/infoparser.php
index 13c0b51e117..e291b616e8b 100644
--- a/tests/lib/app/infoparser.php
+++ b/tests/lib/app/infoparser.php
@@ -19,7 +19,7 @@ class InfoParser extends \PHPUnit_Framework_TestCase {
private $parser;
public function setUp() {
- $config = $this->getMockBuilder('\OC\AllConfig')
+ $config = $this->getMockBuilder('\OCP\IConfig')
->disableOriginalConstructor()->getMock();
$httpHelper = $this->getMockBuilder('\OC\HTTPHelper')
->setConstructorArgs(array($config))
diff --git a/tests/lib/config.php b/tests/lib/config.php
index 9dff3aab84f..6adba356a1c 100644
--- a/tests/lib/config.php
+++ b/tests/lib/config.php
@@ -47,7 +47,6 @@ class Test_Config extends \Test\TestCase {
}
public function testSetValue() {
- $this->config->setDebugMode(false);
$this->config->setValue('foo', 'moo');
$expectedConfig = $this->initialConfig;
$expectedConfig['foo'] = 'moo';
@@ -73,7 +72,6 @@ class Test_Config extends \Test\TestCase {
}
public function testDeleteKey() {
- $this->config->setDebugMode(false);
$this->config->deleteKey('foo');
$expectedConfig = $this->initialConfig;
unset($expectedConfig['foo']);
@@ -85,37 +83,6 @@ class Test_Config extends \Test\TestCase {
$this->assertEquals($expected, $content);
}
- public function testSetDebugMode() {
- $this->config->setDebugMode(true);
- $this->assertAttributeEquals($this->initialConfig, 'cache', $this->config);
- $this->assertAttributeEquals(true, 'debugMode', $this->config);
- $content = file_get_contents($this->configFile);
- $expected = "<?php\ndefine('DEBUG',true);\n\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
- $this->assertEquals($expected, $content);
-
- $this->config->setDebugMode(false);
- $this->assertAttributeEquals($this->initialConfig, 'cache', $this->config);
- $this->assertAttributeEquals(false, 'debugMode', $this->config);
- $content = file_get_contents($this->configFile);
- $expected = "<?php\n\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " .
- " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
- $this->assertEquals($expected, $content);
- }
-
- public function testIsDebugMode() {
- // Default
- $this->assertFalse($this->config->isDebugMode());
-
- // Manually set to false
- $this->config->setDebugMode(false);
- $this->assertFalse($this->config->isDebugMode());
-
- // Manually set to true
- $this->config->setDebugMode(true);
- $this->assertTrue($this->config->isDebugMode());
- }
-
public function testConfigMerge() {
// Create additional config
$additionalConfig = '<?php $CONFIG=array("php53"=>"totallyOutdated");';
diff --git a/tests/lib/contacts/localadressbook.php b/tests/lib/contacts/localadressbook.php
index 5fa260ffc3b..a34d45bf3d0 100644
--- a/tests/lib/contacts/localadressbook.php
+++ b/tests/lib/contacts/localadressbook.php
@@ -78,6 +78,9 @@ class SimpleUserForTesting implements \OCP\IUser {
public function getHome() {
}
+ public function getBackendClassName() {
+ }
+
public function canChangeAvatar() {
}
diff --git a/tests/lib/contactsmanager.php b/tests/lib/contactsmanager.php
new file mode 100644
index 00000000000..39e44cc6302
--- /dev/null
+++ b/tests/lib/contactsmanager.php
@@ -0,0 +1,209 @@
+<?php
+
+
+class Test_ContactsManager extends \Test\TestCase {
+
+ /** @var \OC\ContactsManager */
+ private $cm;
+
+ protected function setUp() {
+ parent::setUp();
+ $this->cm = new \OC\ContactsManager();
+ }
+
+ public function searchProvider(){
+ $search1 = array(
+ 0 => array(
+ 'N' => array(0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',),
+ 'UID' => '04ada7f5-01f9-4309-9c82-6b555b2170ed',
+ 'FN' => 'Jan Jansen',
+ 'id' => '1',
+ 'addressbook-key' => 'simple:1',
+ ),
+ 0 => array(
+ 'N' => array(0 => '', 1 => 'Tom', 2 => 'Peeters', 3 => '', 4 => '',),
+ 'UID' => '04ada7f5-01f9-4309-9c82-2345-2345--6b555b2170ed',
+ 'FN' => 'Tom Peeters',
+ 'id' => '2',
+ 'addressbook-key' => 'simple:1',
+ ),
+ );
+
+ $search2 = array(
+ 0 => array(
+ 'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',),
+ 'UID' => '04ada234h5jh357f5-01f9-4309-9c82-6b555b2170ed',
+ 'FN' => 'Jan Rompuy',
+ 'id' => '1',
+ 'addressbook-key' => 'simple:2',
+ ),
+ 0 => array(
+ 'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',),
+ 'UID' => '04ada7f5-01f9-4309-345kj345j9c82-2345-2345--6b555b2170ed',
+ 'FN' => 'Tim Peeters',
+ 'id' => '2',
+ 'addressbook-key' => 'simple:2',
+ ),
+ );
+
+ $expectedResult = array_merge($search1, $search2);
+ return array(
+ array(
+ $search1,
+ $search2,
+ $expectedResult
+ )
+ );
+ }
+
+ /**
+ * @dataProvider searchProvider
+ */
+ public function testSearch($search1, $search2, $expectedResult ){
+ $addressbook1 = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook1->expects($this->once())
+ ->method('search')
+ ->willReturn($search1);
+
+ $addressbook1->expects($this->any())
+ ->method('getKey')
+ ->willReturn('simple:1');
+
+ $addressbook2 = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook2->expects($this->once())
+ ->method('search')
+ ->willReturn($search2);
+
+ $addressbook2->expects($this->any())
+ ->method('getKey')
+ ->willReturn('simple:2');
+
+
+ $this->cm->registerAddressBook($addressbook1);
+ $this->cm->registerAddressBook($addressbook2);
+ $result = $this->cm->search('');
+ $this->assertEquals($expectedResult, $result);
+ }
+
+
+ public function testDeleteHavePermission(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->any())
+ ->method('getPermissions')
+ ->willReturn(\OCP\Constants::PERMISSION_ALL);
+
+ $addressbook->expects($this->once())
+ ->method('delete')
+ ->willReturn('returnMe');
+
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->delete(1, $addressbook->getKey());
+ $this->assertEquals($result, 'returnMe');
+ }
+
+ public function testDeleteNoPermission(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->any())
+ ->method('getPermissions')
+ ->willReturn(\OCP\Constants::PERMISSION_READ);
+
+ $addressbook->expects($this->never())
+ ->method('delete');
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->delete(1, $addressbook->getKey());
+ $this->assertEquals($result, null);
+ }
+
+ public function testDeleteNoAddressbook(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->never())
+ ->method('delete');
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->delete(1, 'noaddressbook');
+ $this->assertEquals($result, null);
+
+ }
+
+ public function testCreateOrUpdateHavePermission(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->any())
+ ->method('getPermissions')
+ ->willReturn(\OCP\Constants::PERMISSION_ALL);
+
+ $addressbook->expects($this->once())
+ ->method('createOrUpdate')
+ ->willReturn('returnMe');
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->createOrUpdate(array(), $addressbook->getKey());
+ $this->assertEquals($result, 'returnMe');
+ }
+
+ public function testCreateOrUpdateNoPermission(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->any())
+ ->method('getPermissions')
+ ->willReturn(\OCP\Constants::PERMISSION_READ);
+
+ $addressbook->expects($this->never())
+ ->method('createOrUpdate');
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->createOrUpdate(array(), $addressbook->getKey());
+ $this->assertEquals($result, null);
+
+ }
+
+ public function testCreateOrUpdateNOAdressbook(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $addressbook->expects($this->never())
+ ->method('createOrUpdate');
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->createOrUpdate(array(), 'noaddressbook');
+ $this->assertEquals($result, null);
+ }
+
+ public function testIsEnabledIfNot(){
+ $result = $this->cm->isEnabled();
+ $this->assertFalse($result);
+ }
+
+ public function testIsEnabledIfSo(){
+ $addressbook = $this->getMockBuilder('\OCP\IAddressBook')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->cm->registerAddressBook($addressbook);
+ $result = $this->cm->isEnabled();
+ $this->assertTrue($result);
+ }
+
+} \ No newline at end of file
diff --git a/tests/lib/datetimeformatter.php b/tests/lib/datetimeformatter.php
new file mode 100644
index 00000000000..9a50ee4a257
--- /dev/null
+++ b/tests/lib/datetimeformatter.php
@@ -0,0 +1,175 @@
+<?php
+/**
+ * Copyright (c) 2014 Joas Schilling nickvergessen@owncloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test;
+
+class DateTimeFormatter extends TestCase {
+ /** @var \OC\DateTimeFormatter */
+ protected $formatter;
+ static protected $oneMinute = 60;
+ static protected $oneHour = 3600;
+ static protected $oneDay;
+ static protected $oneYear;
+
+ static protected $defaultTimeZone;
+
+ public static function setUpBeforeClass() {
+ parent::setUpBeforeClass();
+ self::$defaultTimeZone = date_default_timezone_get();
+ date_default_timezone_set('UTC');
+
+ self::$oneDay = self::$oneHour * 24;
+ self::$oneYear = self::$oneDay * 365;
+ }
+
+ public static function tearDownAfterClass() {
+ date_default_timezone_set(self::$defaultTimeZone);
+ parent::tearDownAfterClass();
+ }
+
+ protected function setUp() {
+ parent::setUp();
+ $this->formatter = new \OC\DateTimeFormatter(new \DateTimeZone('UTC'), new \OC_L10N('lib', 'en'));
+ }
+
+ protected function getTimestampAgo($time, $seconds = 0, $minutes = 0, $hours = 0, $days = 0, $years = 0) {
+ return $time - $seconds - $minutes * 60 - $hours * 3600 - $days * 24*3600 - $years * 365*24*3600;
+ }
+
+ public function formatTimeSpanData() {
+ $time = 1416916800; // Use a fixed timestamp so we dont switch days/years with the getTimestampAgo
+ $deL10N = new \OC_L10N('lib', 'de');
+ return array(
+ array('seconds ago', $time, $time),
+ array('1 minute ago', $this->getTimestampAgo($time, 30, 1), $time),
+ array('15 minutes ago', $this->getTimestampAgo($time, 30, 15), $time),
+ array('1 hour ago', $this->getTimestampAgo($time, 30, 15, 1), $time),
+ array('3 hours ago', $this->getTimestampAgo($time, 30, 15, 3), $time),
+ array('4 days ago', $this->getTimestampAgo($time, 30, 15, 3, 4), $time),
+
+ array('seconds ago', new \DateTime('Wed, 02 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('seconds ago', new \DateTime('Wed, 02 Oct 2013 23:59:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('1 minute ago', new \DateTime('Wed, 02 Oct 2013 23:58:30 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('3 minutes ago', new \DateTime('Wed, 02 Oct 2013 23:56:30 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('59 minutes ago', new \DateTime('Wed, 02 Oct 2013 23:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('1 hour ago', new \DateTime('Wed, 02 Oct 2013 22:59:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('3 hours ago', new \DateTime('Wed, 02 Oct 2013 20:39:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('yesterday', new \DateTime('Tue, 01 Oct 2013 20:39:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('2 days ago', new \DateTime('Mon, 30 Sep 2013 20:39:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+
+ array($deL10N->t('seconds ago'), new \DateTime('Wed, 02 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->n('%n minute ago', '%n minutes ago', 1), new \DateTime('Wed, 02 Oct 2013 23:58:30 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->n('%n minute ago', '%n minutes ago', 3), new \DateTime('Wed, 02 Oct 2013 23:56:30 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->n('%n hour ago', '%n hours ago', 1), new \DateTime('Wed, 02 Oct 2013 22:59:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->n('%n hour ago', '%n hours ago', 3), new \DateTime('Wed, 02 Oct 2013 20:39:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->n('%n day ago', '%n days ago', 2), new \DateTime('Mon, 30 Sep 2013 20:39:59 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+
+ );
+ }
+
+ /**
+ * @dataProvider formatTimeSpanData
+ */
+ public function testFormatTimeSpan($expected, $timestamp, $compare, $locale = null) {
+ $this->assertEquals((string) $expected, (string) $this->formatter->formatTimeSpan($timestamp, $compare, $locale));
+ }
+
+ public function formatDateSpanData() {
+ $time = 1416916800; // Use a fixed timestamp so we dont switch days/years with the getTimestampAgo
+ $deL10N = new \OC_L10N('lib', 'de');
+ return array(
+ // Normal testing
+ array('today', $this->getTimestampAgo($time, 30, 15), $time),
+ array('yesterday', $this->getTimestampAgo($time, 0, 0, 0, 1), $time),
+ array('4 days ago', $this->getTimestampAgo($time, 0, 0, 0, 4), $time),
+ array('5 months ago', $this->getTimestampAgo($time, 0, 0, 0, 155), $time),
+ array('2 years ago', $this->getTimestampAgo($time, 0, 0, 0, 0, 2), $time),
+
+ // Test with compare timestamp
+ array('today', $this->getTimestampAgo($time, 0, 0, 0, 0, 1), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)),
+ array('yesterday', $this->getTimestampAgo($time, 30, 15, 3, 1, 1), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)),
+ array('4 days ago', $this->getTimestampAgo($time, 30, 15, 3, 4, 1), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)),
+ array('5 months ago', $this->getTimestampAgo($time, 30, 15, 3, 155, 1), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)),
+ array('2 years ago', $this->getTimestampAgo($time, 30, 15, 3, 35, 3), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)),
+
+ // Test translations
+ array($deL10N->t('today'), new \DateTime('Wed, 02 Oct 2013 12:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000'), $deL10N),
+ array($deL10N->t('yesterday'), new \DateTime('Tue, 01 Oct 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000'), $deL10N),
+ array($deL10N->n('%n day ago', '%n days ago', 2), new \DateTime('Mon, 30 Sep 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000'), $deL10N),
+ array($deL10N->n('%n month ago', '%n months ago', 9), new \DateTime('Tue, 31 Dec 2013 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000'), $deL10N),
+ array($deL10N->n('%n year ago', '%n years ago', 2), new \DateTime('Sun, 01 Jan 2012 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000'), $deL10N),
+
+ // Test time
+ array('today', new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('today', new \DateTime('Wed, 02 Oct 2013 12:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('today', new \DateTime('Wed, 02 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+
+ // Test some special yesterdays
+ array('yesterday', new \DateTime('Tue, 01 Oct 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000')),
+ array('yesterday', new \DateTime('Tue, 01 Oct 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('yesterday', new \DateTime('Tue, 01 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000')),
+ array('yesterday', new \DateTime('Tue, 01 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')),
+ array('yesterday', new \DateTime('Mon, 30 Sep 2013 00:00:00 +0000'), new \DateTime('Tue, 01 Oct 2013 00:00:00 +0000')),
+ array('yesterday', new \DateTime('Mon, 31 Dec 2012 00:00:00 +0000'), new \DateTime('Tue, 01 Jan 2013 00:00:00 +0000')),
+
+ // Test last month
+ array('2 days ago', new \DateTime('Mon, 30 Sep 2013 00:00:00 +0000'), new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000')),
+ array('last month', new \DateTime('Mon, 30 Sep 2013 00:00:00 +0000'), new \DateTime('Tue, 31 Oct 2013 00:00:00 +0000')),
+ array('last month', new \DateTime('Sun, 01 Sep 2013 00:00:00 +0000'), new \DateTime('Tue, 01 Oct 2013 00:00:00 +0000')),
+ array('last month', new \DateTime('Sun, 01 Sep 2013 00:00:00 +0000'), new \DateTime('Thu, 31 Oct 2013 00:00:00 +0000')),
+
+ // Test last year
+ array('9 months ago', new \DateTime('Tue, 31 Dec 2013 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000')),
+ array('11 months ago', new \DateTime('Thu, 03 Oct 2013 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000')),
+ array('last year', new \DateTime('Wed, 02 Oct 2013 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000')),
+ array('last year', new \DateTime('Tue, 01 Jan 2013 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000')),
+ array('2 years ago', new \DateTime('Sun, 01 Jan 2012 00:00:00 +0000'), new \DateTime('Thu, 02 Oct 2014 00:00:00 +0000')),
+ );
+ }
+
+ /**
+ * @dataProvider formatDateSpanData
+ */
+ public function testFormatDateSpan($expected, $timestamp, $compare = null, $locale = null) {
+ $this->assertEquals((string) $expected, (string) $this->formatter->formatDateSpan($timestamp, $compare, $locale));
+ }
+
+ public function formatDateData() {
+ return array(
+ array(1102831200, 'December 12, 2004'),
+ );
+ }
+
+ /**
+ * @dataProvider formatDateData
+ */
+ public function testFormatDate($timestamp, $expected) {
+ $this->assertEquals($expected, (string) $this->formatter->formatDate($timestamp));
+ }
+
+ public function formatDateTimeData() {
+ return array(
+ array(1350129205, null, 'October 13, 2012 at 11:53:25 AM GMT+0'),
+ array(1350129205, new \DateTimeZone('Europe/Berlin'), 'October 13, 2012 at 1:53:25 PM GMT+2'),
+ );
+ }
+
+ /**
+ * @dataProvider formatDateTimeData
+ */
+ public function testFormatDateTime($timestamp, $timeZone, $expected) {
+ $this->assertEquals($expected, (string) $this->formatter->formatDateTime($timestamp, 'long', 'long', $timeZone));
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ function testFormatDateWithInvalidTZ() {
+ $this->formatter->formatDate(1350129205, 'long', new \DateTimeZone('Mordor/Barad-dûr'));
+ }
+}
diff --git a/tests/lib/db/connection.php b/tests/lib/db/connection.php
new file mode 100644
index 00000000000..070c75db55d
--- /dev/null
+++ b/tests/lib/db/connection.php
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\DB;
+
+use Doctrine\DBAL\Platforms\SqlitePlatform;
+use OC\DB\MDB2SchemaManager;
+
+class Connection extends \Test\TestCase {
+ /**
+ * @var \OCP\IDBConnection
+ */
+ private $connection;
+
+ public function setUp() {
+ parent::setUp();
+ $this->connection = \OC::$server->getDatabaseConnection();
+ }
+
+ /**
+ * @param string $table
+ */
+ public function assertTableExist($table) {
+ if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
+ // sqlite removes the tables after closing the DB
+ $this->assertTrue(true);
+ } else {
+ $this->assertTrue($this->connection->tableExists($table), 'Table ' . $table . ' exists.');
+ }
+ }
+
+ /**
+ * @param string $table
+ */
+ public function assertTableNotExist($table) {
+ if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
+ // sqlite removes the tables after closing the DB
+ $this->assertTrue(true);
+ } else {
+ $this->assertFalse($this->connection->tableExists($table), 'Table ' . $table . ' doesnt exists.');
+ }
+ }
+
+ private function makeTestTable() {
+ $schemaManager = new MDB2SchemaManager($this->connection);
+ $schemaManager->createDbFromStructure(__DIR__ . '/testschema.xml');
+ }
+
+ public function testTableExists() {
+ $this->assertTableNotExist('table');
+ $this->makeTestTable();
+ $this->assertTableExist('table');
+ }
+
+ /**
+ * @depends testTableExists
+ */
+ public function testDropTable() {
+ $this->assertTableExist('table');
+ $this->connection->dropTable('table');
+ $this->assertTableNotExist('table');
+ }
+}
diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php
index 7360e9885c1..1af8e4da960 100644
--- a/tests/lib/files/cache/cache.php
+++ b/tests/lib/files/cache/cache.php
@@ -35,6 +35,10 @@ class Cache extends \Test\TestCase {
*/
protected $cache2;
+ public function testGetNumericId() {
+ $this->assertNotNull($this->cache->getNumericStorageId());
+ }
+
public function testSimple() {
$file1 = 'foo';
$file2 = 'foo/bar';
@@ -266,6 +270,63 @@ class Cache extends \Test\TestCase {
$this->assertEquals(2, count($this->cache->searchByMime('foo/file')));
}
+ function testSearchByTag() {
+ $userId = $this->getUniqueId('user');
+ \OC_User::createUser($userId, $userId);
+ $this->loginAsUser($userId);
+ $user = new \OC\User\User($userId, null);
+
+ $file1 = 'folder';
+ $file2 = 'folder/foobar';
+ $file3 = 'folder/foo';
+ $file4 = 'folder/foo2';
+ $file5 = 'folder/foo3';
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder');
+ $fileData = array();
+ $fileData['foobar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
+ $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file');
+ $fileData['foo2'] = array('size' => 25, 'mtime' => 28, 'mimetype' => 'foo/file');
+ $fileData['foo3'] = array('size' => 88, 'mtime' => 34, 'mimetype' => 'foo/file');
+
+ $id1 = $this->cache->put($file1, $data1);
+ $id2 = $this->cache->put($file2, $fileData['foobar']);
+ $id3 = $this->cache->put($file3, $fileData['foo']);
+ $id4 = $this->cache->put($file4, $fileData['foo2']);
+ $id5 = $this->cache->put($file5, $fileData['foo3']);
+
+ $tagManager = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $this->assertTrue($tagManager->tagAs($id1, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id1, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id2, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id3, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id4, 'tag2'));
+
+ // use tag name
+ $results = $this->cache->searchByTag('tag1', $userId);
+
+ $this->assertEquals(2, count($results));
+
+ $this->assertEquals('folder', $results[0]['name']);
+ $this->assertEquals('foo', $results[1]['name']);
+
+ // use tag id
+ $tags = $tagManager->getTagsForUser($userId);
+ $this->assertNotEmpty($tags);
+ $tags = array_filter($tags, function($tag) { return $tag->getName() === 'tag2'; });
+ $results = $this->cache->searchByTag(current($tags)->getId(), $userId);
+ $this->assertEquals(3, count($results));
+
+ $this->assertEquals('folder', $results[0]['name']);
+ $this->assertEquals('foobar', $results[1]['name']);
+ $this->assertEquals('foo2', $results[2]['name']);
+
+ $tagManager->delete('tag1');
+ $tagManager->delete('tag2');
+
+ $this->logout();
+ \OC_User::deleteUser($userId);
+ }
+
function testMove() {
$file1 = 'folder';
$file2 = 'folder/bar';
diff --git a/tests/lib/files/mount/manager.php b/tests/lib/files/mount/manager.php
index 051b76ccf2e..78322b47d50 100644
--- a/tests/lib/files/mount/manager.php
+++ b/tests/lib/files/mount/manager.php
@@ -30,33 +30,33 @@ class Manager extends \Test\TestCase {
public function testFind() {
$this->assertNull($this->manager->find('/'));
- $rootMount = new \OC\Files\Mount\Mount(new Temporary(array()), '/');
+ $rootMount = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/');
$this->manager->addMount($rootMount);
$this->assertEquals($rootMount, $this->manager->find('/'));
$this->assertEquals($rootMount, $this->manager->find('/foo/bar'));
$storage = new Temporary(array());
- $mount1 = new \OC\Files\Mount\Mount($storage, '/foo');
+ $mount1 = new \OC\Files\Mount\MountPoint($storage, '/foo');
$this->manager->addMount($mount1);
$this->assertEquals($rootMount, $this->manager->find('/'));
$this->assertEquals($mount1, $this->manager->find('/foo/bar'));
$this->assertEquals(1, count($this->manager->findIn('/')));
- $mount2 = new \OC\Files\Mount\Mount(new Temporary(array()), '/bar');
+ $mount2 = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/bar');
$this->manager->addMount($mount2);
$this->assertEquals(2, count($this->manager->findIn('/')));
$id = $mount1->getStorageId();
$this->assertEquals(array($mount1), $this->manager->findByStorageId($id));
- $mount3 = new \OC\Files\Mount\Mount($storage, '/foo/bar');
+ $mount3 = new \OC\Files\Mount\MountPoint($storage, '/foo/bar');
$this->manager->addMount($mount3);
$this->assertEquals(array($mount1, $mount3), $this->manager->findByStorageId($id));
}
public function testLong() {
$storage = new LongId(array());
- $mount = new \OC\Files\Mount\Mount($storage, '/foo');
+ $mount = new \OC\Files\Mount\MountPoint($storage, '/foo');
$this->manager->addMount($mount);
$id = $mount->getStorageId();
diff --git a/tests/lib/files/mount/mount.php b/tests/lib/files/mount/mount.php
index 5ee3d934e97..584766de836 100644
--- a/tests/lib/files/mount/mount.php
+++ b/tests/lib/files/mount/mount.php
@@ -9,7 +9,7 @@
namespace Test\Files\Mount;
-use OC\Files\Storage\Loader;
+use OC\Files\Storage\StorageFactory;
use OC\Files\Storage\Wrapper\Wrapper;
class Mount extends \Test\TestCase {
@@ -17,12 +17,12 @@ class Mount extends \Test\TestCase {
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
->disableOriginalConstructor()
->getMock();
- $mount = new \OC\Files\Mount\Mount($storage, '/foo');
+ $mount = new \OC\Files\Mount\MountPoint($storage, '/foo');
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
}
public function testFromStorageClassname() {
- $mount = new \OC\Files\Mount\Mount('\OC\Files\Storage\Temporary', '/foo');
+ $mount = new \OC\Files\Mount\MountPoint('\OC\Files\Storage\Temporary', '/foo');
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
}
@@ -34,13 +34,13 @@ class Mount extends \Test\TestCase {
return new Wrapper(array('storage' => $storage));
};
- $loader = new Loader();
+ $loader = new StorageFactory();
$loader->addStorageWrapper('test_wrapper', $wrapper);
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
->disableOriginalConstructor()
->getMock();
- $mount = new \OC\Files\Mount\Mount($storage, '/foo', array(), $loader);
+ $mount = new \OC\Files\Mount\MountPoint($storage, '/foo', array(), $loader);
$this->assertInstanceOf('\OC\Files\Storage\Wrapper\Wrapper', $mount->getStorage());
}
}
diff --git a/tests/lib/files/node/folder.php b/tests/lib/files/node/folder.php
index 4aa57aa9373..e69a2776979 100644
--- a/tests/lib/files/node/folder.php
+++ b/tests/lib/files/node/folder.php
@@ -10,7 +10,7 @@ namespace Test\Files\Node;
use OC\Files\Cache\Cache;
use OC\Files\FileInfo;
-use OC\Files\Mount\Mount;
+use OC\Files\Mount\MountPoint;
use OC\Files\Node\Node;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
@@ -405,6 +405,45 @@ class Folder extends \Test\TestCase {
$this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
}
+ public function testSearchByTag() {
+ $manager = $this->getMock('\OC\Files\Mount\Manager');
+ /**
+ * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view
+ */
+ $view = $this->getMock('\OC\Files\View');
+ $root = $this->getMock('\OC\Files\Node\Root', array(), array($manager, $view, $this->user));
+ $root->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+ $storage = $this->getMock('\OC\Files\Storage\Storage');
+ $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
+
+ $storage->expects($this->once())
+ ->method('getCache')
+ ->will($this->returnValue($cache));
+
+ $cache->expects($this->once())
+ ->method('searchByTag')
+ ->with('tag1', 'user1')
+ ->will($this->returnValue(array(
+ array('fileid' => 3, 'path' => 'foo/qwerty', 'name' => 'qwerty', 'size' => 200, 'mtime' => 55, 'mimetype' => 'text/plain')
+ )));
+
+ $root->expects($this->once())
+ ->method('getMountsIn')
+ ->with('/bar/foo')
+ ->will($this->returnValue(array()));
+
+ $view->expects($this->once())
+ ->method('resolvePath')
+ ->will($this->returnValue(array($storage, 'foo')));
+
+ $node = new \OC\Files\Node\Folder($root, $view, '/bar/foo');
+ $result = $node->searchByTag('tag1', 'user1');
+ $this->assertEquals(1, count($result));
+ $this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
+ }
+
public function testSearchSubStorages() {
$manager = $this->getMock('\OC\Files\Mount\Manager');
/**
@@ -419,7 +458,7 @@ class Folder extends \Test\TestCase {
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
$subCache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
$subStorage = $this->getMock('\OC\Files\Storage\Storage');
- $subMount = $this->getMock('\OC\Files\Mount\Mount', array(), array(null, ''));
+ $subMount = $this->getMock('\OC\Files\Mount\MountPoint', array(), array(null, ''));
$subMount->expects($this->once())
->method('getStorage')
@@ -487,7 +526,7 @@ class Folder extends \Test\TestCase {
->method('getUser')
->will($this->returnValue($this->user));
$storage = $this->getMock('\OC\Files\Storage\Storage');
- $mount = new Mount($storage, '/bar');
+ $mount = new MountPoint($storage, '/bar');
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
$view->expects($this->once())
@@ -530,7 +569,7 @@ class Folder extends \Test\TestCase {
->method('getUser')
->will($this->returnValue($this->user));
$storage = $this->getMock('\OC\Files\Storage\Storage');
- $mount = new Mount($storage, '/bar');
+ $mount = new MountPoint($storage, '/bar');
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
$storage->expects($this->once())
@@ -568,8 +607,8 @@ class Folder extends \Test\TestCase {
->method('getUser')
->will($this->returnValue($this->user));
$storage = $this->getMock('\OC\Files\Storage\Storage');
- $mount1 = new Mount($storage, '/bar');
- $mount2 = new Mount($storage, '/bar/foo/asd');
+ $mount1 = new MountPoint($storage, '/bar');
+ $mount2 = new MountPoint($storage, '/bar/foo/asd');
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
$view->expects($this->any())
diff --git a/tests/lib/files/utils/scanner.php b/tests/lib/files/utils/scanner.php
index f729be81bd7..65ddfe47514 100644
--- a/tests/lib/files/utils/scanner.php
+++ b/tests/lib/files/utils/scanner.php
@@ -9,17 +9,17 @@
namespace Test\Files\Utils;
use OC\Files\Filesystem;
-use OC\Files\Mount\Mount;
+use OC\Files\Mount\MountPoint;
use OC\Files\Storage\Temporary;
class TestScanner extends \OC\Files\Utils\Scanner {
/**
- * @var \OC\Files\Mount\Mount[] $mounts
+ * @var \OC\Files\Mount\MountPoint[] $mounts
*/
private $mounts = array();
/**
- * @param \OC\Files\Mount\Mount $mount
+ * @param \OC\Files\Mount\MountPoint $mount
*/
public function addMount($mount) {
$this->mounts[] = $mount;
@@ -56,7 +56,7 @@ class Scanner extends \Test\TestCase {
public function testReuseExistingRoot() {
$storage = new Temporary(array());
- $mount = new Mount($storage, '');
+ $mount = new MountPoint($storage, '');
Filesystem::getMountManager()->addMount($mount);
$cache = $storage->getCache();
@@ -78,7 +78,7 @@ class Scanner extends \Test\TestCase {
public function testReuseExistingFile() {
$storage = new Temporary(array());
- $mount = new Mount($storage, '');
+ $mount = new MountPoint($storage, '');
Filesystem::getMountManager()->addMount($mount);
$cache = $storage->getCache();
@@ -105,7 +105,7 @@ class Scanner extends \Test\TestCase {
$propagator = $this->getMock('\OC\Files\Cache\ChangePropagator', array('propagateChanges'), array(), '', false);
$storage = new Temporary(array());
- $mount = new Mount($storage, '/foo');
+ $mount = new MountPoint($storage, '/foo');
Filesystem::getMountManager()->addMount($mount);
$cache = $storage->getCache();
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 8bb4e0ac2cc..25065967260 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -594,7 +594,7 @@ class View extends \Test\TestCase {
}
}
- public function testLongPath() {
+ public function xtestLongPath() {
$storage = new \OC\Files\Storage\Temporary(array());
\OC\Files\Filesystem::mount($storage, array(), '/');
diff --git a/tests/lib/helperstorage.php b/tests/lib/helperstorage.php
index 9f3bd8824f7..8b5f41fc94c 100644
--- a/tests/lib/helperstorage.php
+++ b/tests/lib/helperstorage.php
@@ -45,7 +45,7 @@ class Test_Helper_Storage extends \Test\TestCase {
\OC_User::setUserId('');
\OC_User::deleteUser($this->user);
- \OC_Preferences::deleteUser($this->user);
+ \OC::$server->getConfig()->deleteAllUserValues($this->user);
parent::tearDown();
}
diff --git a/tests/lib/httphelper.php b/tests/lib/httphelper.php
index eb58508f158..1cc4232ab4b 100644
--- a/tests/lib/httphelper.php
+++ b/tests/lib/httphelper.php
@@ -8,7 +8,7 @@
class TestHTTPHelper extends \Test\TestCase {
- /** @var \OC\AllConfig*/
+ /** @var \OCP\IConfig*/
private $config;
/** @var \OC\HTTPHelper */
private $httpHelperMock;
@@ -16,7 +16,7 @@ class TestHTTPHelper extends \Test\TestCase {
protected function setUp() {
parent::setUp();
- $this->config = $this->getMockBuilder('\OC\AllConfig')
+ $this->config = $this->getMockBuilder('\OCP\IConfig')
->disableOriginalConstructor()->getMock();
$this->httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper')
->setConstructorArgs(array($this->config))
diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php
index 68f43b76f51..2235581add8 100644
--- a/tests/lib/l10n.php
+++ b/tests/lib/l10n.php
@@ -42,6 +42,24 @@ class Test_L10n extends \Test\TestCase {
*/
}
+ public function russianMissingPluralTranslationsData() {
+ return array(
+ array(1, '1 missing plural'),
+ array(2, '2 missing plurals'),
+ array(6, '6 missing plurals'),
+ );
+ }
+
+ /**
+ * @dataProvider russianMissingPluralTranslationsData
+ */
+ public function testRussianMissingPluralTranslations($count, $expected) {
+ $l = new OC_L10N('test');
+ $l->load(OC::$SERVERROOT.'/tests/data/l10n/ru.json');
+
+ $this->assertEquals($expected, (string)$l->n('%n missing plural', '%n missing plurals', $count));
+ }
+
public function testCzechPluralTranslations() {
$l = new OC_L10N('test');
$transFile = OC::$SERVERROOT.'/tests/data/l10n/cs.json';
diff --git a/tests/lib/largefilehelpergetfilesize.php b/tests/lib/largefilehelpergetfilesize.php
index c97b7b32b0f..57bc2381966 100644
--- a/tests/lib/largefilehelpergetfilesize.php
+++ b/tests/lib/largefilehelpergetfilesize.php
@@ -13,6 +13,10 @@ namespace Test;
* Large files are not considered yet.
*/
class LargeFileHelperGetFileSize extends TestCase {
+ /** @var string */
+ protected $filename;
+ /** @var int */
+ protected $fileSize;
/** @var \OC\LargeFileHelper */
protected $helper;
@@ -41,6 +45,11 @@ class LargeFileHelperGetFileSize extends TestCase {
'The PHP curl extension is required for this test.'
);
}
+ if (\OC::$server->getIniWrapper()->getString('open_basedir') !== '') {
+ $this->markTestSkipped(
+ 'The PHP curl extension does not work with the file:// protocol when open_basedir is enabled.'
+ );
+ }
$this->assertSame(
$fileSize,
$this->helper->getFileSizeViaCurl($filename)
diff --git a/tests/lib/preferences-singleton.php b/tests/lib/preferences-singleton.php
deleted file mode 100644
index 01e15acdfe1..00000000000
--- a/tests/lib/preferences-singleton.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it>
- * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-class Test_Preferences extends \Test\TestCase {
- public static function setUpBeforeClass() {
- parent::setUpBeforeClass();
-
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)');
- $query->execute(array("Someuser", "someapp", "somekey", "somevalue"));
-
- $query->execute(array("Someuser", "getusersapp", "somekey", "somevalue"));
- $query->execute(array("Anotheruser", "getusersapp", "somekey", "someothervalue"));
- $query->execute(array("Anuser", "getusersapp", "somekey", "somevalue"));
-
- $query->execute(array("Someuser", "getappsapp", "somekey", "somevalue"));
-
- $query->execute(array("Someuser", "getkeysapp", "firstkey", "somevalue"));
- $query->execute(array("Someuser", "getkeysapp", "anotherkey", "somevalue"));
- $query->execute(array("Someuser", "getkeysapp", "key-tastic", "somevalue"));
-
- $query->execute(array("Someuser", "getvalueapp", "key", "a value for a key"));
-
- $query->execute(array("Deleteuser", "deleteapp", "deletekey", "somevalue"));
- $query->execute(array("Deleteuser", "deleteapp", "somekey", "somevalue"));
- $query->execute(array("Deleteuser", "someapp", "somekey", "somevalue"));
- }
-
- public static function tearDownAfterClass() {
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `userid` = ?');
- $query->execute(array('Someuser'));
- $query->execute(array('Anotheruser'));
- $query->execute(array('Anuser'));
-
- parent::tearDownAfterClass();
- }
-
- public function testGetUsers() {
- $query = \OC_DB::prepare('SELECT DISTINCT `userid` FROM `*PREFIX*preferences`');
- $result = $query->execute();
- $expected = array();
- while ($row = $result->fetchRow()) {
- $expected[] = $row['userid'];
- }
-
- sort($expected);
- $users = \OC_Preferences::getUsers();
- sort($users);
- $this->assertEquals($expected, $users);
- }
-
- public function testGetApps() {
- $query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*preferences` WHERE `userid` = ?');
- $result = $query->execute(array('Someuser'));
- $expected = array();
- while ($row = $result->fetchRow()) {
- $expected[] = $row['appid'];
- }
-
- sort($expected);
- $apps = \OC_Preferences::getApps('Someuser');
- sort($apps);
- $this->assertEquals($expected, $apps);
- }
-
- public function testGetKeys() {
- $query = \OC_DB::prepare('SELECT DISTINCT `configkey` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?');
- $result = $query->execute(array('Someuser', 'getkeysapp'));
- $expected = array();
- while ($row = $result->fetchRow()) {
- $expected[] = $row['configkey'];
- }
-
- sort($expected);
- $keys = \OC_Preferences::getKeys('Someuser', 'getkeysapp');
- sort($keys);
- $this->assertEquals($expected, $keys);
- }
-
- public function testGetValue() {
- $this->assertNull(\OC_Preferences::getValue('nonexistant', 'nonexistant', 'nonexistant'));
-
- $this->assertEquals('default', \OC_Preferences::getValue('nonexistant', 'nonexistant', 'nonexistant', 'default'));
-
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'getvalueapp', 'key'));
- $row = $result->fetchRow();
- $expected = $row['configvalue'];
- $this->assertEquals($expected, \OC_Preferences::getValue('Someuser', 'getvalueapp', 'key'));
- }
-
- public function testSetValue() {
- $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $value = $row['configvalue'];
- $this->assertEquals('newvalue', $value);
-
- $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $value = $row['configvalue'];
- $this->assertEquals('othervalue', $value);
- }
-
- public function testSetValueWithPreCondition() {
- // remove existing key
- $this->assertTrue(\OC_Preferences::deleteKey('Someuser', 'setvalueapp', 'newkey'));
-
- // add new preference with pre-condition should fails
- $this->assertFalse(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue', 'preCondition'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $this->assertFalse($row);
-
- // add new preference without pre-condition should insert the new value
- $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $value = $row['configvalue'];
- $this->assertEquals('newvalue', $value);
-
- // wrong pre-condition, value should stay the same
- $this->assertFalse(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue', 'preCondition'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $value = $row['configvalue'];
- $this->assertEquals('newvalue', $value);
-
- // correct pre-condition, value should change
- $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue', 'newvalue'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey'));
- $row = $result->fetchRow();
- $value = $row['configvalue'];
- $this->assertEquals('othervalue', $value);
- }
-
- public function testDeleteKey() {
- $this->assertTrue(\OC_Preferences::deleteKey('Deleteuser', 'deleteapp', 'deletekey'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('Deleteuser', 'deleteapp', 'deletekey'));
- $this->assertEquals(0, count($result->fetchAll()));
- }
-
- public function testDeleteApp() {
- $this->assertTrue(\OC_Preferences::deleteApp('Deleteuser', 'deleteapp'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?');
- $result = $query->execute(array('Deleteuser', 'deleteapp'));
- $this->assertEquals(0, count($result->fetchAll()));
- }
-
- public function testDeleteUser() {
- $this->assertTrue(\OC_Preferences::deleteUser('Deleteuser'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?');
- $result = $query->execute(array('Deleteuser'));
- $this->assertEquals(0, count($result->fetchAll()));
- }
-
- public function testDeleteAppFromAllUsers() {
- $this->assertTrue(\OC_Preferences::deleteAppFromAllUsers('someapp'));
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `appid` = ?');
- $result = $query->execute(array('someapp'));
- $this->assertEquals(0, count($result->fetchAll()));
- }
-}
diff --git a/tests/lib/preferences.php b/tests/lib/preferences.php
deleted file mode 100644
index 193b1f80280..00000000000
--- a/tests/lib/preferences.php
+++ /dev/null
@@ -1,241 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it>
- * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-class Test_Preferences_Object extends \Test\TestCase {
- public function testGetUsers()
- {
- $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false);
- $statementMock->expects($this->exactly(2))
- ->method('fetchColumn')
- ->will($this->onConsecutiveCalls('foo', false));
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->once())
- ->method('executeQuery')
- ->with($this->equalTo('SELECT DISTINCT `userid` FROM `*PREFIX*preferences`'))
- ->will($this->returnValue($statementMock));
-
- $preferences = new OC\Preferences($connectionMock);
- $apps = $preferences->getUsers();
- $this->assertEquals(array('foo'), $apps);
- }
-
- public function testSetValue()
- {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->exactly(2))
- ->method('fetchColumn')
- ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`'
- .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
- $this->equalTo(array('grg', 'bar', 'foo')))
- ->will($this->onConsecutiveCalls(false, 'v1'));
- $connectionMock->expects($this->once())
- ->method('insert')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- 'appid' => 'bar',
- 'configkey' => 'foo',
- 'configvalue' => 'v1',
- )
- ));
- $connectionMock->expects($this->once())
- ->method('executeUpdate')
- ->with($this->equalTo("UPDATE `*PREFIX*preferences` SET `configvalue` = ?"
- . " WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?"),
- $this->equalTo(array('v2', 'grg', 'bar', 'foo'))
- );
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->setValue('grg', 'bar', 'foo', 'v1');
- $preferences->setValue('grg', 'bar', 'foo', 'v2');
- }
-
- public function testSetValueUnchanged() {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->exactly(3))
- ->method('fetchColumn')
- ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`'
- .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
- $this->equalTo(array('grg', 'bar', 'foo')))
- ->will($this->onConsecutiveCalls(false, 'v1', 'v1'));
- $connectionMock->expects($this->once())
- ->method('insert')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- 'appid' => 'bar',
- 'configkey' => 'foo',
- 'configvalue' => 'v1',
- )
- ));
- $connectionMock->expects($this->never())
- ->method('executeUpdate');
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->setValue('grg', 'bar', 'foo', 'v1');
- $preferences->setValue('grg', 'bar', 'foo', 'v1');
- $preferences->setValue('grg', 'bar', 'foo', 'v1');
- }
-
- public function testSetValueUnchanged2() {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->exactly(3))
- ->method('fetchColumn')
- ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`'
- .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'),
- $this->equalTo(array('grg', 'bar', 'foo')))
- ->will($this->onConsecutiveCalls(false, 'v1', 'v2'));
- $connectionMock->expects($this->once())
- ->method('insert')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- 'appid' => 'bar',
- 'configkey' => 'foo',
- 'configvalue' => 'v1',
- )
- ));
- $connectionMock->expects($this->once())
- ->method('executeUpdate')
- ->with($this->equalTo("UPDATE `*PREFIX*preferences` SET `configvalue` = ?"
- . " WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?"),
- $this->equalTo(array('v2', 'grg', 'bar', 'foo'))
- );
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->setValue('grg', 'bar', 'foo', 'v1');
- $preferences->setValue('grg', 'bar', 'foo', 'v2');
- $preferences->setValue('grg', 'bar', 'foo', 'v2');
- }
-
- public function testGetUserValues()
- {
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)');
- $query->execute(array('SomeUser', 'testGetUserValues', 'somekey', 'somevalue'));
- $query->execute(array('AnotherUser', 'testGetUserValues', 'somekey', 'someothervalue'));
- $query->execute(array('AUser', 'testGetUserValues', 'somekey', 'somevalue'));
-
- $preferences = new OC\Preferences(\OC_DB::getConnection());
- $users = array('SomeUser', 'AnotherUser', 'NoValueSet');
-
- $values = $preferences->getValueForUsers('testGetUserValues', 'somekey', $users);
- $this->assertUserValues($values);
-
- // Add a lot of users so the array is chunked
- for ($i = 1; $i <= 75; $i++) {
- array_unshift($users, 'NoValueBefore#' . $i);
- array_push($users, 'NoValueAfter#' . $i);
- }
-
- $values = $preferences->getValueForUsers('testGetUserValues', 'somekey', $users);
- $this->assertUserValues($values);
-
- // Clean DB after the test
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?');
- $query->execute(array('testGetUserValues'));
- }
-
- protected function assertUserValues($values) {
- $this->assertEquals(2, sizeof($values));
-
- $this->assertArrayHasKey('SomeUser', $values);
- $this->assertEquals('somevalue', $values['SomeUser']);
-
- $this->assertArrayHasKey('AnotherUser', $values);
- $this->assertEquals('someothervalue', $values['AnotherUser']);
- }
-
- public function testGetValueUsers()
- {
- // Prepare data
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)');
- $query->execute(array('SomeUser', 'testGetUsersForValue', 'somekey', 'somevalue'));
- $query->execute(array('AnotherUser', 'testGetUsersForValue', 'somekey', 'someothervalue'));
- $query->execute(array('AUser', 'testGetUsersForValue', 'somekey', 'somevalue'));
-
- $preferences = new OC\Preferences(\OC_DB::getConnection());
- $result = $preferences->getUsersForValue('testGetUsersForValue', 'somekey', 'somevalue');
- sort($result);
- $this->assertEquals(array('AUser', 'SomeUser'), $result);
-
- // Clean DB after the test
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?');
- $query->execute(array('testGetUsersForValue'));
- }
-
- public function testDeleteKey()
- {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->once())
- ->method('delete')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- 'appid' => 'bar',
- 'configkey' => 'foo',
- )
- ));
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->deleteKey('grg', 'bar', 'foo');
- }
-
- public function testDeleteApp()
- {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->once())
- ->method('delete')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- 'appid' => 'bar',
- )
- ));
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->deleteApp('grg', 'bar');
- }
-
- public function testDeleteUser()
- {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->once())
- ->method('delete')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'userid' => 'grg',
- )
- ));
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->deleteUser('grg');
- }
-
- public function testDeleteAppFromAllUsers()
- {
- $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);
- $connectionMock->expects($this->once())
- ->method('delete')
- ->with($this->equalTo('*PREFIX*preferences'),
- $this->equalTo(
- array(
- 'appid' => 'bar',
- )
- ));
-
- $preferences = new OC\Preferences($connectionMock);
- $preferences->deleteAppFromAllUsers('bar');
- }
-}
diff --git a/tests/lib/tags.php b/tests/lib/tags.php
index 533e6a19add..71296d2e346 100644
--- a/tests/lib/tags.php
+++ b/tests/lib/tags.php
@@ -23,7 +23,10 @@
class Test_Tags extends \Test\TestCase {
protected $objectType;
+ /** @var \OC\IUser */
protected $user;
+ /** @var \OC\IUserSession */
+ protected $userSession;
protected $backupGlobals = FALSE;
/** @var \OC\Tagging\TagMapper */
protected $tagMapper;
@@ -35,12 +38,19 @@ class Test_Tags extends \Test\TestCase {
OC_User::clearBackends();
OC_User::useBackend('dummy');
- $this->user = $this->getUniqueID('user_');
+ $userId = $this->getUniqueID('user_');
+ OC_User::createUser($userId, 'pass');
+ OC_User::setUserId($userId);
+ $this->user = new OC\User\User($userId, null);
+ $this->userSession = $this->getMock('\OCP\IUserSession');
+ $this->userSession
+ ->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+
$this->objectType = $this->getUniqueID('type_');
- OC_User::createUser($this->user, 'pass');
- OC_User::setUserId($this->user);
$this->tagMapper = new OC\Tagging\TagMapper(\OC::$server->getDb());
- $this->tagMgr = new OC\TagManager($this->tagMapper, $this->user);
+ $this->tagMgr = new OC\TagManager($this->tagMapper, $this->userSession);
}
@@ -136,7 +146,37 @@ class Test_Tags extends \Test\TestCase {
$this->assertFalse($tagger->isEmpty());
}
- public function testdeleteTags() {
+ public function testGetTagsForObjects() {
+ $defaultTags = array('Friends', 'Family', 'Work', 'Other');
+ $tagger = $this->tagMgr->load($this->objectType, $defaultTags);
+
+ $tagger->tagAs(1, 'Friends');
+ $tagger->tagAs(1, 'Other');
+ $tagger->tagAs(2, 'Family');
+
+ $tags = $tagger->getTagsForObjects(array(1));
+ $this->assertEquals(1, count($tags));
+ $tags = current($tags);
+ sort($tags);
+ $this->assertSame(array('Friends', 'Other'), $tags);
+
+ $tags = $tagger->getTagsForObjects(array(1, 2));
+ $this->assertEquals(2, count($tags));
+ $tags1 = $tags[1];
+ sort($tags1);
+ $this->assertSame(array('Friends', 'Other'), $tags1);
+ $this->assertSame(array('Family'), $tags[2]);
+ $this->assertEquals(
+ array(),
+ $tagger->getTagsForObjects(array(4))
+ );
+ $this->assertEquals(
+ array(),
+ $tagger->getTagsForObjects(array(4, 5))
+ );
+ }
+
+ public function testDeleteTags() {
$defaultTags = array('Friends', 'Family', 'Work', 'Other');
$tagger = $this->tagMgr->load($this->objectType, $defaultTags);
@@ -147,7 +187,6 @@ class Test_Tags extends \Test\TestCase {
$tagger->delete(array('Friends', 'Work', 'Other'));
$this->assertEquals(0, count($tagger->getTags()));
-
}
public function testRenameTag() {
@@ -203,27 +242,32 @@ class Test_Tags extends \Test\TestCase {
}
public function testShareTags() {
- $test_tag = 'TestTag';
+ $testTag = 'TestTag';
OCP\Share::registerBackend('test', 'Test_Share_Backend');
$tagger = $this->tagMgr->load('test');
- $tagger->tagAs(1, $test_tag);
-
- $other_user = $this->getUniqueID('user2_');
- OC_User::createUser($other_user, 'pass');
-
- OC_User::setUserId($other_user);
- $other_tagMgr = new OC\TagManager($this->tagMapper, $other_user);
- $other_tagger = $other_tagMgr->load('test');
- $this->assertFalse($other_tagger->hasTag($test_tag));
-
- OC_User::setUserId($this->user);
- OCP\Share::shareItem('test', 1, OCP\Share::SHARE_TYPE_USER, $other_user, \OCP\Constants::PERMISSION_READ);
-
- OC_User::setUserId($other_user);
- $other_tagger = $other_tagMgr->load('test', array(), true); // Update tags, load shared ones.
- $this->assertTrue($other_tagger->hasTag($test_tag));
- $this->assertContains(1, $other_tagger->getIdsForTag($test_tag));
+ $tagger->tagAs(1, $testTag);
+
+ $otherUserId = $this->getUniqueID('user2_');
+ OC_User::createUser($otherUserId, 'pass');
+ OC_User::setUserId($otherUserId);
+ $otherUserSession = $this->getMock('\OCP\IUserSession');
+ $otherUserSession
+ ->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue(new OC\User\User($otherUserId, null)));
+
+ $otherTagMgr = new OC\TagManager($this->tagMapper, $otherUserSession);
+ $otherTagger = $otherTagMgr->load('test');
+ $this->assertFalse($otherTagger->hasTag($testTag));
+
+ OC_User::setUserId($this->user->getUID());
+ OCP\Share::shareItem('test', 1, OCP\Share::SHARE_TYPE_USER, $otherUserId, \OCP\Constants::PERMISSION_READ);
+
+ OC_User::setUserId($otherUserId);
+ $otherTagger = $otherTagMgr->load('test', array(), true); // Update tags, load shared ones.
+ $this->assertTrue($otherTagger->hasTag($testTag));
+ $this->assertContains(1, $otherTagger->getIdsForTag($testTag));
}
}
diff --git a/tests/lib/template.php b/tests/lib/template.php
index d77284a5bf2..db58238eae8 100644
--- a/tests/lib/template.php
+++ b/tests/lib/template.php
@@ -117,15 +117,15 @@ class Test_TemplateFunctions extends \Test\TestCase {
public function testRelativeDateMonthsAgo(){
$currentTime = 1380703592;
- $elementTime = $currentTime - 86400 * 60;
+ $elementTime = $currentTime - 86400 * 65;
$result = (string)relative_modified_date($elementTime, $currentTime, true);
$this->assertEquals('2 months ago', $result);
- $elementTime = $currentTime - 86400 * 65;
+ $elementTime = $currentTime - 86400 * 130;
$result = (string)relative_modified_date($elementTime, $currentTime, true);
- $this->assertEquals('2 months ago', $result);
+ $this->assertEquals('4 months ago', $result);
}
public function testRelativeDateLastYear(){
@@ -146,12 +146,12 @@ class Test_TemplateFunctions extends \Test\TestCase {
$elementTime = $currentTime - 86400 * 365.25 * 2;
$result = (string)relative_modified_date($elementTime, $currentTime, true);
- $this->assertEquals('years ago', $result);
+ $this->assertEquals('2 years ago', $result);
$elementTime = $currentTime - 86400 * 365.25 * 3;
$result = (string)relative_modified_date($elementTime, $currentTime, true);
- $this->assertEquals('years ago', $result);
+ $this->assertEquals('3 years ago', $result);
}
// ---------------------------------------------------------------------------
@@ -211,15 +211,15 @@ class Test_TemplateFunctions extends \Test\TestCase {
public function testRelativeTimeMonthsAgo(){
$currentTime = 1380703592;
- $elementTime = $currentTime - 86400 * 60;
+ $elementTime = $currentTime - 86400 * 65;
$result = (string)relative_modified_date($elementTime, $currentTime, false);
$this->assertEquals('2 months ago', $result);
- $elementTime = $currentTime - 86400 * 65;
+ $elementTime = $currentTime - 86400 * 130;
$result = (string)relative_modified_date($elementTime, $currentTime, false);
- $this->assertEquals('2 months ago', $result);
+ $this->assertEquals('4 months ago', $result);
}
public function testRelativeTimeLastYear(){
@@ -240,11 +240,11 @@ class Test_TemplateFunctions extends \Test\TestCase {
$elementTime = $currentTime - 86400 * 365.25 * 2;
$result = (string)relative_modified_date($elementTime, $currentTime, false);
- $this->assertEquals('years ago', $result);
+ $this->assertEquals('2 years ago', $result);
$elementTime = $currentTime - 86400 * 365.25 * 3;
$result = (string)relative_modified_date($elementTime, $currentTime, false);
- $this->assertEquals('years ago', $result);
+ $this->assertEquals('3 years ago', $result);
}
}
diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php
index 27c28329535..1ea3aa13547 100644
--- a/tests/lib/testcase.php
+++ b/tests/lib/testcase.php
@@ -148,4 +148,25 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
\OC_FileProxy::$enabled = true;
\OC_FileProxy::clearProxies();
}
+
+ /**
+ * Login and setup FS as a given user,
+ * sets the given user as the current user.
+ *
+ * @param string $user user id
+ */
+ static protected function loginAsUser($user) {
+ self::logout();
+ \OC\Files\Filesystem::tearDown();
+ \OC_User::setUserId($user);
+ \OC_Util::setupFS($user);
+ }
+
+ /**
+ * Logout the current user and tear down the filesystem.
+ */
+ static protected function logout() {
+ \OC_Util::tearDownFS();
+ \OC_User::setUserId('');
+ }
}
diff --git a/tests/lib/updater.php b/tests/lib/updater.php
index 155dccf78a7..2dab2750dcd 100644
--- a/tests/lib/updater.php
+++ b/tests/lib/updater.php
@@ -26,9 +26,82 @@ class UpdaterTest extends \Test\TestCase {
/**
* @dataProvider versionCompatibilityTestData
*/
- function testIsUpgradePossible($oldVersion, $newVersion, $result) {
- $updater = new Updater();
+ public function testIsUpgradePossible($oldVersion, $newVersion, $result) {
+ $updater = new Updater(\OC::$server->getHTTPHelper(), \OC::$server->getConfig());
$this->assertSame($result, $updater->isUpgradePossible($oldVersion, $newVersion));
}
+
+ public function testBrokenXmlResponse(){
+ $invalidUpdater = $this->getUpdaterMock('OMG!');
+ $invalidResult = $invalidUpdater->check();
+ $this->assertEmpty($invalidResult);
+ }
+
+ public function testEmptyResponse(){
+ $emptyUpdater = $this->getUpdaterMock('');
+ $emptyResult = $emptyUpdater->check();
+ $this->assertEmpty($emptyResult);
+
+ // Error while fetching new contents e.g. too many redirects
+ $falseUpdater = $this->getUpdaterMock(false);
+ $falseResult = $falseUpdater->check();
+ $this->assertEmpty($falseResult);
+ }
+
+ public function testValidEmptyXmlResponse(){
+ $updater = $this->getUpdaterMock(
+ '<?xml version="1.0"?><owncloud><version></version><versionstring></versionstring><url></url><web></web></owncloud>'
+ );
+ $result = array_map('strval', $updater->check());
+
+ $this->assertArrayHasKey('version', $result);
+ $this->assertArrayHasKey('versionstring', $result);
+ $this->assertArrayHasKey('url', $result);
+ $this->assertArrayHasKey('web', $result);
+ $this->assertEmpty($result['version']);
+ $this->assertEmpty($result['versionstring']);
+ $this->assertEmpty($result['url']);
+ $this->assertEmpty($result['web']);
+ }
+
+ public function testValidUpdateResponse(){
+ $newUpdater = $this->getUpdaterMock(
+ '<?xml version="1.0"?>
+<owncloud>
+ <version>7.0.3.4</version>
+ <versionstring>ownCloud 7.0.3</versionstring>
+ <url>http://download.owncloud.org/community/owncloud-7.0.3.zip</url>
+ <web>http://owncloud.org/</web>
+</owncloud>'
+ );
+ $newResult = array_map('strval', $newUpdater->check());
+
+ $this->assertArrayHasKey('version', $newResult);
+ $this->assertArrayHasKey('versionstring', $newResult);
+ $this->assertArrayHasKey('url', $newResult);
+ $this->assertArrayHasKey('web', $newResult);
+ $this->assertEquals('7.0.3.4', $newResult['version']);
+ $this->assertEquals('ownCloud 7.0.3', $newResult['versionstring']);
+ $this->assertEquals('http://download.owncloud.org/community/owncloud-7.0.3.zip', $newResult['url']);
+ $this->assertEquals('http://owncloud.org/', $newResult['web']);
+ }
+
+ protected function getUpdaterMock($content){
+ // Invalidate cache
+ $mockedAppConfig = $this->getMockBuilder('\OC\AppConfig')
+ ->disableOriginalConstructor()
+ ->getMock()
+ ;
+
+ $mockedHTTPHelper = $this->getMockBuilder('\OC\HTTPHelper')
+ ->setConstructorArgs(array(\OC::$server->getConfig()))
+ ->getMock()
+ ;
+
+ $mockedHTTPHelper->method('getUrlContent')
+ ->willReturn($content)
+ ;
+ return new Updater($mockedHTTPHelper, $mockedAppConfig);
+ }
-} \ No newline at end of file
+}
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
index c825ec05775..9cb9374d89f 100644
--- a/tests/lib/user/manager.php
+++ b/tests/lib/user/manager.php
@@ -10,6 +10,17 @@
namespace Test\User;
class Manager extends \Test\TestCase {
+ public function testGetBackends() {
+ $userDummyBackend = $this->getMock('\OC_User_Dummy');
+ $manager = new \OC\User\Manager();
+ $manager->registerBackend($userDummyBackend);
+ $this->assertEquals([$userDummyBackend], $manager->getBackends());
+ $dummyDatabaseBackend = $this->getMock('\OC_User_Database');
+ $manager->registerBackend($dummyDatabaseBackend);
+ $this->assertEquals([$userDummyBackend, $dummyDatabaseBackend], $manager->getBackends());
+ }
+
+
public function testUserExistsSingleBackendExists() {
/**
* @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
diff --git a/tests/lib/user/session.php b/tests/lib/user/session.php
index 8d9d024197c..aa1ea5841c0 100644
--- a/tests/lib/user/session.php
+++ b/tests/lib/user/session.php
@@ -234,7 +234,7 @@ class Session extends \Test\TestCase {
//prepare login token
$token = 'goodToken';
- \OC_Preferences::setValue('foo', 'login_token', $token, time());
+ \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time());
$userSession = $this->getMock(
'\OC\User\Session',
@@ -282,7 +282,7 @@ class Session extends \Test\TestCase {
//prepare login token
$token = 'goodToken';
- \OC_Preferences::setValue('foo', 'login_token', $token, time());
+ \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time());
$userSession = new \OC\User\Session($manager, $session);
$granted = $userSession->loginWithCookie('foo', 'badToken');
@@ -323,7 +323,7 @@ class Session extends \Test\TestCase {
//prepare login token
$token = 'goodToken';
- \OC_Preferences::setValue('foo', 'login_token', $token, time());
+ \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time());
$userSession = new \OC\User\Session($manager, $session);
$granted = $userSession->loginWithCookie('foo', $token);
diff --git a/tests/lib/user/user.php b/tests/lib/user/user.php
index 6aa7243a75a..e7085182fd6 100644
--- a/tests/lib/user/user.php
+++ b/tests/lib/user/user.php
@@ -9,7 +9,6 @@
namespace Test\User;
-use OC\AllConfig;
use OC\Hooks\PublicEmitter;
class User extends \Test\TestCase {
@@ -216,6 +215,13 @@ class User extends \Test\TestCase {
$this->assertEquals('/home/foo', $user->getHome());
}
+ public function testGetBackendClassName() {
+ $user = new \OC\User\User('foo', new \OC_User_Dummy());
+ $this->assertEquals('OC_User_Dummy', $user->getBackendClassName());
+ $user = new \OC\User\User('foo', new \OC_User_Database());
+ $this->assertEquals('OC_User_Database', $user->getBackendClassName());
+ }
+
public function testGetHomeNotSupported() {
/**
* @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
@@ -228,10 +234,19 @@ class User extends \Test\TestCase {
->method('implementsActions')
->will($this->returnValue(false));
- $allConfig = new AllConfig();
+ $allConfig = $this->getMockBuilder('\OCP\IConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $allConfig->expects($this->any())
+ ->method('getUserValue')
+ ->will($this->returnValue(true));
+ $allConfig->expects($this->any())
+ ->method('getSystemValue')
+ ->with($this->equalTo('datadirectory'))
+ ->will($this->returnValue('arbitrary/path'));
$user = new \OC\User\User('foo', $backend, null, $allConfig);
- $this->assertEquals(\OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data") . '/foo', $user->getHome());
+ $this->assertEquals('arbitrary/path/foo', $user->getHome());
}
public function testCanChangePassword() {
diff --git a/tests/lib/util.php b/tests/lib/util.php
index 1ddbd2aba2b..1a2cb09f38d 100644
--- a/tests/lib/util.php
+++ b/tests/lib/util.php
@@ -41,7 +41,7 @@ class Test_Util extends \Test\TestCase {
date_default_timezone_set("UTC");
$result = OC_Util::formatDate(1350129205, false, 'Europe/Berlin');
- $expected = 'October 13, 2012 at 1:53:25 PM GMT+0';
+ $expected = 'October 13, 2012 at 1:53:25 PM GMT+2';
$this->assertEquals($expected, $result);
}
@@ -55,10 +55,22 @@ class Test_Util extends \Test\TestCase {
function testFormatDateWithTZFromSession() {
date_default_timezone_set("UTC");
+ $oldDateTimeFormatter = \OC::$server->query('DateTimeFormatter');
\OC::$server->getSession()->set('timezone', 3);
+ $newDateTimeFormatter = new \OC\DateTimeFormatter(\OC::$server->getTimeZone(), new \OC_L10N('lib', 'en'));
+ $this->setDateFormatter($newDateTimeFormatter);
+
$result = OC_Util::formatDate(1350129205, false);
- $expected = 'October 13, 2012 at 2:53:25 PM GMT+0';
+ $expected = 'October 13, 2012 at 2:53:25 PM GMT+3';
$this->assertEquals($expected, $result);
+
+ $this->setDateFormatter($oldDateTimeFormatter);
+ }
+
+ protected function setDateFormatter($formatter) {
+ \OC::$server->registerService('DateTimeFormatter', function ($c) use ($formatter) {
+ return $formatter;
+ });
}
function testCallRegister() {
@@ -152,7 +164,7 @@ class Test_Util extends \Test\TestCase {
function testHomeStorageWrapperWithoutQuota() {
$user1 = $this->getUniqueID();
\OC_User::createUser($user1, 'test');
- OC_Preferences::setValue($user1, 'files', 'quota', 'none');
+ \OC::$server->getConfig()->setUserValue($user1, 'files', 'quota', 'none');
\OC_User::setUserId($user1);
\OC_Util::setupFS($user1);
@@ -164,7 +176,7 @@ class Test_Util extends \Test\TestCase {
// clean up
\OC_User::setUserId('');
\OC_User::deleteUser($user1);
- OC_Preferences::deleteUser($user1);
+ \OC::$server->getConfig()->deleteAllUserValues($user1);
\OC_Util::tearDownFS();
}
@@ -174,7 +186,7 @@ class Test_Util extends \Test\TestCase {
function testHomeStorageWrapperWithQuota() {
$user1 = $this->getUniqueID();
\OC_User::createUser($user1, 'test');
- OC_Preferences::setValue($user1, 'files', 'quota', '1024');
+ \OC::$server->getConfig()->setUserValue($user1, 'files', 'quota', '1024');
\OC_User::setUserId($user1);
\OC_Util::setupFS($user1);
@@ -191,7 +203,7 @@ class Test_Util extends \Test\TestCase {
// clean up
\OC_User::setUserId('');
\OC_User::deleteUser($user1);
- OC_Preferences::deleteUser($user1);
+ \OC::$server->getConfig()->deleteAllUserValues($user1);
\OC_Util::tearDownFS();
}
diff --git a/tests/settings/controller/groupscontrollertest.php b/tests/settings/controller/groupscontrollertest.php
new file mode 100644
index 00000000000..4b6c9d02566
--- /dev/null
+++ b/tests/settings/controller/groupscontrollertest.php
@@ -0,0 +1,246 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Settings\Controller;
+
+use OC\Group\Group;
+use \OC\Settings\Application;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+
+/**
+ * @package OC\Settings\Controller
+ */
+class GroupsControllerTest extends \Test\TestCase {
+
+ /** @var \OCP\AppFramework\IAppContainer */
+ private $container;
+
+ /** @var GroupsController */
+ private $groupsController;
+
+ protected function setUp() {
+ $app = new Application();
+ $this->container = $app->getContainer();
+ $this->container['AppName'] = 'settings';
+ $this->container['GroupManager'] = $this->getMockBuilder('\OCP\IGroupManager')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['UserSession'] = $this->getMockBuilder('\OC\User\Session')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['L10N'] = $this->getMockBuilder('\OCP\IL10N')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['IsAdmin'] = true;
+ $this->container['L10N']
+ ->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($text, $parameters = array()) {
+ return vsprintf($text, $parameters);
+ }));
+ $this->groupsController = $this->container['GroupsController'];
+
+ }
+
+ /**
+ * TODO: Since GroupManager uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testIndex() {
+ $firstGroup = $this->getMockBuilder('\OC\Group\Group')
+ ->disableOriginalConstructor()->getMock();
+ $firstGroup
+ ->method('getGID')
+ ->will($this->returnValue('firstGroup'));
+ $firstGroup
+ ->method('count')
+ ->will($this->returnValue(12));
+ $secondGroup = $this->getMockBuilder('\OC\Group\Group')
+ ->disableOriginalConstructor()->getMock();
+ $secondGroup
+ ->method('getGID')
+ ->will($this->returnValue('secondGroup'));
+ $secondGroup
+ ->method('count')
+ ->will($this->returnValue(25));
+ $thirdGroup = $this->getMockBuilder('\OC\Group\Group')
+ ->disableOriginalConstructor()->getMock();
+ $thirdGroup
+ ->method('getGID')
+ ->will($this->returnValue('thirdGroup'));
+ $thirdGroup
+ ->method('count')
+ ->will($this->returnValue(14));
+ $fourthGroup = $this->getMockBuilder('\OC\Group\Group')
+ ->disableOriginalConstructor()->getMock();
+ $fourthGroup
+ ->method('getGID')
+ ->will($this->returnValue('admin'));
+ $fourthGroup
+ ->method('count')
+ ->will($this->returnValue(18));
+ /** @var \OC\Group\Group[] $groups */
+ $groups = array();
+ $groups[] = $firstGroup;
+ $groups[] = $secondGroup;
+ $groups[] = $thirdGroup;
+ $groups[] = $fourthGroup;
+
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['UserSession']
+ ->expects($this->once())
+ ->method('getUser')
+ ->will($this->returnValue($user));
+ $user
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('MyAdminUser'));
+ $this->container['GroupManager']
+ ->method('search')
+ ->will($this->returnValue($groups));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'data' => array(
+ 'adminGroups' => array(
+ 0 => array(
+ 'id' => 'admin',
+ 'name' => 'admin',
+ 'usercount' => 18
+ )
+ ),
+ 'groups' =>
+ array(
+ 0 => array(
+ 'id' => 'secondGroup',
+ 'name' => 'secondGroup',
+ 'usercount' => 25
+ ),
+ 1 => array(
+ 'id' => 'thirdGroup',
+ 'name' => 'thirdGroup',
+ 'usercount' => 14
+ ),
+ 2 => array(
+ 'id' => 'firstGroup',
+ 'name' => 'firstGroup',
+ 'usercount' => 12
+ )
+ )
+ )
+ )
+ );
+ $response = $this->groupsController->index();
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testCreateWithExistingGroup() {
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('groupExists')
+ ->with('ExistingGroup')
+ ->will($this->returnValue(true));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'message' => 'Group already exists.'
+ ),
+ Http::STATUS_CONFLICT
+ );
+ $response = $this->groupsController->create('ExistingGroup');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testCreateSuccessful() {
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('groupExists')
+ ->with('NewGroup')
+ ->will($this->returnValue(false));
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('createGroup')
+ ->with('NewGroup')
+ ->will($this->returnValue(true));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'groupname' => 'NewGroup'
+ ),
+ Http::STATUS_CREATED
+ );
+ $response = $this->groupsController->create('NewGroup');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testCreateUnsuccessful() {
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('groupExists')
+ ->with('NewGroup')
+ ->will($this->returnValue(false));
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('createGroup')
+ ->with('NewGroup')
+ ->will($this->returnValue(false));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array('message' => 'Unable to add group.')
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $this->groupsController->create('NewGroup');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testDestroySuccessful() {
+ $group = $this->getMockBuilder('\OC\Group\Group')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('get')
+ ->with('ExistingGroup')
+ ->will($this->returnValue($group));
+ $group
+ ->expects($this->once())
+ ->method('delete')
+ ->will($this->returnValue(true));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'success',
+ 'data' => array('groupname' => 'ExistingGroup')
+ ),
+ Http::STATUS_NO_CONTENT
+ );
+ $response = $this->groupsController->destroy('ExistingGroup');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testDestroyUnsuccessful() {
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('get')
+ ->with('ExistingGroup')
+ ->will($this->returnValue(null));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array('message' => 'Unable to delete group.')
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $this->groupsController->destroy('ExistingGroup');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+}
diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php
new file mode 100644
index 00000000000..0ac6d3f0c01
--- /dev/null
+++ b/tests/settings/controller/userscontrollertest.php
@@ -0,0 +1,476 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+namespace OC\Settings\Controller;
+
+use \OC\Settings\Application;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+
+/**
+ * @package OC\Settings\Controller
+ */
+class UsersControllerTest extends \Test\TestCase {
+
+ /** @var \OCP\AppFramework\IAppContainer */
+ private $container;
+
+ /** @var UsersController */
+ private $usersController;
+
+ protected function setUp() {
+ $app = new Application();
+ $this->container = $app->getContainer();
+ $this->container['AppName'] = 'settings';
+ $this->container['GroupManager'] = $this->getMockBuilder('\OCP\IGroupManager')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['UserManager'] = $this->getMockBuilder('\OCP\IUserManager')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['UserSession'] = $this->getMockBuilder('\OC\User\Session')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['L10N'] = $this->getMockBuilder('\OCP\IL10N')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['Config'] = $this->getMockBuilder('\OCP\IConfig')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['IsAdmin'] = true;
+ $this->container['L10N']
+ ->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($text, $parameters = array()) {
+ return vsprintf($text, $parameters);
+ }));
+ $this->usersController = $this->container['UsersController'];
+
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testIndex() {
+ $foo = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $foo
+ ->expects($this->exactly(3))
+ ->method('getUID')
+ ->will($this->returnValue('foo'));
+ $foo
+ ->expects($this->once())
+ ->method('getDisplayName')
+ ->will($this->returnValue('M. Foo'));
+ $foo
+ ->method('getLastLogin')
+ ->will($this->returnValue(500));
+ $foo
+ ->method('getHome')
+ ->will($this->returnValue('/home/foo'));
+ $foo
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('OC_User_Database'));
+ $admin = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $admin
+ ->expects($this->exactly(3))
+ ->method('getUID')
+ ->will($this->returnValue('admin'));
+ $admin
+ ->expects($this->once())
+ ->method('getDisplayName')
+ ->will($this->returnValue('S. Admin'));
+ $admin
+ ->expects($this->once())
+ ->method('getLastLogin')
+ ->will($this->returnValue(12));
+ $admin
+ ->expects($this->once())
+ ->method('getHome')
+ ->will($this->returnValue('/home/admin'));
+ $admin
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('OC_User_Dummy'));
+ $bar = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $bar
+ ->expects($this->exactly(3))
+ ->method('getUID')
+ ->will($this->returnValue('bar'));
+ $bar
+ ->expects($this->once())
+ ->method('getDisplayName')
+ ->will($this->returnValue('B. Ar'));
+ $bar
+ ->method('getLastLogin')
+ ->will($this->returnValue(3999));
+ $bar
+ ->method('getHome')
+ ->will($this->returnValue('/home/bar'));
+ $bar
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('OC_User_Dummy'));
+
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('displayNamesInGroup')
+ ->will($this->returnValue(array('foo' => 'M. Foo', 'admin' => 'S. Admin', 'bar' => 'B. Ar')));
+ $this->container['GroupManager']
+ ->expects($this->exactly(3))
+ ->method('getUserGroupIds')
+ ->will($this->onConsecutiveCalls(array('Users', 'Support'), array('admins', 'Support'), array('External Users')));
+ $this->container['UserManager']
+ ->expects($this->at(0))
+ ->method('get')
+ ->with('foo')
+ ->will($this->returnValue($foo));
+ $this->container['UserManager']
+ ->expects($this->at(1))
+ ->method('get')
+ ->with('admin')
+ ->will($this->returnValue($admin));
+ $this->container['UserManager']
+ ->expects($this->at(2))
+ ->method('get')
+ ->with('bar')
+ ->will($this->returnValue($bar));
+ $this->container['Config']
+ ->expects($this->exactly(3))
+ ->method('getUserValue')
+ ->will($this->onConsecutiveCalls(1024, 404, 2323));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 0 => array(
+ 'name' => 'foo',
+ 'displayname' => 'M. Foo',
+ 'groups' => array('Users', 'Support'),
+ 'subadmin' => array(),
+ 'quota' => 1024,
+ 'storageLocation' => '/home/foo',
+ 'lastLogin' => 500,
+ 'backend' => 'OC_User_Database'
+ ),
+ 1 => array(
+ 'name' => 'admin',
+ 'displayname' => 'S. Admin',
+ 'groups' => array('admins', 'Support'),
+ 'subadmin' => array(),
+ 'quota' => 404,
+ 'storageLocation' => '/home/admin',
+ 'lastLogin' => 12,
+ 'backend' => 'OC_User_Dummy'
+ ),
+ 2 => array(
+ 'name' => 'bar',
+ 'displayname' => 'B. Ar',
+ 'groups' => array('External Users'),
+ 'subadmin' => array(),
+ 'quota' => 2323,
+ 'storageLocation' => '/home/bar',
+ 'lastLogin' => 3999,
+ 'backend' => 'OC_User_Dummy'
+ ),
+ )
+ );
+ $response = $this->usersController->index(0, 10, 'gid', 'pattern');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testIndexWithBackend() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->exactly(3))
+ ->method('getUID')
+ ->will($this->returnValue('foo'));
+ $user
+ ->expects($this->once())
+ ->method('getDisplayName')
+ ->will($this->returnValue('M. Foo'));
+ $user
+ ->method('getLastLogin')
+ ->will($this->returnValue(500));
+ $user
+ ->method('getHome')
+ ->will($this->returnValue('/home/foo'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('OC_User_Database'));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('getBackends')
+ ->will($this->returnValue([new \OC_User_Dummy(), new \OC_User_Database()]));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('clearBackends');
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('registerBackend')
+ ->with(new \OC_User_Dummy());
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('search')
+ ->with('')
+ ->will($this->returnValue([$user]));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 0 => array(
+ 'name' => 'foo',
+ 'displayname' => 'M. Foo',
+ 'groups' => null,
+ 'subadmin' => array(),
+ 'quota' => null,
+ 'storageLocation' => '/home/foo',
+ 'lastLogin' => 500,
+ 'backend' => 'OC_User_Database'
+ )
+ )
+ );
+ $response = $this->usersController->index(0, 10, '','', 'OC_User_Dummy');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testIndexWithBackendNoUser() {
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('getBackends')
+ ->will($this->returnValue([new \OC_User_Dummy(), new \OC_User_Database()]));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('search')
+ ->with('')
+ ->will($this->returnValue([]));
+
+ $expectedResponse = new DataResponse([]);
+ $response = $this->usersController->index(0, 10, '','', 'OC_User_Dummy');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testCreateSuccessfulWithoutGroup() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->method('getHome')
+ ->will($this->returnValue('/home/user'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('bar'));
+
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('createUser')
+ ->will($this->onConsecutiveCalls($user));
+
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'username' => 'foo',
+ 'groups' => null,
+ 'storageLocation' => '/home/user',
+ 'backend' => 'bar'
+ ),
+ Http::STATUS_CREATED
+ );
+ $response = $this->usersController->create('foo', 'password', array());
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testCreateSuccessfulWithGroup() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->method('getHome')
+ ->will($this->returnValue('/home/user'));
+ $user
+ ->method('getHome')
+ ->will($this->returnValue('/home/user'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('bar'));
+ $existingGroup = $this->getMockBuilder('\OCP\IGroup')
+ ->disableOriginalConstructor()->getMock();
+ $existingGroup
+ ->expects($this->once())
+ ->method('addUser')
+ ->with($user);
+ $newGroup = $this->getMockBuilder('\OCP\IGroup')
+ ->disableOriginalConstructor()->getMock();
+ $newGroup
+ ->expects($this->once())
+ ->method('addUser')
+ ->with($user);
+
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('createUser')
+ ->will($this->onConsecutiveCalls($user));
+ $this->container['GroupManager']
+ ->expects($this->exactly(2))
+ ->method('get')
+ ->will($this->onConsecutiveCalls(null, $existingGroup));
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('createGroup')
+ ->with('NewGroup')
+ ->will($this->onConsecutiveCalls($newGroup));
+ $this->container['GroupManager']
+ ->expects($this->once())
+ ->method('getUserGroupIds')
+ ->with($user)
+ ->will($this->onConsecutiveCalls(array('NewGroup', 'ExistingGroup')));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'username' => 'foo',
+ 'groups' => array('NewGroup', 'ExistingGroup'),
+ 'storageLocation' => '/home/user',
+ 'backend' => 'bar'
+ ),
+ Http::STATUS_CREATED
+ );
+ $response = $this->usersController->create('foo', 'password', array('NewGroup', 'ExistingGroup'));
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testCreateUnsuccessful() {
+ $this->container['UserManager']
+ ->method('createUser')
+ ->will($this->throwException(new \Exception()));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'message' => 'Unable to create user.'
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $this->usersController->create('foo', 'password', array());
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testDestroySelf() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('myself'));
+ $this->container['UserSession']
+ ->method('getUser')
+ ->will($this->returnValue($user));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => 'Unable to delete user.'
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $this->usersController->destroy('myself');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testDestroy() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('Admin'));
+ $toDeleteUser = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $toDeleteUser
+ ->expects($this->once())
+ ->method('delete')
+ ->will($this->returnValue(true));
+ $this->container['UserSession']
+ ->method('getUser')
+ ->will($this->returnValue($user));
+ $this->container['UserManager']
+ ->method('get')
+ ->with('UserToDelete')
+ ->will($this->returnValue($toDeleteUser));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'success',
+ 'data' => array(
+ 'username' => 'UserToDelete'
+ )
+ ),
+ Http::STATUS_NO_CONTENT
+ );
+ $response = $this->usersController->destroy('UserToDelete');
+ $this->assertEquals($expectedResponse, $response);
+ }
+ /**
+ * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
+ * to test for subadmins. Thus the test always assumes you have admin permissions...
+ */
+ public function testDestroyUnsuccessful() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('Admin'));
+ $toDeleteUser = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $toDeleteUser
+ ->expects($this->once())
+ ->method('delete')
+ ->will($this->returnValue(false));
+ $this->container['UserSession']
+ ->method('getUser')
+ ->will($this->returnValue($user));
+ $this->container['UserManager']
+ ->method('get')
+ ->with('UserToDelete')
+ ->will($this->returnValue($toDeleteUser));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'status' => 'error',
+ 'data' => array(
+ 'message' => 'Unable to delete user.'
+ )
+ ),
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $this->usersController->destroy('UserToDelete');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+}
diff --git a/tests/settings/middleware/subadminmiddlewaretest.php b/tests/settings/middleware/subadminmiddlewaretest.php
new file mode 100644
index 00000000000..e5572cfba52
--- /dev/null
+++ b/tests/settings/middleware/subadminmiddlewaretest.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 2014 Lukas Reschke lukas@owncloud.com
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Settings\Middleware;
+
+use OC\AppFramework\Utility\ControllerMethodReflector;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\TemplateResponse;
+
+/**
+ * Verifies whether an user has at least subadmin rights.
+ * To bypass use the `@NoSubadminRequired` annotation
+ *
+ * @package OC\Settings\Middleware
+ */
+class SubadminMiddlewareTest extends \Test\TestCase {
+ /** @var SubadminMiddleware */
+ private $subadminMiddlewareAsSubAdmin;
+ /** @var SubadminMiddleware */
+ private $subadminMiddleware;
+ /** @var ControllerMethodReflector */
+ private $reflector;
+ /** @var Controller */
+ private $controller;
+
+ protected function setUp() {
+ $this->reflector = $this->getMockBuilder('\OC\AppFramework\Utility\ControllerMethodReflector')
+ ->disableOriginalConstructor()->getMock();
+ $this->controller = $this->getMockBuilder('\OCP\AppFramework\Controller')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->subadminMiddlewareAsSubAdmin = new SubadminMiddleware($this->reflector, true);
+ $this->subadminMiddleware = new SubadminMiddleware($this->reflector, false);
+ }
+
+ /**
+ * @expectedException \Exception
+ * @expectedExceptionMessage Logged in user must be a subadmin
+ */
+ public function testBeforeControllerAsUserWithExemption() {
+ $this->reflector
+ ->expects($this->once())
+ ->method('hasAnnotation')
+ ->with('NoSubadminRequired')
+ ->will($this->returnValue(false));
+ $this->subadminMiddleware->beforeController($this->controller, 'foo');
+ }
+
+
+ public function testBeforeControllerAsUserWithoutExemption() {
+ $this->reflector
+ ->expects($this->once())
+ ->method('hasAnnotation')
+ ->with('NoSubadminRequired')
+ ->will($this->returnValue(true));
+ $this->subadminMiddleware->beforeController($this->controller, 'foo');
+ }
+
+ public function testBeforeControllerAsSubAdminWithoutExemption() {
+ $this->reflector
+ ->expects($this->once())
+ ->method('hasAnnotation')
+ ->with('NoSubadminRequired')
+ ->will($this->returnValue(false));
+ $this->subadminMiddlewareAsSubAdmin->beforeController($this->controller, 'foo');
+ }
+
+ public function testBeforeControllerAsSubAdminWithExemption() {
+ $this->reflector
+ ->expects($this->once())
+ ->method('hasAnnotation')
+ ->with('NoSubadminRequired')
+ ->will($this->returnValue(true));
+ $this->subadminMiddlewareAsSubAdmin->beforeController($this->controller, 'foo');
+ }
+
+
+
+
+ public function testAfterException() {
+ $expectedResponse = new TemplateResponse('core', '403', array(), 'guest');
+ $this->assertEquals($expectedResponse, $this->subadminMiddleware->afterException($this->controller, 'foo', new \Exception()));
+ }
+} \ No newline at end of file